Update ComputeStorageBufferBarrierTests to use WGSL

Bug: dawn:572
Change-Id: I42e971b843807602ba91f5df0aa692569ec31521
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/32511
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp b/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp
index 3fe9de9..69c228a 100644
--- a/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp
+++ b/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp
@@ -31,13 +31,17 @@
     wgpu::Buffer buffer = utils::CreateBufferFromData(
         device, data.data(), bufferSize, wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc);
 
-    wgpu::ShaderModule module =
-        utils::CreateShaderModule(device, utils::SingleShaderStage::Compute, R"(
-        #version 450
-        #define kNumValues 100
-        layout(std430, set = 0, binding = 0) buffer Buf { uint buf[kNumValues]; };
-        void main() {
-            buf[gl_GlobalInvocationID.x] += 0x1234;
+    wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"(
+        [[block]] struct Buf {
+            [[offset(0)]] data : [[stride(4)]] array<u32, 100>;
+        };
+
+        [[set(0), binding(0)]] var<storage_buffer> buf : [[access(read_write)]] Buf;
+
+        [[builtin(global_invocation_id)]] var<in> GlobalInvocationID : vec3<u32>;
+
+        [[stage(compute)]] fn main() -> void {
+            buf.data[GlobalInvocationID.x] = buf.data[GlobalInvocationID.x] + 0x1234;
         }
     )");
 
@@ -78,15 +82,22 @@
     wgpu::Buffer bufferB = utils::CreateBufferFromData(
         device, data.data(), bufferSize, wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc);
 
-    wgpu::ShaderModule module =
-        utils::CreateShaderModule(device, utils::SingleShaderStage::Compute, R"(
-        #version 450
-        #define kNumValues 100
-        layout(std430, set = 0, binding = 0) buffer Src { uint src[kNumValues]; };
-        layout(std430, set = 0, binding = 1) buffer Dst { uint dst[kNumValues]; };
-        void main() {
-            uint index = gl_GlobalInvocationID.x;
-            dst[index] = src[index] + 0x1234;
+    wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"(
+        # TODO(crbug.com/tint/386):  Use the same struct.
+        [[block]] struct Src {
+            [[offset(0)]] data : [[stride(4)]] array<u32, 100>;
+        };
+
+        [[block]] struct Dst {
+            [[offset(0)]] data : [[stride(4)]] array<u32, 100>;
+        };
+
+        [[set(0), binding(0)]] var<storage_buffer> src : [[access(read_write)]] Src;
+        [[set(0), binding(1)]] var<storage_buffer> dst : [[access(read_write)]] Dst;
+        [[builtin(global_invocation_id)]] var<in> GlobalInvocationID : vec3<u32>;
+
+        [[stage(compute)]] fn main() -> void {
+            dst.data[GlobalInvocationID.x] = src.data[GlobalInvocationID.x] + 0x1234;
         }
     )");
 
@@ -142,15 +153,23 @@
     wgpu::Buffer bufferB = utils::CreateBufferFromData(
         device, data.data(), bufferSize, wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc);
 
-    wgpu::ShaderModule module =
-        utils::CreateShaderModule(device, utils::SingleShaderStage::Compute, R"(
-        #version 450
-        #define kNumValues 100
-        layout(std430, set = 0, binding = 0) readonly buffer Src { uint src[kNumValues]; };
-        layout(std430, set = 0, binding = 1) buffer Dst { uint dst[kNumValues]; };
-        void main() {
-            uint index = gl_GlobalInvocationID.x;
-            dst[index] = src[index] + 0x1234;
+    wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"(
+        # TODO(crbug.com/tint/386):  Use the same struct.
+        [[block]] struct Src {
+            [[offset(0)]] data : [[stride(4)]] array<u32, 100>;
+        };
+
+        [[block]] struct Dst {
+            [[offset(0)]] data : [[stride(4)]] array<u32, 100>;
+        };
+
+        [[set(0), binding(0)]] var<storage_buffer> src : [[access(read)]] Src;
+        [[set(0), binding(1)]] var<storage_buffer> dst : [[access(read_write)]] Dst;
+
+        [[builtin(global_invocation_id)]] var<in> GlobalInvocationID : vec3<u32>;
+
+        [[stage(compute)]] fn main() -> void {
+            dst.data[GlobalInvocationID.x] = src.data[GlobalInvocationID.x] + 0x1234;
         }
     )");
 
@@ -208,15 +227,18 @@
         device, data.data(), bufferSize,
         wgpu::BufferUsage::Storage | wgpu::BufferUsage::Uniform | wgpu::BufferUsage::CopySrc);
 
-    wgpu::ShaderModule module =
-        utils::CreateShaderModule(device, utils::SingleShaderStage::Compute, R"(
-        #version 450
-        #define kNumValues 100
-        layout(std140, set = 0, binding = 0) uniform Src { uvec4 src[kNumValues / 4]; };
-        layout(std430, set = 0, binding = 1) buffer Dst { uvec4 dst[kNumValues / 4]; };
-        void main() {
-            uint index = gl_GlobalInvocationID.x;
-            dst[index] = src[index] + 0x1234;
+    wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"(
+        [[block]] struct Buf {
+            [[offset(0)]] data : [[stride(16)]] array<vec4<u32>, 25>;
+        };
+
+        [[set(0), binding(0)]] var<uniform> src : Buf;
+        [[set(0), binding(1)]] var<storage_buffer> dst : [[access(read_write)]] Buf;
+        [[builtin(global_invocation_id)]] var<in> GlobalInvocationID : vec3<u32>;
+
+        [[stage(compute)]] fn main() -> void {
+            dst.data[GlobalInvocationID.x] = src.data[GlobalInvocationID.x] +
+                vec4<u32>(0x1234, 0x1234, 0x1234, 0x1234);
         }
     )");
 
@@ -273,15 +295,18 @@
         device, data.data(), bufferSize,
         wgpu::BufferUsage::Storage | wgpu::BufferUsage::Uniform | wgpu::BufferUsage::CopySrc);
 
-    wgpu::ShaderModule module =
-        utils::CreateShaderModule(device, utils::SingleShaderStage::Compute, R"(
-        #version 450
-        #define kNumValues 100
-        layout(std140, set = 0, binding = 0) uniform Src { uvec4 src[kNumValues / 4]; };
-        layout(std430, set = 0, binding = 1) buffer Dst { uvec4 dst[kNumValues / 4]; };
-        void main() {
-            uint index = gl_GlobalInvocationID.x;
-            dst[index] = src[index] + 0x1234;
+    wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"(
+        [[block]] struct Buf {
+            [[offset(0)]] data : [[stride(16)]] array<vec4<u32>, 25>;
+        };
+
+        [[set(0), binding(0)]] var<uniform> src : Buf;
+        [[set(0), binding(1)]] var<storage_buffer> dst : [[access(read_write)]] Buf;
+        [[builtin(global_invocation_id)]] var<in> GlobalInvocationID : vec3<u32>;
+
+        [[stage(compute)]] fn main() -> void {
+            dst.data[GlobalInvocationID.x] = src.data[GlobalInvocationID.x] +
+                vec4<u32>(0x1234, 0x1234, 0x1234, 0x1234);
         }
     )");