From c56868420d115a0bb1822bf88d62ffd1b1959a6f Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Wed, 17 Mar 2021 09:48:19 +0000 Subject: [PATCH] Migrate all tests over to using Default Struct Layout The WGSL spec has been updated with 'Default Struct Layouts': https://github.com/gpuweb/gpuweb/pull/1447 This removes the `[[offset(n)]]` decoration, and replaces it with two optional decorations: `[[size(n)]]` and `[[align(n)]]`, and a sensible set of sizes and alignments for each type. Most `[[stride(n)]]` decorations have also been removed from arrays. Bug: tint:626 Bug: tint:629 Change-Id: Ib0d2741f61ea943e6fb99d00cbb5cab2f97ae7be Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/44280 Commit-Queue: Ben Clayton Reviewed-by: Corentin Wallez --- examples/ComputeBoids.cpp | 22 +++++----- examples/CubeReflection.cpp | 6 +-- .../CopyTextureForBrowserHelper.cpp | 4 +- src/dawn_native/QueryHelper.cpp | 14 +++--- src/tests/end2end/BindGroupTests.cpp | 40 ++++++++--------- src/tests/end2end/BufferZeroInitTests.cpp | 4 +- src/tests/end2end/ColorStateTests.cpp | 14 +++--- .../end2end/ComputeCopyStorageBufferTests.cpp | 16 +++---- src/tests/end2end/ComputeDispatchTests.cpp | 4 +- .../ComputeStorageBufferBarrierTests.cpp | 14 +++--- .../end2end/CopyTextureForBrowserTests.cpp | 4 +- .../end2end/CreatePipelineAsyncTests.cpp | 4 +- src/tests/end2end/D3D12CachingTests.cpp | 2 +- .../end2end/DepthStencilSamplingTests.cpp | 10 ++--- src/tests/end2end/DepthStencilStateTests.cpp | 8 ++-- src/tests/end2end/DeviceLostTests.cpp | 5 +-- .../end2end/DynamicBufferOffsetTests.cpp | 20 ++++----- src/tests/end2end/EntryPointTests.cpp | 2 +- src/tests/end2end/FirstIndexOffsetTests.cpp | 4 +- .../end2end/GpuMemorySynchronizationTests.cpp | 32 +++++++------- .../end2end/MultisampledSamplingTests.cpp | 4 +- src/tests/end2end/OpArrayLengthTests.cpp | 14 +++--- src/tests/end2end/RenderBundleTests.cpp | 2 +- .../end2end/SamplerFilterAnisotropicTests.cpp | 2 +- src/tests/end2end/ShaderTests.cpp | 2 +- src/tests/end2end/StorageTextureTests.cpp | 6 +-- src/tests/end2end/TextureZeroInitTests.cpp | 2 +- src/tests/perf_tests/DrawCallPerf.cpp | 6 +-- .../validation/BindGroupValidationTests.cpp | 10 ++--- .../GetBindGroupLayoutValidationTests.cpp | 44 +++++++++---------- .../RenderBundleValidationTests.cpp | 6 +-- .../RenderPipelineValidationTests.cpp | 4 +- .../validation/ResourceUsageTrackingTests.cpp | 4 +- .../StorageTextureValidationTests.cpp | 2 +- 34 files changed, 168 insertions(+), 169 deletions(-) diff --git a/examples/ComputeBoids.cpp b/examples/ComputeBoids.cpp index cb437d9911..476077290c 100644 --- a/examples/ComputeBoids.cpp +++ b/examples/ComputeBoids.cpp @@ -151,21 +151,21 @@ void initRender() { void initSim() { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( struct Particle { - [[offset(0)]] pos : vec2; - [[offset(8)]] vel : vec2; + pos : vec2; + vel : vec2; }; [[block]] struct SimParams { - [[offset(0)]] deltaT : f32; - [[offset(4)]] rule1Distance : f32; - [[offset(8)]] rule2Distance : f32; - [[offset(12)]] rule3Distance : f32; - [[offset(16)]] rule1Scale : f32; - [[offset(20)]] rule2Scale : f32; - [[offset(24)]] rule3Scale : f32; - [[offset(28)]] particleCount : u32; + deltaT : f32; + rule1Distance : f32; + rule2Distance : f32; + rule3Distance : f32; + rule1Scale : f32; + rule2Scale : f32; + rule3Scale : f32; + particleCount : u32; }; [[block]] struct Particles { - [[offset(0)]] particles : [[stride(16)]] array; + particles : array; }; [[binding(0), group(0)]] var params : SimParams; [[binding(1), group(0)]] var particlesA : [[access(read)]] Particles; diff --git a/examples/CubeReflection.cpp b/examples/CubeReflection.cpp index 34691bff9e..88d5cb41b9 100644 --- a/examples/CubeReflection.cpp +++ b/examples/CubeReflection.cpp @@ -103,13 +103,13 @@ void init() { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Camera { - [[offset(0)]] view : mat4x4; - [[offset(64)]] proj : mat4x4; + view : mat4x4; + proj : mat4x4; }; [[group(0), binding(0)]] var camera : Camera; [[block]] struct Model { - [[offset(0)]] matrix : mat4x4; + matrix : mat4x4; }; [[group(0), binding(1)]] var model : Model; diff --git a/src/dawn_native/CopyTextureForBrowserHelper.cpp b/src/dawn_native/CopyTextureForBrowserHelper.cpp index 0a7a87f4bd..892e7e7620 100644 --- a/src/dawn_native/CopyTextureForBrowserHelper.cpp +++ b/src/dawn_native/CopyTextureForBrowserHelper.cpp @@ -35,8 +35,8 @@ namespace dawn_native { // TODO(shaobo.yan@intel.com) : Support premultiplay-alpha, flipY. static const char sCopyTextureForBrowserVertex[] = R"( [[block]] struct Uniforms { - [[offset(0)]] u_scale : vec2; - [[offset(8)]] u_offset : vec2; + u_scale : vec2; + u_offset : vec2; }; const texcoord : array, 3> = array, 3>( vec2(-0.5, 0.0), diff --git a/src/dawn_native/QueryHelper.cpp b/src/dawn_native/QueryHelper.cpp index 4921c081cc..9b84e307d8 100644 --- a/src/dawn_native/QueryHelper.cpp +++ b/src/dawn_native/QueryHelper.cpp @@ -34,22 +34,22 @@ namespace dawn_native { static const char sConvertTimestampsToNanoseconds[] = R"( struct Timestamp { - [[offset(0)]] low : u32; - [[offset(4)]] high : u32; + low : u32; + high : u32; }; [[block]] struct TimestampArr { - [[offset(0)]] t : [[stride(8)]] array; + t : array; }; [[block]] struct AvailabilityArr { - [[offset(0)]] v : [[stride(4)]] array; + v : array; }; [[block]] struct TimestampParams { - [[offset(0)]] count : u32; - [[offset(4)]] offset : u32; - [[offset(8)]] period : f32; + count : u32; + offset : u32; + period : f32; }; [[group(0), binding(0)]] diff --git a/src/tests/end2end/BindGroupTests.cpp b/src/tests/end2end/BindGroupTests.cpp index 40e7c47d26..73450b8f1e 100644 --- a/src/tests/end2end/BindGroupTests.cpp +++ b/src/tests/end2end/BindGroupTests.cpp @@ -67,7 +67,7 @@ class BindGroupTests : public DawnTest { for (size_t i = 0; i < bindingTypes.size(); ++i) { fs << "[[block]] struct Buffer" << i << R"( { - [[offset(0)]] color : vec4; + color : vec4; };)"; switch (bindingTypes[i]) { @@ -121,7 +121,7 @@ class BindGroupTests : public DawnTest { TEST_P(BindGroupTests, ReusedBindGroupSingleSubmit) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Contents { - [[offset(0)]] f : f32; + f : f32; }; [[group(0), binding(0)]] var contents: Contents; @@ -155,7 +155,7 @@ TEST_P(BindGroupTests, ReusedUBO) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( // TODO(crbug.com/tint/369): Use a mat2x2 when Tint translates it correctly. [[block]] struct VertexUniformBuffer { - [[offset(0)]] transform : vec4; + transform : vec4; }; [[group(0), binding(0)]] var vertexUbo : VertexUniformBuffer; @@ -177,7 +177,7 @@ TEST_P(BindGroupTests, ReusedUBO) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct FragmentUniformBuffer { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(1)]] var fragmentUbo : FragmentUniformBuffer; @@ -239,7 +239,7 @@ TEST_P(BindGroupTests, UBOSamplerAndTexture) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( // TODO(crbug.com/tint/369): Use a mat2x2 when Tint translates it correctly. [[block]] struct VertexUniformBuffer { - [[offset(0)]] transform : vec4; + transform : vec4; }; [[group(0), binding(0)]] var vertexUbo : VertexUniformBuffer; @@ -349,11 +349,11 @@ TEST_P(BindGroupTests, MultipleBindLayouts) { // TODO(crbug.com/tint/369): Use a mat2x2 when Tint translates it correctly. // TODO(crbug.com/tint/386): Use the same struct. [[block]] struct VertexUniformBuffer1 { - [[offset(0)]] transform : vec4; + transform : vec4; }; [[block]] struct VertexUniformBuffer2 { - [[offset(0)]] transform : vec4; + transform : vec4; }; // TODO(crbug.com/tint/386): Use the same struct definition. @@ -378,11 +378,11 @@ TEST_P(BindGroupTests, MultipleBindLayouts) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( // TODO(crbug.com/tint/386): Use the same struct [[block]] struct FragmentUniformBuffer1 { - [[offset(0)]] color : vec4; + color : vec4; }; [[block]] struct FragmentUniformBuffer2 { - [[offset(0)]] color : vec4; + color : vec4; }; // TODO(crbug.com/tint/386): Use the same struct definition. @@ -834,19 +834,19 @@ TEST_P(BindGroupTests, DynamicOffsetOrder) { pipelineDescriptor.computeStage.module = utils::CreateShaderModuleFromWGSL(device, R"( // TODO(crbug.com/tint/386): Use the same struct [[block]] struct Buffer0 { - [[offset(0)]] value : u32; + value : u32; }; [[block]] struct Buffer2 { - [[offset(0)]] value : u32; + value : u32; }; [[block]] struct Buffer3 { - [[offset(0)]] value : u32; + value : u32; }; [[block]] struct OutputBuffer { - [[offset(0)]] value : vec3; + value : vec3; }; [[group(0), binding(2)]] var buffer2 : Buffer2; @@ -962,15 +962,15 @@ TEST_P(BindGroupTests, ArbitraryBindingNumbers) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( // TODO(crbug.com/tint/386): Use the same struct [[block]] struct Ubo1 { - [[offset(0)]] color : vec4; + color : vec4; }; [[block]] struct Ubo2 { - [[offset(0)]] color : vec4; + color : vec4; }; [[block]] struct Ubo3 { - [[offset(0)]] color : vec4; + color : vec4; }; // TODO(crbug.com/tint/386): Use the same struct definition. @@ -1117,7 +1117,7 @@ TEST_P(BindGroupTests, ReadonlyStorage) { pipelineDescriptor.cFragmentStage.module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buffer0 { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(0)]] var buffer0 : [[access(read)]] Buffer0; @@ -1236,7 +1236,7 @@ TEST_P(BindGroupTests, ReallyLargeBindGroup) { bgEntries.push_back({binding, buffer, 0, 4 * sizeof(uint32_t), nullptr, nullptr}); interface << "[[block]] struct UniformBuffer" << i << R"({ - [[offset(0)]] value : u32; + value : u32; }; )"; interface << "[[group(0), binding(" << binding++ << ")]] " @@ -1253,7 +1253,7 @@ TEST_P(BindGroupTests, ReallyLargeBindGroup) { bgEntries.push_back({binding, buffer, 0, sizeof(uint32_t), nullptr, nullptr}); interface << "[[block]] struct ReadOnlyStorageBuffer" << i << R"({ - [[offset(0)]] value : u32; + value : u32; }; )"; interface << "[[group(0), binding(" << binding++ << ")]] " @@ -1270,7 +1270,7 @@ TEST_P(BindGroupTests, ReallyLargeBindGroup) { bgEntries.push_back({binding, result, 0, sizeof(uint32_t), nullptr, nullptr}); interface << R"([[block]] struct ReadWriteStorageBuffer{ - [[offset(0)]] value : u32; + value : u32; }; )"; interface << "[[group(0), binding(" << binding++ << ")]] " diff --git a/src/tests/end2end/BufferZeroInitTests.cpp b/src/tests/end2end/BufferZeroInitTests.cpp index e65b9f058f..242af890be 100644 --- a/src/tests/end2end/BufferZeroInitTests.cpp +++ b/src/tests/end2end/BufferZeroInitTests.cpp @@ -993,7 +993,7 @@ TEST_P(BufferZeroInitTest, BoundAsUniformBuffer) { const char* computeShader = R"( [[block]] struct UBO { - [[offset(0)]] value : vec4; + value : vec4; }; [[group(0), binding(0)]] var ubo : UBO; [[group(0), binding(1)]] var outImage : [[access(write)]] texture_storage_2d; @@ -1035,7 +1035,7 @@ TEST_P(BufferZeroInitTest, BoundAsReadonlyStorageBuffer) { const char* computeShader = R"( [[block]] struct SSBO { - [[offset(0)]] value : vec4; + value : vec4; }; [[group(0), binding(0)]] var ssbo : SSBO; [[group(0), binding(1)]] var outImage : [[access(write)]] texture_storage_2d; diff --git a/src/tests/end2end/ColorStateTests.cpp b/src/tests/end2end/ColorStateTests.cpp index 6b31634f75..51336f26b9 100644 --- a/src/tests/end2end/ColorStateTests.cpp +++ b/src/tests/end2end/ColorStateTests.cpp @@ -57,7 +57,7 @@ class ColorStateTest : public DawnTest { void SetupSingleSourcePipelines(wgpu::ColorStateDescriptor colorStateDescriptor) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct MyBlock { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(0)]] var myUbo : MyBlock; @@ -771,10 +771,10 @@ TEST_P(ColorStateTest, IndependentColorState) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct MyBlock { - [[offset(0)]] color0 : vec4; - [[offset(16)]] color1 : vec4; - [[offset(32)]] color2 : vec4; - [[offset(48)]] color3 : vec4; + color0 : vec4; + color1 : vec4; + color2 : vec4; + color3 : vec4; }; [[group(0), binding(0)]] var myUbo : MyBlock; @@ -881,7 +881,7 @@ TEST_P(ColorStateTest, IndependentColorState) { TEST_P(ColorStateTest, DefaultBlendColor) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct MyBlock { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(0)]] var myUbo : MyBlock; @@ -1004,7 +1004,7 @@ TEST_P(ColorStateTest, DefaultBlendColor) { TEST_P(ColorStateTest, ColorWriteMaskDoesNotAffectRenderPassLoadOpClear) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct MyBlock { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(0)]] var myUbo : MyBlock; diff --git a/src/tests/end2end/ComputeCopyStorageBufferTests.cpp b/src/tests/end2end/ComputeCopyStorageBufferTests.cpp index 8cb9846932..c73bdf521d 100644 --- a/src/tests/end2end/ComputeCopyStorageBufferTests.cpp +++ b/src/tests/end2end/ComputeCopyStorageBufferTests.cpp @@ -89,10 +89,10 @@ void ComputeCopyStorageBufferTests::BasicTest(const char* shader) { TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfBasic) { BasicTest(R"( [[block]] struct Buf1 { - [[offset(0)]] s : [[stride(16)]] array, 4>; + s : array, 4>; }; [[block]] struct Buf2 { - [[offset(0)]] s : [[stride(16)]] array, 4>; + s : array, 4>; }; // TODO(crbug.com/tint/386): Use the same struct type @@ -112,15 +112,15 @@ TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfBasic) { TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfStruct) { BasicTest(R"( struct S { - [[offset(0)]] a : vec2; - [[offset(8)]] b : vec2; + a : vec2; + b : vec2; }; [[block]] struct Buf1 { - [[offset(0)]] s : [[stride(16)]] array; + s : array; }; [[block]] struct Buf2 { - [[offset(0)]] s : [[stride(16)]] array; + s : array; }; // TODO(crbug.com/tint/386): Use the same struct type @@ -140,10 +140,10 @@ TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfStruct) { TEST_P(ComputeCopyStorageBufferTests, UnsizedArrayOfBasic) { BasicTest(R"( [[block]] struct Buf1 { - [[offset(0)]] s : [[stride(16)]] array>; + s : array>; }; [[block]] struct Buf2 { - [[offset(0)]] s : [[stride(16)]] array>; + s : array>; }; // TODO(crbug.com/tint/386): Use the same struct type diff --git a/src/tests/end2end/ComputeDispatchTests.cpp b/src/tests/end2end/ComputeDispatchTests.cpp index 1874d00482..779ed70a32 100644 --- a/src/tests/end2end/ComputeDispatchTests.cpp +++ b/src/tests/end2end/ComputeDispatchTests.cpp @@ -30,10 +30,10 @@ class ComputeDispatchTests : public DawnTest { // To make sure the dispatch was not called, write maximum u32 value for 0 dispatches wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct InputBuf { - [[offset(0)]] expectedDispatch : vec3; + expectedDispatch : vec3; }; [[block]] struct OutputBuf { - [[offset(0)]] workGroups : vec3; + workGroups : vec3; }; [[group(0), binding(0)]] var input : InputBuf; diff --git a/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp b/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp index 65aa431b05..c28fa0fdce 100644 --- a/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp +++ b/src/tests/end2end/ComputeStorageBufferBarrierTests.cpp @@ -33,7 +33,7 @@ TEST_P(ComputeStorageBufferBarrierTests, AddIncrement) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buf { - [[offset(0)]] data : [[stride(4)]] array; + data : array; }; [[group(0), binding(0)]] var buf : [[access(read_write)]] Buf; @@ -85,11 +85,11 @@ TEST_P(ComputeStorageBufferBarrierTests, AddPingPong) { 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; + data : array; }; [[block]] struct Dst { - [[offset(0)]] data : [[stride(4)]] array; + data : array; }; [[group(0), binding(0)]] var src : [[access(read_write)]] Src; @@ -156,11 +156,11 @@ TEST_P(ComputeStorageBufferBarrierTests, StorageAndReadonlyStoragePingPongInOneP 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; + data : array; }; [[block]] struct Dst { - [[offset(0)]] data : [[stride(4)]] array; + data : array; }; [[group(0), binding(0)]] var src : [[access(read)]] Src; @@ -229,7 +229,7 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPong) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buf { - [[offset(0)]] data : [[stride(16)]] array, 25>; + data : array, 25>; }; [[group(0), binding(0)]] var src : Buf; @@ -297,7 +297,7 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPongInOnePass) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buf { - [[offset(0)]] data : [[stride(16)]] array, 25>; + data : array, 25>; }; [[group(0), binding(0)]] var src : Buf; diff --git a/src/tests/end2end/CopyTextureForBrowserTests.cpp b/src/tests/end2end/CopyTextureForBrowserTests.cpp index 6b21a2d6fb..3f6220fc75 100644 --- a/src/tests/end2end/CopyTextureForBrowserTests.cpp +++ b/src/tests/end2end/CopyTextureForBrowserTests.cpp @@ -73,10 +73,10 @@ class CopyTextureForBrowserTests : public DawnTest { wgpu::ComputePipeline MakeTestPipeline() { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Uniforms { - [[offset(0)]] dstTextureFlipY : u32; + dstTextureFlipY : u32; }; [[block]] struct OutputBuf { - [[offset(0)]] result : [[stride(4)]] array; + result : array; }; [[group(0), binding(0)]] var src : texture_2d; [[group(0), binding(1)]] var dst : texture_2d; diff --git a/src/tests/end2end/CreatePipelineAsyncTests.cpp b/src/tests/end2end/CreatePipelineAsyncTests.cpp index ef6307c8cf..e5c6525f8b 100644 --- a/src/tests/end2end/CreatePipelineAsyncTests.cpp +++ b/src/tests/end2end/CreatePipelineAsyncTests.cpp @@ -36,7 +36,7 @@ TEST_P(CreatePipelineAsyncTest, BasicUseOfCreateComputePipelineAsync) { wgpu::ComputePipelineDescriptor csDesc; csDesc.computeStage.module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct SSBO { - [[offset(0)]] value : u32; + value : u32; }; [[group(0), binding(0)]] var ssbo : SSBO; @@ -103,7 +103,7 @@ TEST_P(CreatePipelineAsyncTest, CreateComputePipelineFailed) { wgpu::ComputePipelineDescriptor csDesc; csDesc.computeStage.module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct SSBO { - [[offset(0)]] value : u32; + value : u32; }; [[group(0), binding(0)]] var ssbo : SSBO; diff --git a/src/tests/end2end/D3D12CachingTests.cpp b/src/tests/end2end/D3D12CachingTests.cpp index c3619f6b3c..5cb23585ec 100644 --- a/src/tests/end2end/D3D12CachingTests.cpp +++ b/src/tests/end2end/D3D12CachingTests.cpp @@ -227,7 +227,7 @@ TEST_P(D3D12CachingTests, ReuseShaderWithMultipleEntryPointsPerStage) { TEST_P(D3D12CachingTests, ReuseShaderWithMultipleEntryPoints) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset(0)]] data : u32; + data : u32; }; [[binding(0), group(0)]] var data : Data; diff --git a/src/tests/end2end/DepthStencilSamplingTests.cpp b/src/tests/end2end/DepthStencilSamplingTests.cpp index d52c5cbbca..a1a29db78d 100644 --- a/src/tests/end2end/DepthStencilSamplingTests.cpp +++ b/src/tests/end2end/DepthStencilSamplingTests.cpp @@ -124,10 +124,10 @@ class DepthStencilSamplingTest : public DawnTest { std::ostringstream shaderBody; shaderSource << R"( [[block]] struct DepthResult { - [[offset(0)]] value : f32; + value : f32; }; [[block]] struct StencilResult { - [[offset(0)]] value : u32; + value : u32; };)"; shaderSource << "\n"; @@ -184,7 +184,7 @@ class DepthStencilSamplingTest : public DawnTest { [[group(0), binding(0)]] var samp : sampler_comparison; [[group(0), binding(1)]] var tex : texture_depth_2d; [[block]] struct Uniforms { - [[offset(0)]] compareRef : f32; + compareRef : f32; }; [[group(0), binding(2)]] var uniforms : Uniforms; @@ -216,12 +216,12 @@ class DepthStencilSamplingTest : public DawnTest { [[group(0), binding(0)]] var samp : sampler_comparison; [[group(0), binding(1)]] var tex : texture_depth_2d; [[block]] struct Uniforms { - [[offset(0)]] compareRef : f32; + compareRef : f32; }; [[group(0), binding(2)]] var uniforms : Uniforms; [[block]] struct SamplerResult { - [[offset(0)]] value : f32; + value : f32; }; [[group(0), binding(3)]] var samplerResult : SamplerResult; diff --git a/src/tests/end2end/DepthStencilStateTests.cpp b/src/tests/end2end/DepthStencilStateTests.cpp index e61c7b6264..157ff18638 100644 --- a/src/tests/end2end/DepthStencilStateTests.cpp +++ b/src/tests/end2end/DepthStencilStateTests.cpp @@ -54,8 +54,8 @@ class DepthStencilStateTest : public DawnTest { vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct UBO { - [[offset(0)]] color : vec3; - [[offset(12)]] depth : f32; + color : vec3; + depth : f32; }; [[group(0), binding(0)]] var ubo : UBO; [[builtin(vertex_index)]] var VertexIndex : u32; @@ -74,8 +74,8 @@ class DepthStencilStateTest : public DawnTest { fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct UBO { - [[offset(0)]] color : vec3; - [[offset(12)]] depth : f32; + color : vec3; + depth : f32; }; [[group(0), binding(0)]] var ubo : UBO; diff --git a/src/tests/end2end/DeviceLostTests.cpp b/src/tests/end2end/DeviceLostTests.cpp index 24eb28f847..d3beadd4d2 100644 --- a/src/tests/end2end/DeviceLostTests.cpp +++ b/src/tests/end2end/DeviceLostTests.cpp @@ -87,8 +87,7 @@ class DeviceLostTest : public DawnTest { device.LoseForTesting(); } - static void MapFailCallback(WGPUBufferMapAsyncStatus status, - void* userdata) { + static void MapFailCallback(WGPUBufferMapAsyncStatus status, void* userdata) { EXPECT_EQ(WGPUBufferMapAsyncStatus_DeviceLost, status); EXPECT_EQ(&fakeUserData, userdata); } @@ -127,7 +126,7 @@ TEST_P(DeviceLostTest, CreateBindGroupLayoutFails) { TEST_P(DeviceLostTest, GetBindGroupLayoutFails) { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct UniformBuffer { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var ubo : UniformBuffer; [[stage(compute)]] fn main() -> void { diff --git a/src/tests/end2end/DynamicBufferOffsetTests.cpp b/src/tests/end2end/DynamicBufferOffsetTests.cpp index 4f254f38e4..8af5fd77d4 100644 --- a/src/tests/end2end/DynamicBufferOffsetTests.cpp +++ b/src/tests/end2end/DynamicBufferOffsetTests.cpp @@ -110,19 +110,19 @@ class DynamicBufferOffsetTests : public DawnTest { fs << R"( // TODO(crbug.com/tint/386): Use the same struct. [[block]] struct Buffer1 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer2 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer3 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer4 { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var uBufferNotDynamic : Buffer1; @@ -134,7 +134,7 @@ class DynamicBufferOffsetTests : public DawnTest { if (isInheritedPipeline) { fs << R"( [[block]] struct Buffer5 { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(1), binding(0)]] var paddingBlock : Buffer5; @@ -179,19 +179,19 @@ class DynamicBufferOffsetTests : public DawnTest { cs << R"( // TODO(crbug.com/tint/386): Use the same struct. [[block]] struct Buffer1 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer2 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer3 { - [[offset(0)]] value : vec2; + value : vec2; }; [[block]] struct Buffer4 { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var uBufferNotDynamic : Buffer1; @@ -203,7 +203,7 @@ class DynamicBufferOffsetTests : public DawnTest { if (isInheritedPipeline) { cs << R"( [[block]] struct Buffer5 { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(1), binding(0)]] var paddingBlock : Buffer5; diff --git a/src/tests/end2end/EntryPointTests.cpp b/src/tests/end2end/EntryPointTests.cpp index 6cc370ad85..12aa57ec8a 100644 --- a/src/tests/end2end/EntryPointTests.cpp +++ b/src/tests/end2end/EntryPointTests.cpp @@ -72,7 +72,7 @@ TEST_P(EntryPointTests, TwoComputeInModule) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset(0)]] data : u32; + data : u32; }; [[binding(0), group(0)]] var data : Data; diff --git a/src/tests/end2end/FirstIndexOffsetTests.cpp b/src/tests/end2end/FirstIndexOffsetTests.cpp index 18eb747f75..45d8a4c20e 100644 --- a/src/tests/end2end/FirstIndexOffsetTests.cpp +++ b/src/tests/end2end/FirstIndexOffsetTests.cpp @@ -115,8 +115,8 @@ void FirstIndexOffsetTests::TestImpl(DrawMode mode, [[stage(vertex)]] fn main() -> void {)"; fragmentShader << R"( [[block]] struct IndexVals { - [[offset(0)]] vertex_index : u32; - [[offset(4)]] instance_index : u32; + vertex_index : u32; + instance_index : u32; }; [[group(0), binding(0)]] var idx_vals : [[access(read_write)]] IndexVals; diff --git a/src/tests/end2end/GpuMemorySynchronizationTests.cpp b/src/tests/end2end/GpuMemorySynchronizationTests.cpp index b7182f9655..7dd4850d38 100644 --- a/src/tests/end2end/GpuMemorySynchronizationTests.cpp +++ b/src/tests/end2end/GpuMemorySynchronizationTests.cpp @@ -37,7 +37,7 @@ class GpuMemorySyncTests : public DawnTest { const wgpu::Buffer& buffer) { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset(0)]] a : i32; + a : i32; }; [[group(0), binding(0)]] var data : [[access(read_write)]] Data; [[stage(compute)]] fn main() -> void { @@ -65,7 +65,7 @@ class GpuMemorySyncTests : public DawnTest { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset(0)]] i : i32; + i : i32; }; [[group(0), binding(0)]] var data : [[access(read_write)]] Data; [[location(0)]] var fragColor : vec4; @@ -254,8 +254,8 @@ TEST_P(GpuMemorySyncTests, SampledAndROStorageTextureInComputePass) { pipelineDesc.computeStage.entryPoint = "main"; pipelineDesc.computeStage.module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Output { - [[offset(0)]] sampledOut: u32; - [[offset(4)]] storageOut: u32; + sampledOut: u32; + storageOut: u32; }; [[group(0), binding(0)]] var output : [[access(write)]] Output; [[group(0), binding(1)]] var sampledTex : texture_2d; @@ -315,7 +315,7 @@ class StorageToUniformSyncTests : public DawnTest { std::tuple CreatePipelineAndBindGroupForCompute() { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset(0)]] a : f32; + a : f32; }; [[group(0), binding(0)]] var data : [[access(read_write)]] Data; [[stage(compute)]] fn main() -> void { @@ -342,7 +342,7 @@ class StorageToUniformSyncTests : public DawnTest { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Contents { - [[offset(0)]] color : f32; + color : f32; }; [[group(0), binding(0)]] var contents : Contents; @@ -514,21 +514,21 @@ TEST_P(MultipleWriteThenMultipleReadTests, SeparateBuffers) { // Create pipeline, bind group, and different buffers for compute pass. wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct VBContents { - [[offset(0)]] pos : [[stride(16)]] array, 4>; + pos : array, 4>; }; [[group(0), binding(0)]] var vbContents : [[access(read_write)]] VBContents; [[block]] struct IBContents { - [[offset(0)]] indices : [[stride(16)]] array, 2>; + indices : array, 2>; }; [[group(0), binding(1)]] var ibContents : [[access(read_write)]] IBContents; // TODO(crbug.com/tint/386): Use the same struct. [[block]] struct ColorContents1 { - [[offset(0)]] color : f32; + color : f32; }; [[block]] struct ColorContents2 { - [[offset(0)]] color : f32; + color : f32; }; [[group(0), binding(2)]] var uniformContents : [[access(read_write)]] ColorContents1; [[group(0), binding(3)]] var storageContents : [[access(read_write)]] ColorContents2; @@ -582,7 +582,7 @@ TEST_P(MultipleWriteThenMultipleReadTests, SeparateBuffers) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buf { - [[offset(0)]] color : f32; + color : f32; }; [[group(0), binding(0)]] var uniformBuffer : Buf; @@ -642,10 +642,10 @@ TEST_P(MultipleWriteThenMultipleReadTests, OneBuffer) { // Create pipeline, bind group, and a complex buffer for compute pass. wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Contents { - [[offset(0)]] pos : [[stride(16)]] array, 4>; - [[offset(256)]] indices : [[stride(16)]] array, 2>; - [[offset(512)]] color0 : f32; - [[offset(768)]] color1 : f32; + [[align(256)]] pos : array, 4>; + [[align(256)]] indices : array, 2>; + [[align(256)]] color0 : f32; + [[align(256)]] color1 : f32; }; [[group(0), binding(0)]] var contents : [[access(read_write)]] Contents; @@ -700,7 +700,7 @@ TEST_P(MultipleWriteThenMultipleReadTests, OneBuffer) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Buf { - [[offset(0)]] color : f32; + color : f32; }; [[group(0), binding(0)]] var uniformBuffer : Buf; [[group(0), binding(1)]] var storageBuffer : [[access(read)]] Buf; diff --git a/src/tests/end2end/MultisampledSamplingTests.cpp b/src/tests/end2end/MultisampledSamplingTests.cpp index 263b98d78a..e1afe245e3 100644 --- a/src/tests/end2end/MultisampledSamplingTests.cpp +++ b/src/tests/end2end/MultisampledSamplingTests.cpp @@ -94,8 +94,8 @@ class MultisampledSamplingTest : public DawnTest { [[group(0), binding(1)]] var texture1 : texture_multisampled_2d; [[block]] struct Results { - [[offset(0)]] colorSamples : [[stride(4)]] array; - [[offset(16)]] depthSamples : [[stride(4)]] array; + colorSamples : array; + depthSamples : array; }; [[group(0), binding(2)]] var results : [[access(read_write)]] Results; diff --git a/src/tests/end2end/OpArrayLengthTests.cpp b/src/tests/end2end/OpArrayLengthTests.cpp index 363ba66f15..b85e78a9f5 100644 --- a/src/tests/end2end/OpArrayLengthTests.cpp +++ b/src/tests/end2end/OpArrayLengthTests.cpp @@ -55,11 +55,11 @@ class OpArrayLengthTest : public DawnTest { mShaderInterface = R"( // TODO(crbug.com/tint/386): Use the same struct. [[block]] struct DataBuffer1 { - [[offset(0)]] data : [[stride(4)]] array; + data : [[stride(4)]] array; }; [[block]] struct DataBuffer2 { - [[offset(0)]] data : [[stride(4)]] array; + data : [[stride(4)]] array; }; // The length should be 1 because the buffer is 4-byte long. @@ -71,13 +71,13 @@ class OpArrayLengthTest : public DawnTest { // The length should be (512 - 16*4) / 8 = 56 because the buffer is 512 bytes long // and the structure is 8 bytes big. struct Buffer3Data { - [[offset(0)]] a : f32; - [[offset(4)]] b : i32; + a : f32; + b : i32; }; [[block]] struct Buffer3 { - [[offset(0)]] garbage : mat4x4; - [[offset(64)]] data : [[stride(8)]] array; + [[size(64)]] garbage : mat4x4; + data : [[stride(8)]] array; }; [[group(0), binding(2)]] var buffer3 : [[access(read)]] Buffer3; )"; @@ -126,7 +126,7 @@ TEST_P(OpArrayLengthTest, Compute) { pipelineDesc.computeStage.entryPoint = "main"; pipelineDesc.computeStage.module = utils::CreateShaderModuleFromWGSL(device, (R"( [[block]] struct ResultBuffer { - [[offset(0)]] data : [[stride(4)]] array; + data : [[stride(4)]] array; }; [[group(1), binding(0)]] var result : [[access(read_write)]] ResultBuffer; )" + mShaderInterface + R"( diff --git a/src/tests/end2end/RenderBundleTests.cpp b/src/tests/end2end/RenderBundleTests.cpp index 27d5faf10c..9c634f34fc 100644 --- a/src/tests/end2end/RenderBundleTests.cpp +++ b/src/tests/end2end/RenderBundleTests.cpp @@ -41,7 +41,7 @@ class RenderBundleTest : public DawnTest { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[location(0)]] var fragColor : vec4; [[block]] struct Ubo { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(0), binding(0)]] var fragmentUniformBuffer : Ubo; diff --git a/src/tests/end2end/SamplerFilterAnisotropicTests.cpp b/src/tests/end2end/SamplerFilterAnisotropicTests.cpp index 67f7bc94fa..97581de9ae 100644 --- a/src/tests/end2end/SamplerFilterAnisotropicTests.cpp +++ b/src/tests/end2end/SamplerFilterAnisotropicTests.cpp @@ -39,7 +39,7 @@ class SamplerFilterAnisotropicTest : public DawnTest { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Uniforms { - [[offset(0)]] matrix : mat4x4; + matrix : mat4x4; }; [[location(0)]] var position : vec4; diff --git a/src/tests/end2end/ShaderTests.cpp b/src/tests/end2end/ShaderTests.cpp index 4acb52f17a..5b86ae0c59 100644 --- a/src/tests/end2end/ShaderTests.cpp +++ b/src/tests/end2end/ShaderTests.cpp @@ -32,7 +32,7 @@ TEST_P(ShaderTests, ComputeLog2) { std::string shader = R"( [[block]] struct Buf { - [[offset(0)]] data : [[stride(4)]] array; + data : array; }; [[group(0), binding(0)]] var buf : [[access(read_write)]] Buf; diff --git a/src/tests/end2end/StorageTextureTests.cpp b/src/tests/end2end/StorageTextureTests.cpp index 3557e18bfd..d219e98cb0 100644 --- a/src/tests/end2end/StorageTextureTests.cpp +++ b/src/tests/end2end/StorageTextureTests.cpp @@ -709,7 +709,7 @@ TEST_P(StorageTextureTests, ReadonlyStorageTextureInComputeShader) { std::ostringstream csStream; csStream << R"( [[block]] struct DstBuffer { - [[offset(0)]] result : u32; + result : u32; }; [[group(0), binding(1)]] var dstBuffer : DstBuffer; @@ -934,7 +934,7 @@ TEST_P(StorageTextureTests, Readonly2DArrayStorageTexture) { std::ostringstream csStream; csStream << R"( [[block]] struct DstBuffer { - [[offset(0)]] result : u32; + result : u32; }; [[group(0), binding(1)]] var dstBuffer : DstBuffer; @@ -1203,7 +1203,7 @@ TEST_P(StorageTextureZeroInitTests, ReadonlyStorageTextureClearsToZeroInComputeP // to DstBuffer if they all have to expected value. const std::string kComputeShader = std::string(R"( [[block]] struct DstBuffer { - [[offset(0)]] result : u32; + result : u32; }; [[group(0), binding(0)]] var srcImage : [[access(read)]] texture_storage_2d; diff --git a/src/tests/end2end/TextureZeroInitTests.cpp b/src/tests/end2end/TextureZeroInitTests.cpp index 8664b78199..0355abb787 100644 --- a/src/tests/end2end/TextureZeroInitTests.cpp +++ b/src/tests/end2end/TextureZeroInitTests.cpp @@ -976,7 +976,7 @@ TEST_P(TextureZeroInitTest, ComputePassSampledTextureClear) { const char* cs = R"( [[group(0), binding(0)]] var tex : texture_2d; [[block]] struct Result { - [[offset(0)]] value : vec4; + value : vec4; }; [[group(0), binding(1)]] var result : Result; [[stage(compute)]] fn main() -> void { diff --git a/src/tests/perf_tests/DrawCallPerf.cpp b/src/tests/perf_tests/DrawCallPerf.cpp index 557ae2854c..ef83be373a 100644 --- a/src/tests/perf_tests/DrawCallPerf.cpp +++ b/src/tests/perf_tests/DrawCallPerf.cpp @@ -41,7 +41,7 @@ namespace { constexpr char kFragmentShaderA[] = R"( [[block]] struct Uniforms { - [[offset(0)]] color : vec3; + color : vec3; }; [[group(0), binding(0)]] var uniforms : Uniforms; [[location(0)]] var fragColor : vec4; @@ -51,10 +51,10 @@ namespace { constexpr char kFragmentShaderB[] = R"( [[block]] struct Constants { - [[offset(0)]] color : vec3; + color : vec3; }; [[block]] struct Uniforms { - [[offset(0)]] color : vec3; + color : vec3; }; [[group(0), binding(0)]] var constants : Constants; [[group(1), binding(0)]] var uniforms : Uniforms; diff --git a/src/tests/unittests/validation/BindGroupValidationTests.cpp b/src/tests/unittests/validation/BindGroupValidationTests.cpp index 5b6430421d..895f618089 100644 --- a/src/tests/unittests/validation/BindGroupValidationTests.cpp +++ b/src/tests/unittests/validation/BindGroupValidationTests.cpp @@ -1089,7 +1089,7 @@ class SetBindGroupValidationTest : public ValidationTest { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var uBufferDynamic : S; @@ -1112,7 +1112,7 @@ class SetBindGroupValidationTest : public ValidationTest { wgpu::ComputePipeline CreateComputePipeline() { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var uBufferDynamic : S; @@ -1532,7 +1532,7 @@ class SetBindGroupPersistenceValidationTest : public ValidationTest { device.CreatePipelineLayout(&pipelineLayoutDescriptor); std::stringstream ss; - ss << "[[block]] struct S { [[offset(0)]] value : vec2; };"; + ss << "[[block]] struct S { value : vec2; };"; // Build a shader which has bindings that match the pipeline layout. for (uint32_t l = 0; l < layouts.size(); ++l) { @@ -1708,7 +1708,7 @@ class BindGroupLayoutCompatibilityTest : public ValidationTest { wgpu::RenderPipeline CreateRenderPipeline(std::vector bindGroupLayouts) { return CreateFSRenderPipeline(R"( [[block]] struct S { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var sBufferDynamic : [[access(read_write)]] S; @@ -1741,7 +1741,7 @@ class BindGroupLayoutCompatibilityTest : public ValidationTest { std::vector bindGroupLayouts) { return CreateComputePipeline(R"( [[block]] struct S { - [[offset(0)]] value : vec2; + value : vec2; }; [[group(0), binding(0)]] var sBufferDynamic : [[access(read_write)]] S; diff --git a/src/tests/unittests/validation/GetBindGroupLayoutValidationTests.cpp b/src/tests/unittests/validation/GetBindGroupLayoutValidationTests.cpp index f79ef53850..aeeb41306a 100644 --- a/src/tests/unittests/validation/GetBindGroupLayoutValidationTests.cpp +++ b/src/tests/unittests/validation/GetBindGroupLayoutValidationTests.cpp @@ -45,7 +45,7 @@ TEST_F(GetBindGroupLayoutTests, SameObject) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniform0 : S; [[group(1), binding(0)]] var uniform1 : S; @@ -55,12 +55,12 @@ TEST_F(GetBindGroupLayoutTests, SameObject) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S2 { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(2), binding(0)]] var uniform2 : S2; [[block]] struct S3 { - [[offset(0)]] pos : mat4x4; + pos : mat4x4; }; [[group(3), binding(0)]] var storage3 : S3; @@ -98,7 +98,7 @@ TEST_F(GetBindGroupLayoutTests, DefaultShaderStageAndDynamicOffsets) { wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms : S; @@ -141,7 +141,7 @@ TEST_F(GetBindGroupLayoutTests, ComputePipeline) { wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms : S; @@ -192,7 +192,7 @@ TEST_F(GetBindGroupLayoutTests, BindingType) { binding.buffer.type = wgpu::BufferBindingType::Storage; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var ssbo : S; @@ -204,7 +204,7 @@ TEST_F(GetBindGroupLayoutTests, BindingType) { binding.buffer.type = wgpu::BufferBindingType::Uniform; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms : S; @@ -217,7 +217,7 @@ TEST_F(GetBindGroupLayoutTests, BindingType) { binding.buffer.type = wgpu::BufferBindingType::ReadOnlyStorage; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var ssbo : [[access(read)]] S; @@ -404,7 +404,7 @@ TEST_F(GetBindGroupLayoutTests, BindingIndices) { binding.binding = 0; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms : S; @@ -417,7 +417,7 @@ TEST_F(GetBindGroupLayoutTests, BindingIndices) { binding.binding = 1; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(1)]] var uniforms : S; @@ -430,7 +430,7 @@ TEST_F(GetBindGroupLayoutTests, BindingIndices) { binding.binding = 2; wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(1)]] var uniforms : S; @@ -444,7 +444,7 @@ TEST_F(GetBindGroupLayoutTests, BindingIndices) { TEST_F(GetBindGroupLayoutTests, DuplicateBinding) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniform0 : S; [[group(1), binding(0)]] var uniform1 : S; @@ -454,7 +454,7 @@ TEST_F(GetBindGroupLayoutTests, DuplicateBinding) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(1), binding(0)]] var uniforms : S; @@ -478,7 +478,7 @@ TEST_F(GetBindGroupLayoutTests, MinBufferSize) { wgpu::ShaderModule vsModule4 = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : f32; + pos : f32; }; [[group(0), binding(0)]] var uniforms : S; @@ -487,7 +487,7 @@ TEST_F(GetBindGroupLayoutTests, MinBufferSize) { wgpu::ShaderModule vsModule64 = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : mat4x4; + pos : mat4x4; }; [[group(0), binding(0)]] var uniforms : S; @@ -496,7 +496,7 @@ TEST_F(GetBindGroupLayoutTests, MinBufferSize) { wgpu::ShaderModule fsModule4 = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : f32; + pos : f32; }; [[group(0), binding(0)]] var uniforms : S; @@ -505,7 +505,7 @@ TEST_F(GetBindGroupLayoutTests, MinBufferSize) { wgpu::ShaderModule fsModule64 = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : mat4x4; + pos : mat4x4; }; [[group(0), binding(0)]] var uniforms : S; @@ -627,7 +627,7 @@ TEST_F(GetBindGroupLayoutTests, StageAggregation) { TEST_F(GetBindGroupLayoutTests, ConflictingBindingType) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var ubo : S; @@ -636,7 +636,7 @@ TEST_F(GetBindGroupLayoutTests, ConflictingBindingType) { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var ssbo : S; @@ -739,7 +739,7 @@ TEST_F(GetBindGroupLayoutTests, UnusedIndex) { wgpu::RenderPipeline pipeline = RenderPipelineFromFragmentShader(R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms0 : S; [[group(2), binding(0)]] var uniforms2 : S; @@ -786,7 +786,7 @@ TEST_F(GetBindGroupLayoutTests, Reflection) { wgpu::ShaderModule vsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct S { - [[offset(0)]] pos : vec4; + pos : vec4; }; [[group(0), binding(0)]] var uniforms : S; @@ -825,7 +825,7 @@ TEST_F(GetBindGroupLayoutTests, Reflection) { TEST_F(GetBindGroupLayoutTests, DISABLED_FromCorrectEntryPoint) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Data { - [[offset 0]] data : f32; + data : f32; }; [[binding 0, set 0]] var data0 : Data; [[binding 1, set 0]] var data1 : Data; diff --git a/src/tests/unittests/validation/RenderBundleValidationTests.cpp b/src/tests/unittests/validation/RenderBundleValidationTests.cpp index bb6af9fc25..2717a78901 100644 --- a/src/tests/unittests/validation/RenderBundleValidationTests.cpp +++ b/src/tests/unittests/validation/RenderBundleValidationTests.cpp @@ -31,7 +31,7 @@ namespace { [[location(0)]] var pos : vec2; [[block]] struct S { - [[offset(0)]] transform : mat2x2; + transform : mat2x2; }; [[group(0), binding(0)]] var uniforms : S; @@ -40,12 +40,12 @@ namespace { fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Uniforms { - [[offset(0)]] color : vec4; + color : vec4; }; [[group(1), binding(0)]] var uniforms : Uniforms; [[block]] struct Storage { - [[offset(0)]] dummy : [[stride(4)]] array; + dummy : array; }; [[group(1), binding(1)]] var ssbo : [[access(read_write)]] Storage; diff --git a/src/tests/unittests/validation/RenderPipelineValidationTests.cpp b/src/tests/unittests/validation/RenderPipelineValidationTests.cpp index 45a941c26b..b69667f466 100644 --- a/src/tests/unittests/validation/RenderPipelineValidationTests.cpp +++ b/src/tests/unittests/validation/RenderPipelineValidationTests.cpp @@ -486,7 +486,7 @@ TEST_F(RenderPipelineValidationTest, TextureViewDimensionCompatibility) { TEST_F(RenderPipelineValidationTest, StorageBufferInVertexShaderNoLayout) { wgpu::ShaderModule vsModuleWithStorageBuffer = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Dst { - [[offset(0)]] data : [[stride(4)]] array; + data : array; }; [[group(0), binding(0)]] var dst : [[access(read_write)]] Dst; [[builtin(vertex_index)]] var VertexIndex : u32; @@ -703,7 +703,7 @@ TEST_F(RenderPipelineValidationTest, DISABLED_BindingsFromCorrectEntryPoint) { wgpu::ShaderModule module = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct Uniforms { - [[offset 0]] data : vec4; + data : vec4; }; [[binding 0, set 0]] var var0 : Uniforms; [[binding 1, set 0]] var var1 : Uniforms; diff --git a/src/tests/unittests/validation/ResourceUsageTrackingTests.cpp b/src/tests/unittests/validation/ResourceUsageTrackingTests.cpp index 6b61912d6f..d380863807 100644 --- a/src/tests/unittests/validation/ResourceUsageTrackingTests.cpp +++ b/src/tests/unittests/validation/ResourceUsageTrackingTests.cpp @@ -777,7 +777,7 @@ namespace { wgpu::ShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct RBuffer { - [[offset(0)]] value : f32; + value : f32; }; [[group(0), binding(0)]] var rBuffer : [[access(read)]] RBuffer; [[stage(fragment)]] fn main() -> void { @@ -817,7 +817,7 @@ namespace { // Create a passthrough compute pipeline with a readonly buffer wgpu::ShaderModule csModule = utils::CreateShaderModuleFromWGSL(device, R"( [[block]] struct RBuffer { - [[offset(0)]] value : f32; + value : f32; }; [[group(0), binding(0)]] var rBuffer : [[access(read)]] RBuffer; [[stage(compute)]] fn main() -> void { diff --git a/src/tests/unittests/validation/StorageTextureValidationTests.cpp b/src/tests/unittests/validation/StorageTextureValidationTests.cpp index 54dd23766f..6c2e805736 100644 --- a/src/tests/unittests/validation/StorageTextureValidationTests.cpp +++ b/src/tests/unittests/validation/StorageTextureValidationTests.cpp @@ -195,7 +195,7 @@ TEST_F(StorageTextureValidationTests, ComputePipeline) { [[builtin(local_invocation_id)]] var LocalInvocationID : vec3; [[block]] struct Buf { - [[offset(0)]] data : f32; + data : f32; }; [[group(0), binding(1)]] var buf : [[access(read_write)]] Buf;