GLSL: implement atomics.
Bug: tint:1314
Change-Id: Ic7a88761752d2db3374be043c94f02fd20684c03
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/69560
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 32b4d94..824fdda 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -607,162 +607,102 @@
bool GeneratorImpl::EmitWorkgroupAtomicCall(std::ostream& out,
const ast::CallExpression* expr,
const sem::Intrinsic* intrinsic) {
- std::string result = UniqueIdentifier("atomic_result");
-
- if (!intrinsic->ReturnType()->Is<sem::Void>()) {
- auto pre = line();
- if (!EmitTypeAndName(pre, intrinsic->ReturnType(), ast::StorageClass::kNone,
- ast::Access::kUndefined, result)) {
- return false;
- }
- pre << " = ";
- if (!EmitZeroValue(pre, intrinsic->ReturnType())) {
- return false;
- }
- pre << ";";
- }
-
auto call = [&](const char* name) {
- auto pre = line();
- pre << name;
-
+ out << name;
{
- ScopedParen sp(pre);
+ ScopedParen sp(out);
for (size_t i = 0; i < expr->args.size(); i++) {
auto* arg = expr->args[i];
if (i > 0) {
- pre << ", ";
+ out << ", ";
}
- if (!EmitExpression(pre, arg)) {
+ if (!EmitExpression(out, arg)) {
return false;
}
}
-
- pre << ", " << result;
}
-
- pre << ";";
-
- out << result;
return true;
};
switch (intrinsic->Type()) {
case sem::IntrinsicType::kAtomicLoad: {
- // GLSL does not have an InterlockedLoad, so we emulate it with
- // InterlockedOr using 0 as the OR value
- auto pre = line();
- pre << "InterlockedOr";
- {
- ScopedParen sp(pre);
- if (!EmitExpression(pre, expr->args[0])) {
- return false;
- }
- pre << ", 0, " << result;
- }
- pre << ";";
-
- out << result;
- return true;
- }
- case sem::IntrinsicType::kAtomicStore: {
- // GLSL does not have an InterlockedStore, so we emulate it with
- // InterlockedExchange and discard the returned value
- { // T result = 0;
- auto pre = line();
- auto* value_ty = intrinsic->Parameters()[1]->Type();
- if (!EmitTypeAndName(pre, value_ty, ast::StorageClass::kNone,
- ast::Access::kUndefined, result)) {
- return false;
- }
- pre << " = ";
- if (!EmitZeroValue(pre, value_ty)) {
- return false;
- }
- pre << ";";
- }
-
- out << "InterlockedExchange";
+ // GLSL does not have an atomicLoad, so we emulate it with
+ // atomicOr using 0 as the OR value
+ out << "atomicOr";
{
ScopedParen sp(out);
if (!EmitExpression(out, expr->args[0])) {
return false;
}
- out << ", ";
- if (!EmitExpression(out, expr->args[1])) {
- return false;
+ out << ", 0";
+ if (intrinsic->ReturnType()->Is<sem::U32>()) {
+ out << "u";
}
- out << ", " << result;
}
return true;
}
case sem::IntrinsicType::kAtomicCompareExchangeWeak: {
- auto* dest = expr->args[0];
- auto* compare_value = expr->args[1];
- auto* value = expr->args[2];
-
- std::string compare = UniqueIdentifier("atomic_compare_value");
-
- { // T compare_value = <compare_value>;
- auto pre = line();
- if (!EmitTypeAndName(pre, TypeOf(compare_value),
- ast::StorageClass::kNone, ast::Access::kUndefined,
- compare)) {
- return false;
- }
- pre << " = ";
- if (!EmitExpression(pre, compare_value)) {
- return false;
- }
- pre << ";";
- }
-
- { // InterlockedCompareExchange(dst, compare, value, result.x);
- auto pre = line();
- pre << "InterlockedCompareExchange";
- {
- ScopedParen sp(pre);
- if (!EmitExpression(pre, dest)) {
- return false;
- }
- pre << ", " << compare << ", ";
- if (!EmitExpression(pre, value)) {
- return false;
- }
- pre << ", " << result << ".x";
- }
- pre << ";";
- }
-
- { // result.y = result.x == compare;
- line() << result << ".y = " << result << ".x == " << compare << ";";
- }
-
- out << result;
- return true;
+ return CallIntrinsicHelper(
+ out, expr, intrinsic,
+ [&](TextBuffer* b, const std::vector<std::string>& params) {
+ {
+ auto pre = line(b);
+ if (!EmitTypeAndName(pre, intrinsic->ReturnType(),
+ ast::StorageClass::kNone,
+ ast::Access::kUndefined, "result")) {
+ return false;
+ }
+ pre << ";";
+ }
+ {
+ auto pre = line(b);
+ pre << "result.x = atomicCompSwap";
+ {
+ ScopedParen sp(pre);
+ pre << params[0];
+ pre << ", " << params[1];
+ pre << ", " << params[2];
+ }
+ pre << ";";
+ }
+ {
+ auto pre = line(b);
+ pre << "result.y = result.x == " << params[2] << " ? ";
+ if (TypeOf(expr->args[2])->Is<sem::U32>()) {
+ pre << "1u : 0u;";
+ } else {
+ pre << "1 : 0;";
+ }
+ }
+ line(b) << "return result;";
+ return true;
+ });
}
case sem::IntrinsicType::kAtomicAdd:
case sem::IntrinsicType::kAtomicSub:
- return call("InterlockedAdd");
+ return call("atomicAdd");
case sem::IntrinsicType::kAtomicMax:
- return call("InterlockedMax");
+ return call("atomicMax");
case sem::IntrinsicType::kAtomicMin:
- return call("InterlockedMin");
+ return call("atomicMin");
case sem::IntrinsicType::kAtomicAnd:
- return call("InterlockedAnd");
+ return call("atomicAnd");
case sem::IntrinsicType::kAtomicOr:
- return call("InterlockedOr");
+ return call("atomicOr");
case sem::IntrinsicType::kAtomicXor:
- return call("InterlockedXor");
+ return call("atomicXor");
case sem::IntrinsicType::kAtomicExchange:
- return call("InterlockedExchange");
+ case sem::IntrinsicType::kAtomicStore:
+ // GLSL does not have an atomicStore, so we emulate it with
+ // atomicExchange.
+ return call("atomicExchange");
default:
break;
@@ -1160,9 +1100,9 @@
// TODO(crbug.com/tint/661): Combine sequential barriers to a single
// instruction.
if (intrinsic->Type() == sem::IntrinsicType::kWorkgroupBarrier) {
- out << "GroupMemoryBarrierWithGroupSync()";
+ out << "memoryBarrierShared()";
} else if (intrinsic->Type() == sem::IntrinsicType::kStorageBarrier) {
- out << "DeviceMemoryBarrierWithGroupSync()";
+ out << "memoryBarrierBuffer()";
} else {
TINT_UNREACHABLE(Writer, diagnostics_)
<< "unexpected barrier intrinsic type " << sem::str(intrinsic->Type());
@@ -1765,7 +1705,7 @@
auto* decl = var->Declaration();
auto out = line();
- out << "groupshared ";
+ out << "shared ";
auto name = builder_.Symbols().NameFor(decl->symbol);
auto* type = var->Type()->UnwrapRef();
diff --git a/src/writer/glsl/generator_impl_workgroup_var_test.cc b/src/writer/glsl/generator_impl_workgroup_var_test.cc
index 40bc9c9..42d5d53 100644
--- a/src/writer/glsl/generator_impl_workgroup_var_test.cc
+++ b/src/writer/glsl/generator_impl_workgroup_var_test.cc
@@ -36,7 +36,7 @@
GeneratorImpl& gen = Build();
ASSERT_TRUE(gen.Generate()) << gen.error();
- EXPECT_THAT(gen.result(), HasSubstr("groupshared float wg;\n"));
+ EXPECT_THAT(gen.result(), HasSubstr("shared float wg;\n"));
}
TEST_F(GlslGeneratorImplTest_WorkgroupVar, Aliased) {
@@ -52,7 +52,7 @@
GeneratorImpl& gen = Build();
ASSERT_TRUE(gen.Generate()) << gen.error();
- EXPECT_THAT(gen.result(), HasSubstr("groupshared float wg;\n"));
+ EXPECT_THAT(gen.result(), HasSubstr("shared float wg;\n"));
}
} // namespace
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
index a21368d..30c6e8f 100644
--- a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
@@ -33,6 +33,8 @@
ivec2 g = s.arr[idx].g;
ivec2 h = s.arr[idx].h;
mat2x3 i = s.arr[idx].i;
+ mat3x2 j = s.arr[idx].j;
+ ivec4 k[4] = s.arr[idx].k;
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
index c1acee0..517ad2e 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -15,7 +13,7 @@
layout (binding = 1) buffer Result_1 {
int tint_symbol;
} result;
-groupshared S s;
+shared S s;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -28,7 +26,7 @@
s.data[i] = 0;
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
result.tint_symbol = s.data[ubo.dynamic_idx];
}
@@ -44,9 +42,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
index c561688..e28fc0b 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -15,7 +13,7 @@
layout (binding = 1) buffer Result_1 {
int tint_symbol;
} result;
-groupshared S s;
+shared S s;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -28,7 +26,7 @@
s.data[i] = 0;
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
s.data[ubo.dynamic_idx] = 1;
result.tint_symbol = s.data[3];
}
@@ -45,9 +43,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/tint/1113.wgsl.expected.glsl b/test/bug/tint/1113.wgsl.expected.glsl
index 0aeef4e..07877d9 100644
--- a/test/bug/tint/1113.wgsl.expected.glsl
+++ b/test/bug/tint/1113.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -64,14 +62,10 @@
void doIgnore() {
uint g42 = uniforms.numTriangles;
uint kj6 = dbg.value1;
- uint atomic_result = 0u;
- InterlockedOr(counters.values[0], 0, atomic_result);
- uint b53 = atomic_result;
+ uint b53 = atomicOr(counters.values[0], 0u);
uint rwg = indices.values[0];
float rb5 = positions.values[0];
- int atomic_result_1 = 0;
- InterlockedOr(LUT.values[0], 0, atomic_result_1);
- int g55 = atomic_result_1;
+ int g55 = atomicOr(LUT.values[0], 0);
}
struct tint_symbol_1 {
@@ -93,9 +87,7 @@
vec3 center = (((p0 + p1) + p2) / 3.0f);
vec3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms.gridSize, voxelPos);
- uint atomic_result_2 = 0u;
- InterlockedAdd(counters.values[voxelIndex], 1u, atomic_result_2);
- uint acefg = atomic_result_2;
+ uint acefg = atomicAdd(counters.values[voxelIndex], 1u);
if ((triangleIndex == 0u)) {
dbg.value0 = uniforms.gridSize;
dbg.value_f32_0 = center.x;
@@ -123,13 +115,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:66: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:66: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -172,14 +157,10 @@
void doIgnore() {
uint g42 = uniforms.numTriangles;
uint kj6 = dbg.value1;
- uint atomic_result = 0u;
- InterlockedOr(counters.values[0], 0, atomic_result);
- uint b53 = atomic_result;
+ uint b53 = atomicOr(counters.values[0], 0u);
uint rwg = indices.values[0];
float rb5 = positions.values[0];
- int atomic_result_1 = 0;
- InterlockedOr(LUT.values[0], 0, atomic_result_1);
- int g55 = atomic_result_1;
+ int g55 = atomicOr(LUT.values[0], 0);
}
struct tint_symbol_1 {
@@ -196,17 +177,12 @@
if ((voxelIndex >= maxVoxels)) {
return;
}
- uint atomic_result_2 = 0u;
- InterlockedOr(counters.values[voxelIndex], 0, atomic_result_2);
- uint numTriangles = atomic_result_2;
+ uint numTriangles = atomicOr(counters.values[voxelIndex], 0u);
int offset = -1;
if ((numTriangles > 0u)) {
- uint atomic_result_3 = 0u;
- InterlockedAdd(dbg.offsetCounter, numTriangles, atomic_result_3);
- offset = int(atomic_result_3);
+ offset = int(atomicAdd(dbg.offsetCounter, numTriangles));
}
- int atomic_result_4 = 0;
- InterlockedExchange(LUT.values[voxelIndex], offset, atomic_result_4);
+ atomicExchange(LUT.values[voxelIndex], offset);
}
struct tint_symbol_5 {
@@ -225,13 +201,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:44: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:44: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -296,14 +265,10 @@
void doIgnore() {
uint g42 = uniforms.numTriangles;
uint kj6 = dbg.value1;
- uint atomic_result = 0u;
- InterlockedOr(counters.values[0], 0, atomic_result);
- uint b53 = atomic_result;
+ uint b53 = atomicOr(counters.values[0], 0u);
uint rwg = indices.values[0];
float rb5 = positions.values[0];
- int atomic_result_1 = 0;
- InterlockedOr(LUT.values[0], 0, atomic_result_1);
- int g55 = atomic_result_1;
+ int g55 = atomicOr(LUT.values[0], 0);
}
struct tint_symbol_1 {
@@ -331,9 +296,7 @@
vec3 center = (((p0 + p1) + p2) / 3.0f);
vec3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms.gridSize, voxelPos);
- int atomic_result_2 = 0;
- InterlockedAdd(LUT.values[voxelIndex], 1, atomic_result_2);
- int triangleOffset = atomic_result_2;
+ int triangleOffset = atomicAdd(LUT.values[voxelIndex], 1);
}
layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
@@ -348,10 +311,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:66: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:66: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/tint/1121.wgsl.expected.glsl b/test/bug/tint/1121.wgsl.expected.glsl
index 5dd520f..1dad2db 100644
--- a/test/bug/tint/1121.wgsl.expected.glsl
+++ b/test/bug/tint/1121.wgsl.expected.glsl
@@ -111,9 +111,7 @@
if ((tint_tmp)) {
continue;
}
- uint atomic_result = 0u;
- InterlockedAdd(tileLightId.data[tileId].count, 1u, atomic_result);
- uint offset = atomic_result;
+ uint offset = atomicAdd(tileLightId.data[tileId].count, 1u);
if ((offset >= config.numTileLightSlot)) {
continue;
}
diff --git a/test/bug/tint/914.wgsl.expected.glsl b/test/bug/tint/914.wgsl.expected.glsl
index 026388e..951dea5 100644
--- a/test/bug/tint/914.wgsl.expected.glsl
+++ b/test/bug/tint/914.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -56,11 +54,9 @@
const uint RowPerThread = 4u;
const uint ColPerThread = 4u;
-const uint TileAOuter = 64u;
-const uint TileBOuter = 64u;
const uint TileInner = 64u;
-groupshared float mm_Asub[64][64];
-groupshared float mm_Bsub[64][64];
+shared float mm_Asub[64][64];
+shared float mm_Bsub[64][64];
struct tint_symbol_2 {
uvec3 local_id;
@@ -77,7 +73,7 @@
mm_Bsub[i][i_1] = 0.0f;
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
uint tileRow = (local_id.y * RowPerThread);
uint tileCol = (local_id.x * ColPerThread);
uint globalRow = (global_id.y * RowPerThread);
@@ -119,7 +115,7 @@
}
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
{
for(uint k = 0u; (k < TileInner); k = (k + 1u)) {
{
@@ -140,7 +136,7 @@
}
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
}
{
@@ -169,9 +165,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:60: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/tint/926.wgsl.expected.glsl b/test/bug/tint/926.wgsl.expected.glsl
index e1fb812..c54318d 100644
--- a/test/bug/tint/926.wgsl.expected.glsl
+++ b/test/bug/tint/926.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -14,9 +12,7 @@
};
void computeMain_inner(uvec3 global_id) {
- uint atomic_result = 0u;
- InterlockedAdd(drawOut.vertexCount, cubeVerts, atomic_result);
- uint firstVertex = atomic_result;
+ uint firstVertex = atomicAdd(drawOut.vertexCount, cubeVerts);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -31,10 +27,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:16: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:16: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/tint/942.wgsl.expected.glsl b/test/bug/tint/942.wgsl.expected.glsl
index a011f7e..464422e 100644
--- a/test/bug/tint/942.wgsl.expected.glsl
+++ b/test/bug/tint/942.wgsl.expected.glsl
@@ -15,7 +15,7 @@
layout (binding = 3) uniform Flip_1 {
uint value;
} flip;
-groupshared vec3 tile[4][256];
+shared vec3 tile[4][256];
struct tint_symbol_2 {
uvec3 LocalInvocationID;
@@ -31,7 +31,7 @@
tile[i_1][i_2] = vec3(0.0f, 0.0f, 0.0f);
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
uint filterOffset = ((params.filterDim - 1u) / 2u);
ivec2 dims = textureSize(inputTex0);
ivec2 baseIndex = (ivec2(((WorkGroupID.xy * uvec2(params.blockDim, 4u)) + (LocalInvocationID.xy * uvec2(4u, 1u)))) - ivec2(int(filterOffset), 0));
@@ -48,7 +48,7 @@
}
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
{
for(uint r = 0u; (r < 4u); r = (r + 1u)) {
{
@@ -97,8 +97,11 @@
Error parsing GLSL shader:
-ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
+ERROR: 0:34: 'inputTex0' : undeclared identifier
+ERROR: 0:34: 'textureSize' : no matching overloaded function found
+ERROR: 0:34: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:34: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
diff --git a/test/bug/tint/943.spvasm.expected.glsl b/test/bug/tint/943.spvasm.expected.glsl
index 1ae6844..f04b212 100644
--- a/test/bug/tint/943.spvasm.expected.glsl
+++ b/test/bug/tint/943.spvasm.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -19,8 +17,8 @@
} x_54;
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
uvec3 tint_symbol_1 = uvec3(0u, 0u, 0u);
-groupshared float mm_Asub[64][64];
-groupshared float mm_Bsub[64][1];
+shared float mm_Asub[64][64];
+shared float mm_Bsub[64][1];
layout (binding = 1) buffer ssbA_1 {
float A[];
} x_165;
@@ -258,7 +256,7 @@
}
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
k = 0;
{
for(; (k < 64); k = (k + 1)) {
@@ -290,7 +288,7 @@
}
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
}
innerRow_4 = 0;
@@ -374,7 +372,7 @@
mm_Asub[i][i_1] = 0.0f;
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
tint_symbol = tint_symbol_3;
tint_symbol_1 = tint_symbol_4;
main_1();
@@ -394,9 +392,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:20: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/bug/tint/993.wgsl.expected.glsl b/test/bug/tint/993.wgsl.expected.glsl
index 685ccde..e0485c5 100644
--- a/test/bug/tint/993.wgsl.expected.glsl
+++ b/test/bug/tint/993.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -17,9 +15,7 @@
} s;
int runTest() {
- int atomic_result = 0;
- InterlockedOr(s.data[(0u + uint(constants.zero))], 0, atomic_result);
- return atomic_result;
+ return atomicOr(s.data[(0u + uint(constants.zero))], 0);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -32,10 +28,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:19: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:19: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
index cc143ec..55ffa25 100644
--- a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicAdd_794055() {
- int atomic_result = 0;
- InterlockedAdd(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicAdd_794055();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
index 139df57..f2dd43a 100644
--- a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicAdd_8a199a() {
- uint atomic_result = 0u;
- InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicAdd_8a199a() {
- uint atomic_result = 0u;
- InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
index e157ee3..a324c7a 100644
--- a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicAdd_d32fe4() {
- int atomic_result = 0;
- InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicAdd_d32fe4() {
- int atomic_result = 0;
- InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
index 1c43164..9a3d9a1 100644
--- a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicAdd_d5db1d() {
- uint atomic_result = 0u;
- InterlockedAdd(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicAdd_d5db1d();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
index 813e521..a4c446d 100644
--- a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicAnd_152966() {
- int atomic_result = 0;
- InterlockedAnd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAnd(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicAnd_152966() {
- int atomic_result = 0;
- InterlockedAnd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAnd(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
index 05f66bb..8ab60de 100644
--- a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicAnd_34edd3() {
- uint atomic_result = 0u;
- InterlockedAnd(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAnd(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicAnd_34edd3();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
index 10635fb..af28d89 100644
--- a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicAnd_45a819() {
- int atomic_result = 0;
- InterlockedAnd(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAnd(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicAnd_45a819();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
index 50f0b04..c7c9601 100644
--- a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicAnd_85a8d9() {
- uint atomic_result = 0u;
- InterlockedAnd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAnd(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicAnd_85a8d9() {
- uint atomic_result = 0u;
- InterlockedAnd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAnd(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
index f15fa37..93d6d9e 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -1,19 +1,21 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
+ivec2 tint_atomicCompareExchangeWeak(inout int param_0, int param_1, int param_2) {
+ ivec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1 : 0;
+ return result;
+}
+
+
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
} sb_rw;
void atomicCompareExchangeWeak_12871c() {
- ivec2 atomic_result = ivec2(0, 0);
- int atomic_compare_value = 1;
- InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- ivec2 res = atomic_result;
+ ivec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1, 1);
}
void fragment_main() {
@@ -25,27 +27,24 @@
}
-Error parsing GLSL shader:
-ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
-ERROR: 0:12: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
+ivec2 tint_atomicCompareExchangeWeak(inout int param_0, int param_1, int param_2) {
+ ivec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1 : 0;
+ return result;
+}
+
+
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
} sb_rw;
void atomicCompareExchangeWeak_12871c() {
- ivec2 atomic_result = ivec2(0, 0);
- int atomic_compare_value = 1;
- InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- ivec2 res = atomic_result;
+ ivec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -58,10 +57,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
-ERROR: 0:12: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
index f1cde24..72a7f09 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -1,19 +1,21 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
+uvec2 tint_atomicCompareExchangeWeak(inout uint param_0, uint param_1, uint param_2) {
+ uvec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1u : 0u;
+ return result;
+}
+
+
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
} sb_rw;
void atomicCompareExchangeWeak_6673da() {
- uvec2 atomic_result = uvec2(0u, 0u);
- uint atomic_compare_value = 1u;
- InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1u, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- uvec2 res = atomic_result;
+ uvec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1u, 1u);
}
void fragment_main() {
@@ -25,27 +27,24 @@
}
-Error parsing GLSL shader:
-ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
-ERROR: 0:12: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
+uvec2 tint_atomicCompareExchangeWeak(inout uint param_0, uint param_1, uint param_2) {
+ uvec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1u : 0u;
+ return result;
+}
+
+
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
} sb_rw;
void atomicCompareExchangeWeak_6673da() {
- uvec2 atomic_result = uvec2(0u, 0u);
- uint atomic_compare_value = 1u;
- InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1u, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- uvec2 res = atomic_result;
+ uvec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1u, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -58,10 +57,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
-ERROR: 0:12: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
index 9760452..aaaf177 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
@@ -1,16 +1,18 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+ivec2 tint_atomicCompareExchangeWeak(inout int param_0, int param_1, int param_2) {
+ ivec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1 : 0;
+ return result;
+}
+
+
+shared int arg_0;
void atomicCompareExchangeWeak_89ea3b() {
- ivec2 atomic_result = ivec2(0, 0);
- int atomic_compare_value = 1;
- InterlockedCompareExchange(arg_0, atomic_compare_value, 1, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- ivec2 res = atomic_result;
+ ivec2 res = tint_atomicCompareExchangeWeak(arg_0, 1, 1);
}
struct tint_symbol_1 {
@@ -19,10 +21,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicCompareExchangeWeak_89ea3b();
}
@@ -38,9 +39,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
index be102ee..03b6857 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
@@ -1,16 +1,18 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+uvec2 tint_atomicCompareExchangeWeak(inout uint param_0, uint param_1, uint param_2) {
+ uvec2 result;
+ result.x = atomicCompSwap(param_0, param_1, param_2);
+ result.y = result.x == param_2 ? 1u : 0u;
+ return result;
+}
+
+
+shared uint arg_0;
void atomicCompareExchangeWeak_b2ab2c() {
- uvec2 atomic_result = uvec2(0u, 0u);
- uint atomic_compare_value = 1u;
- InterlockedCompareExchange(arg_0, atomic_compare_value, 1u, atomic_result.x);
- atomic_result.y = atomic_result.x == atomic_compare_value;
- uvec2 res = atomic_result;
+ uvec2 res = tint_atomicCompareExchangeWeak(arg_0, 1u, 1u);
}
struct tint_symbol_1 {
@@ -19,10 +21,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicCompareExchangeWeak_b2ab2c();
}
@@ -38,9 +39,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
index 8b09423..c97fd12 100644
--- a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicExchange_0a5dca() {
- uint atomic_result = 0u;
- InterlockedExchange(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicExchange(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicExchange_0a5dca();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
index 7e1913c..a4f0b7f 100644
--- a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicExchange_d59712() {
- uint atomic_result = 0u;
- InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicExchange(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicExchange_d59712() {
- uint atomic_result = 0u;
- InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicExchange(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
index d847eaf..52ae007 100644
--- a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicExchange_e114ba() {
- int atomic_result = 0;
- InterlockedExchange(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicExchange(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicExchange_e114ba();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
index f777a17..bc0e46e 100644
--- a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicExchange_f2e22f() {
- int atomic_result = 0;
- InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicExchange(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicExchange_f2e22f() {
- int atomic_result = 0;
- InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicExchange(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
index 2f8cb3d..68355ce 100644
--- a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicLoad_0806ad() {
- int atomic_result = 0;
- InterlockedOr(sb_rw.arg_0, 0, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(sb_rw.arg_0, 0);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicLoad_0806ad() {
- int atomic_result = 0;
- InterlockedOr(sb_rw.arg_0, 0, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(sb_rw.arg_0, 0);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
index e0c94f0..de8c6c6 100644
--- a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicLoad_361bf1() {
- uint atomic_result = 0u;
- InterlockedOr(arg_0, 0, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(arg_0, 0u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicLoad_361bf1();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
index 74351a3..3f9ee82 100644
--- a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicLoad_afcc03() {
- int atomic_result = 0;
- InterlockedOr(arg_0, 0, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(arg_0, 0);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicLoad_afcc03();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
index 7fc0623..373dafa 100644
--- a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicLoad_fe6cc3() {
- uint atomic_result = 0u;
- InterlockedOr(sb_rw.arg_0, 0, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(sb_rw.arg_0, 0u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicLoad_fe6cc3() {
- uint atomic_result = 0u;
- InterlockedOr(sb_rw.arg_0, 0, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(sb_rw.arg_0, 0u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
index 4a35e2c..e95789e 100644
--- a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicMax_51b9be() {
- uint atomic_result = 0u;
- InterlockedMax(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMax(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicMax_51b9be() {
- uint atomic_result = 0u;
- InterlockedMax(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMax(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
index 5c77b71..f5392cf 100644
--- a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicMax_92aa72() {
- int atomic_result = 0;
- InterlockedMax(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMax(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicMax_92aa72() {
- int atomic_result = 0;
- InterlockedMax(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMax(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
index 526868b..8a4aadd 100644
--- a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicMax_a89cc3() {
- int atomic_result = 0;
- InterlockedMax(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMax(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicMax_a89cc3();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
index e34d9e9..085ee2e 100644
--- a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicMax_beccfc() {
- uint atomic_result = 0u;
- InterlockedMax(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMax(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicMax_beccfc();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
index cf4724c..a3e2d3b 100644
--- a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicMin_278235() {
- int atomic_result = 0;
- InterlockedMin(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMin(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicMin_278235();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
index ade2280..10e70a6 100644
--- a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicMin_69d383() {
- uint atomic_result = 0u;
- InterlockedMin(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMin(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicMin_69d383();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
index da27730..0897032 100644
--- a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicMin_8e38dc() {
- int atomic_result = 0;
- InterlockedMin(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMin(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicMin_8e38dc() {
- int atomic_result = 0;
- InterlockedMin(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicMin(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
index 719cf8e..85e42dd 100644
--- a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicMin_c67a74() {
- uint atomic_result = 0u;
- InterlockedMin(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMin(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicMin_c67a74() {
- uint atomic_result = 0u;
- InterlockedMin(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicMin(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
index 6638375..9fd6dfb 100644
--- a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicOr_5e3d61() {
- uint atomic_result = 0u;
- InterlockedOr(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicOr_5e3d61();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
index 85663d2..aafb344 100644
--- a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicOr_5e95d4() {
- uint atomic_result = 0u;
- InterlockedOr(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicOr_5e95d4() {
- uint atomic_result = 0u;
- InterlockedOr(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicOr(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
index 9996d05..b5f1e99 100644
--- a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicOr_8d96a0() {
- int atomic_result = 0;
- InterlockedOr(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicOr_8d96a0() {
- int atomic_result = 0;
- InterlockedOr(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
index 239746d..1bd396d 100644
--- a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicOr_d09248() {
- int atomic_result = 0;
- InterlockedOr(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicOr(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicOr_d09248();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
index 29aec50..1539167 100644
--- a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
@@ -1,13 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicStore_726882() {
- uint atomic_result = 0u;
- InterlockedExchange(arg_0, 1u, atomic_result);
+ atomicExchange(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -16,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicStore_726882();
}
@@ -35,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
index cd08ad3..d338acc 100644
--- a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
@@ -1,13 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicStore_8bea94() {
- int atomic_result = 0;
- InterlockedExchange(arg_0, 1, atomic_result);
+ atomicExchange(arg_0, 1);
}
struct tint_symbol_1 {
@@ -16,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicStore_8bea94();
}
@@ -35,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
index 1f768b3..e81b356 100644
--- a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,8 +7,7 @@
} sb_rw;
void atomicStore_cdc29e() {
- uint atomic_result = 0u;
- InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+ atomicExchange(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -22,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -38,8 +28,7 @@
} sb_rw;
void atomicStore_cdc29e() {
- uint atomic_result = 0u;
- InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+ atomicExchange(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -52,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
index 6df74dc..eba2fdb 100644
--- a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,8 +7,7 @@
} sb_rw;
void atomicStore_d1e9a6() {
- int atomic_result = 0;
- InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+ atomicExchange(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -22,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -38,8 +28,7 @@
} sb_rw;
void atomicStore_d1e9a6() {
- int atomic_result = 0;
- InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+ atomicExchange(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -52,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
index 1da7814..f9984be 100644
--- a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicSub_051100() {
- int atomic_result = 0;
- InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicSub_051100() {
- int atomic_result = 0;
- InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
index 58896e8..b0bddda 100644
--- a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicSub_0d26c2() {
- uint atomic_result = 0u;
- InterlockedAdd(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicSub_0d26c2();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
index 13a73bc..0f5901c 100644
--- a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicSub_15bfc9() {
- uint atomic_result = 0u;
- InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicSub_15bfc9() {
- uint atomic_result = 0u;
- InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicAdd(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
index 83ef6a0..9c70e99 100644
--- a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicSub_77883a() {
- int atomic_result = 0;
- InterlockedAdd(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicAdd(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicSub_77883a();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
index 9e9f4ca..feabaaf 100644
--- a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicXor_54510e() {
- uint atomic_result = 0u;
- InterlockedXor(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicXor(sb_rw.arg_0, 1u);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicXor_54510e() {
- uint atomic_result = 0u;
- InterlockedXor(sb_rw.arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicXor(sb_rw.arg_0, 1u);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
index 62485ed..9917356 100644
--- a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int arg_0;
+shared int arg_0;
void atomicXor_75dc95() {
- int atomic_result = 0;
- InterlockedXor(arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicXor(arg_0, 1);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- int atomic_result_1 = 0;
- InterlockedExchange(arg_0, 0, atomic_result_1);
+ atomicExchange(arg_0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicXor_75dc95();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
index 0a43b25..6e8d361 100644
--- a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -9,9 +7,7 @@
} sb_rw;
void atomicXor_c1b78c() {
- int atomic_result = 0;
- InterlockedXor(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicXor(sb_rw.arg_0, 1);
}
void fragment_main() {
@@ -23,13 +19,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -39,9 +28,7 @@
} sb_rw;
void atomicXor_c1b78c() {
- int atomic_result = 0;
- InterlockedXor(sb_rw.arg_0, 1, atomic_result);
- int res = atomic_result;
+ int res = atomicXor(sb_rw.arg_0, 1);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -54,10 +41,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
-ERROR: 0:11: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
index a68b9b6..bcc49d9 100644
--- a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
@@ -1,14 +1,10 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared uint arg_0;
+shared uint arg_0;
void atomicXor_c8e6be() {
- uint atomic_result = 0u;
- InterlockedXor(arg_0, 1u, atomic_result);
- uint res = atomic_result;
+ uint res = atomicXor(arg_0, 1u);
}
struct tint_symbol_1 {
@@ -17,10 +13,9 @@
void compute_main_inner(uint local_invocation_index) {
{
- uint atomic_result_1 = 0u;
- InterlockedExchange(arg_0, 0u, atomic_result_1);
+ atomicExchange(arg_0, 0u);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
atomicXor_c8e6be();
}
@@ -36,9 +31,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
index 2d34b7e..289b86f 100644
--- a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
+++ b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
@@ -1,10 +1,8 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
void storageBarrier_d87211() {
- DeviceMemoryBarrierWithGroupSync();
+ memoryBarrierBuffer();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -17,10 +15,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:5: 'DeviceMemoryBarrierWithGroupSync' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
index d923b6d..c099196 100644
--- a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
@@ -1,10 +1,8 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
void workgroupBarrier_a17f7f() {
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -17,10 +15,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:5: 'GroupMemoryBarrierWithGroupSync' : no matching overloaded function found
-ERROR: 0:5: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/let/global/global.wgsl.expected.glsl b/test/let/global/global.wgsl.expected.glsl
index daeec49..188a6da 100644
--- a/test/let/global/global.wgsl.expected.glsl
+++ b/test/let/global/global.wgsl.expected.glsl
@@ -4,17 +4,6 @@
struct MyStruct {
float f1;
};
-
-const int v1 = 1;
-const uint v2 = 1u;
-const float v3 = 1.0f;
-const ivec3 v4 = ivec3(1, 1, 1);
-const uvec3 v5 = uvec3(1u, 1u, 1u);
-const vec3 v6 = vec3(1.0f, 1.0f, 1.0f);
-const mat3 v7 = mat3(vec3(1.0f, 1.0f, 1.0f), vec3(1.0f, 1.0f, 1.0f), vec3(1.0f, 1.0f, 1.0f));
-const MyStruct v8 = MyStruct(0.0f);
-const float v9[10] = float[10](0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-
struct tint_symbol_1 {
vec4 value;
};
diff --git a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
index c27e6cd..9fbac12 100644
--- a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int i;
+shared int i;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -13,7 +11,7 @@
{
i = 0;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
i = 123;
int use = (i + 1);
}
@@ -30,9 +28,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/types/module_scope_let.wgsl.expected.glsl b/test/types/module_scope_let.wgsl.expected.glsl
index bd84301..166c6c7 100644
--- a/test/types/module_scope_let.wgsl.expected.glsl
+++ b/test/types/module_scope_let.wgsl.expected.glsl
@@ -5,17 +5,6 @@
float a;
};
-const bool bool_let = false;
-const int i32_let = 0;
-const uint u32_let = 0u;
-const float f32_let = 0.0f;
-const ivec2 v2i32_let = ivec2(0, 0);
-const uvec3 v3u32_let = uvec3(0u, 0u, 0u);
-const vec4 v4f32_let = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-const mat3x4 m3x4_let = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-const float arr_let[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
-const S struct_let = S(0.0f);
-
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void tint_symbol() {
return;
diff --git a/test/var/initialization/workgroup/array.wgsl.expected.glsl b/test/var/initialization/workgroup/array.wgsl.expected.glsl
index 803d29b..c53f318 100644
--- a/test/var/initialization/workgroup/array.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/array.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int v[3];
+shared int v[3];
struct tint_symbol_2 {
uint local_invocation_index;
@@ -16,7 +14,7 @@
v[i] = 0;
}
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -31,9 +29,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/initialization/workgroup/matrix.wgsl.expected.glsl b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
index 427c0d3..8ea3faa 100644
--- a/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared mat2x3 v;
+shared mat2x3 v;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -13,7 +11,7 @@
{
v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -28,9 +26,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/initialization/workgroup/scalar.wgsl.expected.glsl b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
index 398d676..51471ca 100644
--- a/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int v;
+shared int v;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -13,7 +11,7 @@
{
v = 0;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -28,9 +26,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/initialization/workgroup/struct.wgsl.expected.glsl b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
index f7cd58a..bb6cf92 100644
--- a/test/var/initialization/workgroup/struct.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -8,7 +6,7 @@
float b;
};
-groupshared S v;
+shared S v;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -19,7 +17,7 @@
S tint_symbol_3 = S(0, 0.0f);
v = tint_symbol_3;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -34,9 +32,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:9: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/initialization/workgroup/vector.wgsl.expected.glsl b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
index 6662b52..af1722c 100644
--- a/test/var/initialization/workgroup/vector.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared ivec3 v;
+shared ivec3 v;
struct tint_symbol_2 {
uint local_invocation_index;
@@ -13,7 +11,7 @@
{
v = ivec3(0, 0, 0);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -28,9 +26,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/uses/many_workgroup_vars.wgsl.expected.glsl b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
index 479388b..42cbfeb 100644
--- a/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
+++ b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
@@ -1,108 +1,106 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared mat2 m00;
-groupshared mat2 m01;
-groupshared mat2 m02;
-groupshared mat2 m03;
-groupshared mat2 m04;
-groupshared mat2 m05;
-groupshared mat2 m06;
-groupshared mat2 m07;
-groupshared mat2 m08;
-groupshared mat2 m09;
-groupshared mat2 m10;
-groupshared mat2 m11;
-groupshared mat2 m12;
-groupshared mat2 m13;
-groupshared mat2 m14;
-groupshared mat2 m15;
-groupshared mat2 m16;
-groupshared mat2 m17;
-groupshared mat2 m18;
-groupshared mat2 m19;
-groupshared mat2 m20;
-groupshared mat2 m21;
-groupshared mat2 m22;
-groupshared mat2 m23;
-groupshared mat2 m24;
-groupshared mat2 m25;
-groupshared mat2 m26;
-groupshared mat2 m27;
-groupshared mat2 m28;
-groupshared mat2 m29;
-groupshared mat2 m30;
-groupshared mat2 m31;
-groupshared mat2 m32;
-groupshared mat2 m33;
-groupshared mat2 m34;
-groupshared mat2 m35;
-groupshared mat2 m36;
-groupshared mat2 m37;
-groupshared mat2 m38;
-groupshared mat2 m39;
-groupshared mat2 m40;
-groupshared mat2 m41;
-groupshared mat2 m42;
-groupshared mat2 m43;
-groupshared mat2 m44;
-groupshared mat2 m45;
-groupshared mat2 m46;
-groupshared mat2 m47;
-groupshared mat2 m48;
-groupshared mat2 m49;
-groupshared mat2 m50;
-groupshared mat2 m51;
-groupshared mat2 m52;
-groupshared mat2 m53;
-groupshared mat2 m54;
-groupshared mat2 m55;
-groupshared mat2 m56;
-groupshared mat2 m57;
-groupshared mat2 m58;
-groupshared mat2 m59;
-groupshared mat2 m60;
-groupshared mat2 m61;
-groupshared mat2 m62;
-groupshared mat2 m63;
-groupshared mat2 m64;
-groupshared mat2 m65;
-groupshared mat2 m66;
-groupshared mat2 m67;
-groupshared mat2 m68;
-groupshared mat2 m69;
-groupshared mat2 m70;
-groupshared mat2 m71;
-groupshared mat2 m72;
-groupshared mat2 m73;
-groupshared mat2 m74;
-groupshared mat2 m75;
-groupshared mat2 m76;
-groupshared mat2 m77;
-groupshared mat2 m78;
-groupshared mat2 m79;
-groupshared mat2 m80;
-groupshared mat2 m81;
-groupshared mat2 m82;
-groupshared mat2 m83;
-groupshared mat2 m84;
-groupshared mat2 m85;
-groupshared mat2 m86;
-groupshared mat2 m87;
-groupshared mat2 m88;
-groupshared mat2 m89;
-groupshared mat2 m90;
-groupshared mat2 m91;
-groupshared mat2 m92;
-groupshared mat2 m93;
-groupshared mat2 m94;
-groupshared mat2 m95;
-groupshared mat2 m96;
-groupshared mat2 m97;
-groupshared mat2 m98;
-groupshared mat2 m99;
+shared mat2 m00;
+shared mat2 m01;
+shared mat2 m02;
+shared mat2 m03;
+shared mat2 m04;
+shared mat2 m05;
+shared mat2 m06;
+shared mat2 m07;
+shared mat2 m08;
+shared mat2 m09;
+shared mat2 m10;
+shared mat2 m11;
+shared mat2 m12;
+shared mat2 m13;
+shared mat2 m14;
+shared mat2 m15;
+shared mat2 m16;
+shared mat2 m17;
+shared mat2 m18;
+shared mat2 m19;
+shared mat2 m20;
+shared mat2 m21;
+shared mat2 m22;
+shared mat2 m23;
+shared mat2 m24;
+shared mat2 m25;
+shared mat2 m26;
+shared mat2 m27;
+shared mat2 m28;
+shared mat2 m29;
+shared mat2 m30;
+shared mat2 m31;
+shared mat2 m32;
+shared mat2 m33;
+shared mat2 m34;
+shared mat2 m35;
+shared mat2 m36;
+shared mat2 m37;
+shared mat2 m38;
+shared mat2 m39;
+shared mat2 m40;
+shared mat2 m41;
+shared mat2 m42;
+shared mat2 m43;
+shared mat2 m44;
+shared mat2 m45;
+shared mat2 m46;
+shared mat2 m47;
+shared mat2 m48;
+shared mat2 m49;
+shared mat2 m50;
+shared mat2 m51;
+shared mat2 m52;
+shared mat2 m53;
+shared mat2 m54;
+shared mat2 m55;
+shared mat2 m56;
+shared mat2 m57;
+shared mat2 m58;
+shared mat2 m59;
+shared mat2 m60;
+shared mat2 m61;
+shared mat2 m62;
+shared mat2 m63;
+shared mat2 m64;
+shared mat2 m65;
+shared mat2 m66;
+shared mat2 m67;
+shared mat2 m68;
+shared mat2 m69;
+shared mat2 m70;
+shared mat2 m71;
+shared mat2 m72;
+shared mat2 m73;
+shared mat2 m74;
+shared mat2 m75;
+shared mat2 m76;
+shared mat2 m77;
+shared mat2 m78;
+shared mat2 m79;
+shared mat2 m80;
+shared mat2 m81;
+shared mat2 m82;
+shared mat2 m83;
+shared mat2 m84;
+shared mat2 m85;
+shared mat2 m86;
+shared mat2 m87;
+shared mat2 m88;
+shared mat2 m89;
+shared mat2 m90;
+shared mat2 m91;
+shared mat2 m92;
+shared mat2 m93;
+shared mat2 m94;
+shared mat2 m95;
+shared mat2 m96;
+shared mat2 m97;
+shared mat2 m98;
+shared mat2 m99;
struct tint_symbol_2 {
uint idx;
@@ -211,7 +209,7 @@
m98 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
m99 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
m00[0][0] = 1.0f;
m01[0][0] = 1.0f;
m02[0][0] = 1.0f;
@@ -326,9 +324,3 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
diff --git a/test/var/uses/workgroup.wgsl.expected.glsl b/test/var/uses/workgroup.wgsl.expected.glsl
index 8b19e03..b577200 100644
--- a/test/var/uses/workgroup.wgsl.expected.glsl
+++ b/test/var/uses/workgroup.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
-groupshared int a;
+shared int a;
void uses_a() {
a = (a + 1);
@@ -17,7 +15,7 @@
{
a = 0;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
a = 42;
uses_a();
}
@@ -41,16 +39,10 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
-groupshared int b;
+shared int b;
void uses_b() {
b = (b * 2);
@@ -67,7 +59,7 @@
{
b = 0;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
b = 7;
uses_b();
}
@@ -88,17 +80,11 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
-groupshared int a;
-groupshared int b;
+shared int a;
+shared int b;
void uses_a() {
a = (a + 1);
@@ -138,7 +124,7 @@
a = 0;
b = 0;
}
- GroupMemoryBarrierWithGroupSync();
+ memoryBarrierShared();
outer();
no_uses();
}
@@ -155,12 +141,6 @@
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
-ERROR: 1 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;