Roll third_party/webgpu-cts/ ad8abf400..631d877e7 (52 commits)

Regenerated:
 - expectations.txt
 - ts_sources.txt
 - test_list.txt
 - cache_list.txt
 - resource_files.txt
 - webtest .html files


https://chromium.googlesource.com/external/github.com/gpuweb/cts/+log/ad8abf400d8d..631d877e75e8
 - 631d87 Add `f32` matrix subtraction tests (#2279)
 - 07f15b Add f32 matrix addition tests (#2278)
 - 16f862 Add validation tests about feature 'bgra8unorm-storage' (#2275)
 - 5dc0ec Add max vertex / max attribute limit / max stride tests
 - 763d0b Upgrade gpuweb/types to 0.1.27 (#2273)
 - 0dff1a Cleanup Validate maxBindGroups
 - d0b77a Add test for maxBindGroups and maxBindingsPerBindGroup
 - 2be5a7 Add getGPUBindingCommandsMixin to limits_utils
 - 8c190e Split GPUTest into GPUTest and GPUTestBase
 - b365b1 Implement `transpose` f32 tests (#2249)
 - 977a54 Add more tests for end twice (#2251)
 - feb07c Update to use `keysOf` helper. (#2243)
 - 1dee49 [wgsl] Tests `@const` is not allowed to be used as an attribute. (#2246)
 - 432aad [wgsl] Add placement tests for @builtin. (#2248)
 - 363837 Add validation tests for unary not and binary and/or (#2247)
 - 61b6ad Update builtin parse test to not use code as URL. (#2245)
 - 6e62ce Update `align` parsing tests. (#2244)
 - 534fb6 [wgsl] Add validation tests for `break` placement (#2240)
 - 991a57 add maxTextureArrayLayers limit test (#2234)
 - c7293f add maxBufferSize limit test (#2236)
 - 07216f [wgsl] Add validation of `discard` placement. (#2239)
 - cb7d76 [wgsl] Update `static_assert` to `const_assert`. (#2237)
 - d02b86 [wgsl] Add validation tests for pipeline stage attributes. (#2233)
 - 17eafe Add limit tests for maxTextureDimension1/2/3D (#2227)
 - d9199d Avoid writable storage buffer binding aliasing (#2230)
 - 6c7083 [wgsl] Validate expressions passed to attributes. (#2229)
 - 748ec9 Add a few more constant/override tests
 - 9300ec [wgsl] Alignment attribute tests. (#2180)
 - b2f9c2 Remove tests of end pass twice in encoder_state.spec.ts (#2226)
 - 1bf9c3 Test destroying an invalid queryset and an invalid texture (#2223)
 - efcb12 Fix a few spelling errors
 - 221d30 CSS, make button colors match (#2221)
 - 992b58 Culling: Test triangle-strips, depth, and stencil results
 - ae3c5e Add tests for i32 binary scalar-vector ops (#2219)
 - 6afbd0 Implement Matrix type for numeric testing (#2204)
 - e2248b Texture utility refactoring. (#2184)
 - b62579 op,render_pipeline,alpha_to_coverage (#2202)
 - 5a17b9 Add test for u32 scalar-vector remainder (#2216)
 - bd8450 Allow bgra8unorm as storage textures (#2212)
 - 11e6fb Added sourcmaps to webgpu:api,operation,shader_module,compilation_info
 - cf980a Fix package-lock.json (#2214)
 - 19fc83 Add tests for u32 scalar-vector division (#2215)
 - 7fa1d7 Add transferControlToOffscreen cases to colorSpace ref test
 - 458788 Make labels pass new eslint rules
 - 6c8361 Add tests for u32 scalar-vector addition and subtraction (#2208)
 - 7324ba Test labels in descriptors appear on objects created.
 - a0822b Add a few more debug markers (#2197)
 - 2db4fd Adds typescript-eslint/require-await and fixes existing warnings. (#2207)
 - 73a99f Adds val,buffer,create,limit tests (#2192)
 - 454253 Add a `--coverage` flag to cmdline.ts
 - 2cff62 Add tests for binary multiplication of scalars with vectors of type u32 (#2181)
 - a7e54e Implements and updates maxColorAttachmentBytesPerSample tests (#2200)

Created with './tools/run cts roll'

Change-Id: I05e331e2c7f5e2db42f573f14c208ee13fa2fa94
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120201
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
diff --git a/DEPS b/DEPS
index 7b85c14..678fc84 100644
--- a/DEPS
+++ b/DEPS
@@ -158,7 +158,7 @@
 
   # WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
   'third_party/webgpu-cts': {
-    'url': '{chromium_git}/external/github.com/gpuweb/cts@ad8abf400d8d23fb04bdcf1f654bccb6625db7b4',
+    'url': '{chromium_git}/external/github.com/gpuweb/cts@631d877e75e85e7625606c78b33cead6def64df0',
     'condition': 'build_with_chromium',
   },
 
diff --git a/third_party/gn/webgpu-cts/cache_list.txt b/third_party/gn/webgpu-cts/cache_list.txt
index e9f83ba..593aac8 100644
--- a/third_party/gn/webgpu-cts/cache_list.txt
+++ b/third_party/gn/webgpu-cts/cache_list.txt
@@ -1,5 +1,6 @@
 data/webgpu/shader/execution/case-cache/binary/f32_arithmetic.json
 data/webgpu/shader/execution/case-cache/binary/f32_logical.json
+data/webgpu/shader/execution/case-cache/binary/f32_matrix_arithmetic.json
 data/webgpu/shader/execution/case-cache/binary/i32_arithmetic.json
 data/webgpu/shader/execution/case-cache/binary/u32_arithmetic.json
 data/webgpu/shader/execution/case-cache/abs.json
@@ -50,6 +51,7 @@
 data/webgpu/shader/execution/case-cache/step.json
 data/webgpu/shader/execution/case-cache/tan.json
 data/webgpu/shader/execution/case-cache/tanh.json
+data/webgpu/shader/execution/case-cache/transpose.json
 data/webgpu/shader/execution/case-cache/trunc.json
 data/webgpu/shader/execution/case-cache/unpack2x16float.json
 data/webgpu/shader/execution/case-cache/unpack2x16snorm.json
diff --git a/third_party/gn/webgpu-cts/test_list.txt b/third_party/gn/webgpu-cts/test_list.txt
index d4aea56..d2a3c8b 100644
--- a/third_party/gn/webgpu-cts/test_list.txt
+++ b/third_party/gn/webgpu-cts/test_list.txt
@@ -13,6 +13,7 @@
 webgpu:api,operation,adapter,requestDevice:default:
 webgpu:api,operation,adapter,requestDevice:invalid:
 webgpu:api,operation,adapter,requestDevice:features,unknown:
+webgpu:api,operation,adapter,requestDevice:features,known:feature="bgra8unorm-storage"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="depth-clip-control"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="depth32float-stencil8"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="texture-compression-bc"
@@ -21,7 +22,6 @@
 webgpu:api,operation,adapter,requestDevice:features,known:feature="timestamp-query"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="indirect-first-instance"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="shader-f16"
-webgpu:api,operation,adapter,requestDevice:features,known:feature="bgra8unorm-storage"
 webgpu:api,operation,adapter,requestDevice:features,known:feature="rg11b10ufloat-renderable"
 webgpu:api,operation,adapter,requestDevice:limits,unknown:
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxTextureDimension1D"
@@ -29,6 +29,7 @@
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxTextureDimension3D"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxTextureArrayLayers"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxBindGroups"
+webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxBindingsPerBindGroup"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxDynamicUniformBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxDynamicStorageBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxSampledTexturesPerShaderStage"
@@ -41,9 +42,12 @@
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="minUniformBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="minStorageBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxVertexBuffers"
+webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxBufferSize"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxVertexAttributes"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxVertexBufferArrayStride"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxInterStageShaderComponents"
+webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxColorAttachments"
+webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxColorAttachmentBytesPerSample"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxComputeWorkgroupStorageSize"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxComputeInvocationsPerWorkgroup"
 webgpu:api,operation,adapter,requestDevice:limits,supported:limit="maxComputeWorkgroupSizeX"
@@ -55,6 +59,7 @@
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxTextureDimension3D"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxTextureArrayLayers"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxBindGroups"
+webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxBindingsPerBindGroup"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxDynamicUniformBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxDynamicStorageBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxSampledTexturesPerShaderStage"
@@ -67,9 +72,12 @@
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="minUniformBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="minStorageBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxVertexBuffers"
+webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxBufferSize"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxVertexAttributes"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxVertexBufferArrayStride"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxInterStageShaderComponents"
+webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxColorAttachments"
+webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxColorAttachmentBytesPerSample"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxComputeWorkgroupStorageSize"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxComputeInvocationsPerWorkgroup"
 webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:limit="maxComputeWorkgroupSizeX"
@@ -81,6 +89,7 @@
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxTextureDimension3D"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxTextureArrayLayers"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxBindGroups"
+webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxBindingsPerBindGroup"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxDynamicUniformBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxDynamicStorageBuffersPerPipelineLayout"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxSampledTexturesPerShaderStage"
@@ -93,9 +102,12 @@
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="minUniformBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="minStorageBufferOffsetAlignment"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxVertexBuffers"
+webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxBufferSize"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxVertexAttributes"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxVertexBufferArrayStride"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxInterStageShaderComponents"
+webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxColorAttachments"
+webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxColorAttachmentBytesPerSample"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxComputeWorkgroupStorageSize"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxComputeInvocationsPerWorkgroup"
 webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:limit="maxComputeWorkgroupSizeX"
@@ -2257,7 +2269,26 @@
 webgpu:api,operation,device,lost:not_lost_on_gc:
 webgpu:api,operation,device,lost:lost_on_destroy:
 webgpu:api,operation,device,lost:same_object:
-webgpu:api,operation,labels:object_has_descriptor_label:
+webgpu:api,operation,labels:object_has_descriptor_label:name="createBuffer"
+webgpu:api,operation,labels:object_has_descriptor_label:name="requestDevice"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createTexture"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createSampler"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createBindGroupLayout"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createPipelineLayout"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createBindGroup"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createShaderModule"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createComputePipeline"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createRenderPipeline"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createComputePipelineAsync"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createRenderPipelineAsync"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createCommandEncoder"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createRenderBundleEncoder"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createQuerySet"
+webgpu:api,operation,labels:object_has_descriptor_label:name="beginRenderPass"
+webgpu:api,operation,labels:object_has_descriptor_label:name="beginComputePass"
+webgpu:api,operation,labels:object_has_descriptor_label:name="finish"
+webgpu:api,operation,labels:object_has_descriptor_label:name="createView"
+webgpu:api,operation,labels:wrappers_do_not_share_labels:
 webgpu:api,operation,memory_sync,buffer,multiple_buffers:rw:boundary="queue-op";readOp="b2b-copy";readContext="command-encoder";writeOp="write-buffer";writeContext="queue"
 webgpu:api,operation,memory_sync,buffer,multiple_buffers:rw:boundary="queue-op";readOp="b2b-copy";readContext="command-encoder";writeOp="b2b-copy";writeContext="command-encoder"
 webgpu:api,operation,memory_sync,buffer,multiple_buffers:rw:boundary="queue-op";readOp="b2b-copy";readContext="command-encoder";writeOp="t2b-copy";writeContext="command-encoder"
@@ -3211,24 +3242,40 @@
 webgpu:api,operation,render_pipeline,primitive_topology:unaligned_vertex_count:topology="triangle-list";indirect=false;drawCount=4
 webgpu:api,operation,render_pipeline,primitive_topology:unaligned_vertex_count:topology="triangle-list";indirect=true;drawCount=5
 webgpu:api,operation,render_pipeline,primitive_topology:unaligned_vertex_count:topology="triangle-list";indirect=true;drawCount=4
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=1;rasterizationMask=0
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=1;rasterizationMask=1
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=0
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=1
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=2
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=3
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=4
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=5
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=6
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=7
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=8
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=9
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=10
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=11
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=12
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=13
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=14
-webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=4;rasterizationMask=15
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=1;rasterizationMask=0
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=1;rasterizationMask=1
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=0
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=1
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=2
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=3
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=4
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=5
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=6
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=7
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=8
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=9
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=10
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=11
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=12
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=13
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=14
+webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=4;rasterizationMask=15
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=0
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=1
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=2
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=3
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=4
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=5
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=6
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=7
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=8
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=9
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=10
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=11
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=12
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=13
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=14
+webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:rasterizationMask=15
 webgpu:api,operation,render_pipeline,vertex_only_render_pipeline:draw_depth_and_stencil_with_vertex_only_pipeline:
 webgpu:api,operation,rendering,basic:clear:
 webgpu:api,operation,rendering,basic:fullscreen_quad:
@@ -6254,6 +6301,7 @@
 webgpu:api,operation,vertex_state,index_format:primitive_restart:indexFormat="uint32";primitiveTopology="triangle-strip"
 webgpu:api,validation,buffer,create:size:mappedAtCreation=false
 webgpu:api,validation,buffer,create:size:mappedAtCreation=true
+webgpu:api,validation,buffer,create:limit:
 webgpu:api,validation,buffer,create:usage:usage1=0;usage2=0
 webgpu:api,validation,buffer,create:usage:usage1=0;usage2=1
 webgpu:api,validation,buffer,create:usage:usage1=0;usage2=2
@@ -7198,6 +7246,111 @@
 webgpu:api,validation,capability_checks,features,texture_formats:depth_stencil_state:format="depth32float-stencil8";enable_required_feature=false
 webgpu:api,validation,capability_checks,features,texture_formats:render_bundle_encoder_descriptor_depth_stencil_format:format="depth32float-stencil8";enable_required_feature=true
 webgpu:api,validation,capability_checks,features,texture_formats:render_bundle_encoder_descriptor_depth_stencil_format:format="depth32float-stencil8";enable_required_feature=false
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineAsync,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineAsync,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineAsync,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineAsync,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineAsync,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipelineAsync,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipelineAsync,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipelineAsync,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipelineAsync,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipelineAsync,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipelineAsync,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipelineAsync,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipelineAsync,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipelineAsync,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipelineAsync,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipelineAsync,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipelineAsync,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipelineAsync,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipelineAsync,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipelineAsync,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipelineAsync,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipelineAsync,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipelineAsync,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipelineAsync,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipelineAsync,at_over:limitTest="overMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:limitTest="atDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:limitTest="underDefault"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:limitTest="betweenDefaultAndMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:limitTest="atMaximum"
+webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:limitTest="overMaximum"
 webgpu:api,validation,compute_pipeline:basic:isAsync=true
 webgpu:api,validation,compute_pipeline:basic:isAsync=false
 webgpu:api,validation,compute_pipeline:shader_module,invalid:isAsync=true
@@ -7245,6 +7398,7 @@
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"c0":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"c0":0,"c1":1}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"c0%5Cu0000":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"c9":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"1":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"c3":0}
@@ -7252,9 +7406,12 @@
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"1000":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"9999":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"1000":0,"c2":0}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"%E6%95%B0":0}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"c0":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"c0":0,"c1":1}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"c0%5Cu0000":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"c9":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"1":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"c3":0}
@@ -7262,6 +7419,8 @@
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"1000":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"9999":0}
 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"1000":0,"c2":0}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"%E6%95%B0":0}
+webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,compute_pipeline:overrides,uninitialized:isAsync=true;constants={}
 webgpu:api,validation,compute_pipeline:overrides,uninitialized:isAsync=true;constants={"c0":0,"c2":0,"c8":0}
 webgpu:api,validation,compute_pipeline:overrides,uninitialized:isAsync=true;constants={"c0":0,"c2":0,"c5":0,"c8":0}
@@ -15979,16 +16138,41 @@
 webgpu:api,validation,encoding,cmds,setBindGroup:buffer_dynamic_offsets:type="read-only-storage";encoderType="compute%20pass"
 webgpu:api,validation,encoding,cmds,setBindGroup:buffer_dynamic_offsets:type="read-only-storage";encoderType="render%20pass"
 webgpu:api,validation,encoding,cmds,setBindGroup:buffer_dynamic_offsets:type="read-only-storage";encoderType="render%20bundle"
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=0
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=1
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=2
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=3
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=4
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=5
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=6
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=7
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=8
-webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state:colorFormatCount=9
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachments:
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r8unorm"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r8uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r8sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r16uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r16sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r16float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8unorm"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r32uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r32sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="r32float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float"
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r8unorm","r32float","rgba8unorm","rgba32float","r8unorm"]
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"]
+webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,empty_color_formats:
 webgpu:api,validation,encoding,createRenderBundleEncoder:valid_texture_formats:format="r8unorm"
 webgpu:api,validation,encoding,createRenderBundleEncoder:valid_texture_formats:format="r8snorm"
 webgpu:api,validation,encoding,createRenderBundleEncoder:valid_texture_formats:format="r8uint"
@@ -16146,7 +16330,8 @@
 webgpu:api,validation,encoding,encoder_state:call_after_successful_finish:callCmd="beginRenderPass"
 webgpu:api,validation,encoding,encoder_state:call_after_successful_finish:callCmd="insertDebugMarker"
 webgpu:api,validation,encoding,encoder_state:pass_end_none:
-webgpu:api,validation,encoding,encoder_state:pass_end_twice:
+webgpu:api,validation,encoding,encoder_state:pass_end_twice,basic:
+webgpu:api,validation,encoding,encoder_state:pass_end_twice,render_pass_invalid:
 webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bind_groups_and_pipeline_layout_mismatch:encoderType="compute%20pass";call="dispatch";callWithZero=true
 webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bind_groups_and_pipeline_layout_mismatch:encoderType="compute%20pass";call="dispatch";callWithZero=false
 webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bind_groups_and_pipeline_layout_mismatch:encoderType="compute%20pass";call="dispatchIndirect";callWithZero=true
@@ -20922,6 +21107,7 @@
 webgpu:api,validation,query_set,create:count:type="occlusion"
 webgpu:api,validation,query_set,create:count:type="timestamp"
 webgpu:api,validation,query_set,destroy:twice:
+webgpu:api,validation,query_set,destroy:invalid_queryset:
 webgpu:api,validation,queue,buffer_mapped:writeBuffer:
 webgpu:api,validation,queue,buffer_mapped:copyBufferToBuffer:
 webgpu:api,validation,queue,buffer_mapped:copyBufferToTexture:
@@ -21153,8 +21339,41 @@
 webgpu:api,validation,render_pass,render_pass_descriptor:attachments,mip_level_count:mipLevelCount=1;baseMipLevel=0
 webgpu:api,validation,render_pass,render_pass_descriptor:attachments,mip_level_count:mipLevelCount=1;baseMipLevel=3
 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,empty:
-webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,out_of_bounds:colorAttachmentsCount=8
-webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,out_of_bounds:colorAttachmentsCount=9
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachments:colorAttachmentsCount=8
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachments:colorAttachmentsCount=9
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r8unorm"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r8uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r8sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r16uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r16sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r16float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8unorm"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg8sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r32uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r32sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="r32float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg16float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float"
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r8unorm","r32float","rgba8unorm","rgba32float","r8unorm"]
+webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"]
 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,non_multisampled:
 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,sample_count:
 webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,sample_count:
@@ -22460,10 +22679,6 @@
 webgpu:api,validation,render_pipeline,depth_stencil_state:stencil_write:isAsync=true;format="depth32float-stencil8";faceAndOpType="backPassOp";op="decrement-wrap"
 webgpu:api,validation,render_pipeline,fragment_state:color_target_exists:isAsync=false
 webgpu:api,validation,render_pipeline,fragment_state:color_target_exists:isAsync=true
-webgpu:api,validation,render_pipeline,fragment_state:max_color_attachments_limit:isAsync=false;targetsLength=8
-webgpu:api,validation,render_pipeline,fragment_state:max_color_attachments_limit:isAsync=false;targetsLength=9
-webgpu:api,validation,render_pipeline,fragment_state:max_color_attachments_limit:isAsync=true;targetsLength=8
-webgpu:api,validation,render_pipeline,fragment_state:max_color_attachments_limit:isAsync=true;targetsLength=9
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=false;format="r8unorm"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=false;format="r8snorm"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=false;format="r8uint"
@@ -22652,6 +22867,43 @@
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=true;format="astc-12x10-unorm-srgb"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=true;format="astc-12x12-unorm"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:isAsync=true;format="astc-12x12-unorm-srgb"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachments:isAsync=false;targetsLength=8
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachments:isAsync=false;targetsLength=9
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachments:isAsync=true;targetsLength=8
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachments:isAsync=true;targetsLength=9
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r8unorm"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r8uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r8sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r16uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r16sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r16float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg8unorm"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg8uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg8sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r32uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r32sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="r32float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg16uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg16sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg16float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float"
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r8unorm","r32float","rgba8unorm","rgba32float","r8unorm"]
+webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"]
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_filterable:isAsync=false;format="r8unorm"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_filterable:isAsync=false;format="r8uint"
 webgpu:api,validation,render_pipeline,fragment_state:targets_format_filterable:isAsync=false;format="r8sint"
@@ -22933,39 +23185,51 @@
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"x":1,"y":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"1":1,"1000":1,"x":1,"y":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"x%5Cu0000":1,"y":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"xxx":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"1":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"2":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"z":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"w":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"1":1,"z":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"%E6%95%B0":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"x":1,"y":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"1":1,"1000":1,"x":1,"y":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"x%5Cu0000":1,"y":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"xxx":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"1":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"2":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"z":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"w":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"1":1,"z":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"%E6%95%B0":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"r":1,"g":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"1":1,"1000":1,"r":1,"g":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"r%5Cu0000":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"xxx":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"1":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"2":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"b":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"a":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"1":1,"b":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"%E6%95%B0":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"r":1,"g":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"1":1,"1000":1,"r":1,"g":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"r%5Cu0000":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"xxx":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"1":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"2":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"b":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"a":1}
 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"1":1,"b":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"%E6%95%B0":1}
+webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"s%C3%A9quen%C3%A7age":0}
 webgpu:api,validation,render_pipeline,overrides:uninitialized,vertex:isAsync=true;vertexConstants={}
 webgpu:api,validation,render_pipeline,overrides:uninitialized,vertex:isAsync=true;vertexConstants={"x":1,"y":1}
 webgpu:api,validation,render_pipeline,overrides:uninitialized,vertex:isAsync=true;vertexConstants={"x":1,"z":1}
@@ -23696,7 +23960,6 @@
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="uniform";usage1="indirect"
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="uniform";usage1="indexedIndirect"
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="storage";usage1="uniform"
-webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="storage";usage1="storage"
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="storage";usage1="read-only-storage"
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="storage";usage1="vertex"
 webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:usage0="storage";usage1="index"
@@ -26102,8 +26365,15 @@
 webgpu:api,validation,state,device_lost,destroy:queue,copyExternalImageToTexture,canvas:canvasType="offscreen";contextType="webgl2"
 webgpu:api,validation,state,device_lost,destroy:queue,copyExternalImageToTexture,canvas:canvasType="offscreen";contextType="webgpu"
 webgpu:api,validation,state,device_lost,destroy:queue,copyExternalImageToTexture,imageBitmap:
+webgpu:api,validation,texture,bgra8unorm_storage:create_texture:
+webgpu:api,validation,texture,bgra8unorm_storage:create_bind_group_layout:
+webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_with_bgra8unorm_storage:shaderType="fragment"
+webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_with_bgra8unorm_storage:shaderType="compute"
+webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_without_bgra8unorm_storage:shaderType="fragment"
+webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_without_bgra8unorm_storage:shaderType="compute"
 webgpu:api,validation,texture,destroy:base:
 webgpu:api,validation,texture,destroy:twice:
+webgpu:api,validation,texture,destroy:invalid_texture:
 webgpu:api,validation,texture,destroy:submit_a_destroyed_texture_as_attachment:depthStencilTextureAspect="all";colorTextureState="valid";depthStencilTextureState="valid"
 webgpu:api,validation,texture,destroy:submit_a_destroyed_texture_as_attachment:depthStencilTextureAspect="all";colorTextureState="valid";depthStencilTextureState="destroyedBeforeEncode"
 webgpu:api,validation,texture,destroy:submit_a_destroyed_texture_as_attachment:depthStencilTextureAspect="all";colorTextureState="valid";depthStencilTextureState="destroyedAfterEncode"
@@ -26577,6 +26847,78 @@
 webgpu:shader,execution,expression,binary,f32_logical:greater_equals:inputSource="storage_rw";vectorize=2
 webgpu:shader,execution,expression,binary,f32_logical:greater_equals:inputSource="storage_rw";vectorize=3
 webgpu:shader,execution,expression,binary,f32_logical:greater_equals:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="const";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="uniform";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_r";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:addition:inputSource="storage_rw";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="const";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="uniform";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_r";cols=4;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=2;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=2;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=2;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=3;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=3;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=3;rows=4
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=4;rows=2
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=4;rows=3
+webgpu:shader,execution,expression,binary,f32_matrix_arithmetic:subtraction:inputSource="storage_rw";cols=4;rows=4
 webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="const";vectorize="_undef_"
 webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="const";vectorize=2
 webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="const";vectorize=3
@@ -26657,6 +26999,126 @@
 webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=2
 webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=3
 webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
 webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="const";vectorize="_undef_"
 webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="const";vectorize=2
 webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="const";vectorize=3
@@ -26737,6 +27199,126 @@
 webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_rw";vectorize=2
 webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_rw";vectorize=3
 webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="const";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="uniform";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_r";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:inputSource="storage_rw";vectorize_rhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="const";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="uniform";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_r";vectorize_lhs=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:inputSource="storage_rw";vectorize_lhs=4
 webgpu:shader,execution,expression,call,builtin,abs:abstract_int:inputSource="const";vectorize="_undef_"
 webgpu:shader,execution,expression,call,builtin,abs:abstract_int:inputSource="const";vectorize=2
 webgpu:shader,execution,expression,call,builtin,abs:abstract_int:inputSource="const";vectorize=3
@@ -30231,114 +30813,114 @@
 webgpu:shader,execution,expression,call,builtin,textureStore:store_3d_coords:format="rgba32uint"
 webgpu:shader,execution,expression,call,builtin,textureStore:store_3d_coords:format="rgba32sint"
 webgpu:shader,execution,expression,call,builtin,textureStore:store_3d_coords:format="rgba32float"
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";rows=4;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=2;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=2;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=2;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=3;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=3;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=3;cols=4
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=4;cols=2
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=4;cols=3
-webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";rows=4;cols=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="const";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="uniform";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_r";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:inputSource="storage_rw";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="const";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="uniform";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_r";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f32:inputSource="storage_rw";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="const";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="uniform";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_r";cols=4;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=2;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=2;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=2;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=3;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=3;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=3;rows=4
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=4;rows=2
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=4;rows=3
+webgpu:shader,execution,expression,call,builtin,transpose:f16:inputSource="storage_rw";cols=4;rows=4
 webgpu:shader,execution,expression,call,builtin,trunc:abstract_float:inputSource="const";vectorize="_undef_"
 webgpu:shader,execution,expression,call,builtin,trunc:abstract_float:inputSource="const";vectorize=2
 webgpu:shader,execution,expression,call,builtin,trunc:abstract_float:inputSource="const";vectorize=3
@@ -32888,290 +33470,379 @@
 webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";workgroupSize=[1,1,1];batch__=27
 webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";workgroupSize=[1,1,1];batch__=28
 webgpu:shader,execution,zero_init:compute,zero_init:storageClass="function";workgroupSize=[1,1,1];batch__=29
-webgpu:shader,validation,parse,align:align_parsing:align=""
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(1)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4i)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4u)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(0x4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4,)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(u_val)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(i_val)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(i_val%20%2B%204%20-%206)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(1073741824)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40%5Ctalign%5Ct(4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40%2F%5Ecomment%5E%2Falign%2F%5Ecomment%5E%2F(4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40malign(4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align()"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align%204)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4,%202)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(3)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(f_val)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(1.0)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4f)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(4h)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(0)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(-4)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(2147483646)"
-webgpu:shader,validation,parse,align:align_parsing:align="%40align(2147483648)"
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=1;type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=2;type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align="alignment";type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="storage";align=32;type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=1;type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=2;type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align="alignment";type={"name":"S","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"i32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"u32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"f32","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"f16","storage":2,"uniform":2}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
-webgpu:shader,validation,parse,align:align_required_alignment:address_space="uniform";align=32;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="true_literal";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="true_literal";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="not_false";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="not_false";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="const_eq_literal_int";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="const_eq_literal_int";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="const_eq_literal_float";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="const_eq_literal_float";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="binary_op_eq_const";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="binary_op_eq_const";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="any";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="any";scope="function"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="min_max";scope="module"
+webgpu:shader,validation,const_assert,const_assert:constant_expression:case="min_max";scope="function"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="module";stage="constant"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="module";stage="override"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="module";stage="runtime"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="function";stage="constant"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="function";stage="override"
+webgpu:shader,validation,const_assert,const_assert:evaluation_stage:scope="function";stage="runtime"
+webgpu:shader,validation,parse,align:parsing:align="blank"
+webgpu:shader,validation,parse,align:parsing:align="one"
+webgpu:shader,validation,parse,align:parsing:align="four_a"
+webgpu:shader,validation,parse,align:parsing:align="four_i"
+webgpu:shader,validation,parse,align:parsing:align="four_u"
+webgpu:shader,validation,parse,align:parsing:align="four_hex"
+webgpu:shader,validation,parse,align:parsing:align="trailing_comma"
+webgpu:shader,validation,parse,align:parsing:align="const_u"
+webgpu:shader,validation,parse,align:parsing:align="const_i"
+webgpu:shader,validation,parse,align:parsing:align="const_expr"
+webgpu:shader,validation,parse,align:parsing:align="large"
+webgpu:shader,validation,parse,align:parsing:align="tabs"
+webgpu:shader,validation,parse,align:parsing:align="comment"
+webgpu:shader,validation,parse,align:parsing:align="misspelling"
+webgpu:shader,validation,parse,align:parsing:align="empty"
+webgpu:shader,validation,parse,align:parsing:align="missing_left_paren"
+webgpu:shader,validation,parse,align:parsing:align="missing_right_paren"
+webgpu:shader,validation,parse,align:parsing:align="multiple_values"
+webgpu:shader,validation,parse,align:parsing:align="non_power_two"
+webgpu:shader,validation,parse,align:parsing:align="const_f"
+webgpu:shader,validation,parse,align:parsing:align="one_f"
+webgpu:shader,validation,parse,align:parsing:align="four_f"
+webgpu:shader,validation,parse,align:parsing:align="four_h"
+webgpu:shader,validation,parse,align:parsing:align="no_params"
+webgpu:shader,validation,parse,align:parsing:align="zero_a"
+webgpu:shader,validation,parse,align:parsing:align="negative"
+webgpu:shader,validation,parse,align:parsing:align="large_no_power_two"
+webgpu:shader,validation,parse,align:parsing:align="larger_than_max_i32"
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=1;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=2;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align="alignment";type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="storage";align=32;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=1;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=2;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align="alignment";type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"i32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"u32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"f32","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"f16","storage":2,"uniform":2}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"atomic%3Ci32%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec2%3Ci32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec3%3Cu32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"vec4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x2%3Cf32%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x2%3Cf16%3E","storage":4,"uniform":4}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x3%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x3%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x4%3Cf32%3E","storage":16,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat2x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat3x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"mat4x4%3Cf16%3E","storage":8,"uniform":8}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"array%3Cvec2%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"array%3Cvec4%3Ci32%3E,%202%3E","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:required_alignment:address_space="uniform";align=32;type={"name":"S","storage":8,"uniform":16}
+webgpu:shader,validation,parse,align:placement:scope="private-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="storage-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="struct-member";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="fn-decl";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="fn-param";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="fn-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="fn-return";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="while-stmt";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:placement:scope="_undef_";attribute={"private-var":false,"storage-var":false,"struct-member":true,"fn-decl":false,"fn-param":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,align:multi_align:multi=true
+webgpu:shader,validation,parse,align:multi_align:multi=false
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="val";attribute="workgroup_size"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="expr";attribute="workgroup_size"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="override";attribute="workgroup_size"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="user_func";attribute="workgroup_size"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="const_func";attribute="workgroup_size"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="align"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="binding"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="group"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="id"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="location"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="size"
+webgpu:shader,validation,parse,attribute:expressions:value="const";attribute="workgroup_size"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_literal_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_expr_bool_expr"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_literal_bool_expr"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_expr_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_literal_int_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_int_literal_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_bool_expr_int_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="and_int_literal_bool_expr"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_literal_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_expr_bool_expr"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_literal_bool_expr"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_expr_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_literal_int_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_int_literal_bool_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_bool_expr_int_literal"
+webgpu:shader,validation,parse,binary_ops:all:stmt="or_int_literal_bool_expr"
 webgpu:shader,validation,parse,blankspace:null_characters:contains_null=true;placement="comment"
 webgpu:shader,validation,parse,blankspace:null_characters:contains_null=true;placement="delimiter"
 webgpu:shader,validation,parse,blankspace:null_characters:contains_null=true;placement="eol"
@@ -33189,19 +33860,43 @@
 webgpu:shader,validation,parse,blankspace:blankspace:blankspace=["%E2%80%8F","right_to_left_mark"]
 webgpu:shader,validation,parse,blankspace:blankspace:blankspace=["%E2%80%A8","line_separator"]
 webgpu:shader,validation,parse,blankspace:blankspace:blankspace=["%E2%80%A9","paragraph_separator"]
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(position)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(position,)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40%20%5Cn%20builtin(position)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40%2F%5E%20comment%20%5E%2Fbuiltin%2F%5E%20comment%20%5E%2F%5Cn%5Cn(%5Ct%2F%5Ecomment%5E%2Fposition%2F%5Ecomment%5E%2F)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40abuiltin(position)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin()"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin%20position"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin%20position)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(position"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(position,%20frag_depth)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(identifier)"
-webgpu:shader,validation,parse,builtin:parse:builtin="%40builtin(2)"
+webgpu:shader,validation,parse,break:placement:stmt="loop_break"
+webgpu:shader,validation,parse,break:placement:stmt="loop_if_break"
+webgpu:shader,validation,parse,break:placement:stmt="continuing_break_if"
+webgpu:shader,validation,parse,break:placement:stmt="while_break"
+webgpu:shader,validation,parse,break:placement:stmt="while_if_break"
+webgpu:shader,validation,parse,break:placement:stmt="for_break"
+webgpu:shader,validation,parse,break:placement:stmt="for_if_break"
+webgpu:shader,validation,parse,break:placement:stmt="switch_case_break"
+webgpu:shader,validation,parse,break:placement:stmt="switch_case_if_break"
+webgpu:shader,validation,parse,break:placement:stmt="break"
+webgpu:shader,validation,parse,break:placement:stmt="return_break"
+webgpu:shader,validation,parse,break:placement:stmt="if_break"
+webgpu:shader,validation,parse,break:placement:stmt="continuing_break"
+webgpu:shader,validation,parse,break:placement:stmt="continuing_if_break"
+webgpu:shader,validation,parse,break:placement:stmt="switch_break"
+webgpu:shader,validation,parse,builtin:parse:builtin="pos"
+webgpu:shader,validation,parse,builtin:parse:builtin="trailing_comma"
+webgpu:shader,validation,parse,builtin:parse:builtin="newline_in_attr"
+webgpu:shader,validation,parse,builtin:parse:builtin="whitespace_in_attr"
+webgpu:shader,validation,parse,builtin:parse:builtin="invalid_name"
+webgpu:shader,validation,parse,builtin:parse:builtin="no_params"
+webgpu:shader,validation,parse,builtin:parse:builtin="missing_param"
+webgpu:shader,validation,parse,builtin:parse:builtin="missing_parens"
+webgpu:shader,validation,parse,builtin:parse:builtin="missing_lparen"
+webgpu:shader,validation,parse,builtin:parse:builtin="missing_rparen"
+webgpu:shader,validation,parse,builtin:parse:builtin="multiple_params"
+webgpu:shader,validation,parse,builtin:parse:builtin="ident_param"
+webgpu:shader,validation,parse,builtin:parse:builtin="number_param"
+webgpu:shader,validation,parse,builtin:placement:scope="private-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="storage-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="struct-member";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="non-ep-param";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="non-ep-ret";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="fn-decl";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="fn-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="while-stmt";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
+webgpu:shader,validation,parse,builtin:placement:scope="_undef_";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}
 webgpu:shader,validation,parse,comments:comments:
 webgpu:shader,validation,parse,comments:line_comment_eof:
 webgpu:shader,validation,parse,comments:line_comment_terminators:blankspace=["%20","space"]
@@ -33216,6 +33911,32 @@
 webgpu:shader,validation,parse,comments:line_comment_terminators:blankspace=["%E2%80%A9","paragraph_separator"]
 webgpu:shader,validation,parse,comments:unterminated_block_comment:terminated=true
 webgpu:shader,validation,parse,comments:unterminated_block_comment:terminated=false
+webgpu:shader,validation,parse,const:placement:scope="private-var"
+webgpu:shader,validation,parse,const:placement:scope="storage-var"
+webgpu:shader,validation,parse,const:placement:scope="struct-member"
+webgpu:shader,validation,parse,const:placement:scope="fn-decl"
+webgpu:shader,validation,parse,const:placement:scope="fn-param"
+webgpu:shader,validation,parse,const:placement:scope="fn-var"
+webgpu:shader,validation,parse,const:placement:scope="fn-return"
+webgpu:shader,validation,parse,const:placement:scope="while-stmt"
+webgpu:shader,validation,parse,const:placement:scope="_undef_"
+webgpu:shader,validation,parse,const_assert:parse:case="no_parentheses"
+webgpu:shader,validation,parse,const_assert:parse:case="left_parenthesis_only"
+webgpu:shader,validation,parse,const_assert:parse:case="right_parenthesis_only"
+webgpu:shader,validation,parse,const_assert:parse:case="both_parentheses"
+webgpu:shader,validation,parse,const_assert:parse:case="condition_on_newline"
+webgpu:shader,validation,parse,const_assert:parse:case="multiline_with_parentheses"
+webgpu:shader,validation,parse,const_assert:parse:case="invalid_expression"
+webgpu:shader,validation,parse,const_assert:parse:case="no_condition_no_parentheses"
+webgpu:shader,validation,parse,const_assert:parse:case="no_condition_with_parentheses"
+webgpu:shader,validation,parse,const_assert:parse:case="not_a_boolean"
+webgpu:shader,validation,parse,discard:placement:place="compute"
+webgpu:shader,validation,parse,discard:placement:place="vertex"
+webgpu:shader,validation,parse,discard:placement:place="fragment"
+webgpu:shader,validation,parse,discard:placement:place="module"
+webgpu:shader,validation,parse,discard:placement:place="subfrag"
+webgpu:shader,validation,parse,discard:placement:place="subvert"
+webgpu:shader,validation,parse,discard:placement:place="subcomp"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="foo"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="Foo"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="FOO"
@@ -33289,6 +34010,7 @@
 webgpu:shader,validation,parse,identifiers:identifiers:ident="break"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="case"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="const"
+webgpu:shader,validation,parse,identifiers:identifiers:ident="const_assert"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="continue"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="continuing"
 webgpu:shader,validation,parse,identifiers:identifiers:ident="default"
@@ -33687,6 +34409,61 @@
 webgpu:shader,validation,parse,literal:f16:val="1.1e%2Bh"
 webgpu:shader,validation,parse,literal:f16:val="1.0e%2B999999h"
 webgpu:shader,validation,parse,literal:f16:val="0x1.0p%2B999999h"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val=""
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40%5Ctvertex"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40%2F%5Ecomment%5E%2Fvertex"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40mvertex"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40vertex()"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40vertex%20)"
+webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:val="%40vertex("
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val=""
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40%5Ctfragment"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40%2F%5Ecomment%5E%2Ffragment"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40mfragment"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40fragment()"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40fragment%20)"
+webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:val="%40fragment("
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val=""
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40%5Ctcompute"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40%2F%5Ecomment%5E%2Fcompute"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40mcompute"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40compute()"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40compute%20)"
+webgpu:shader,validation,parse,pipeline_stage:compute_parsing:val="%40compute("
+webgpu:shader,validation,parse,pipeline_stage:multiple_entry_points:
+webgpu:shader,validation,parse,pipeline_stage:duplicate_compute_on_function:dupe=""
+webgpu:shader,validation,parse,pipeline_stage:duplicate_compute_on_function:dupe="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:duplicate_fragment_on_function:dupe=""
+webgpu:shader,validation,parse,pipeline_stage:duplicate_fragment_on_function:dupe="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:duplicate_vertex_on_function:dupe=""
+webgpu:shader,validation,parse,pipeline_stage:duplicate_vertex_on_function:dupe="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="private-var";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="private-var";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="private-var";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="storage-var";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="storage-var";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="storage-var";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="struct-member";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="struct-member";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="struct-member";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-param";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-param";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-param";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-var";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-var";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-var";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-return";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-return";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="fn-return";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="while-stmt";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="while-stmt";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="while-stmt";attr="%40vertex"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="_undef_";attr="%40compute"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="_undef_";attr="%40fragment"
+webgpu:shader,validation,parse,pipeline_stage:placement:scope="_undef_";attr="%40vertex"
 webgpu:shader,validation,parse,semicolon:module_scope_single:
 webgpu:shader,validation,parse,semicolon:module_scope_multiple:
 webgpu:shader,validation,parse,semicolon:after_enable:
@@ -33703,7 +34480,7 @@
 webgpu:shader,validation,parse,semicolon:after_let_decl:
 webgpu:shader,validation,parse,semicolon:after_discard:
 webgpu:shader,validation,parse,semicolon:after_assignment:
-webgpu:shader,validation,parse,semicolon:after_fn_static_assert:
+webgpu:shader,validation,parse,semicolon:after_fn_const_assert:
 webgpu:shader,validation,parse,semicolon:function_body_single:
 webgpu:shader,validation,parse,semicolon:function_body_multiple:
 webgpu:shader,validation,parse,semicolon:compound_statement_single:
@@ -33729,16 +34506,12 @@
 webgpu:shader,validation,parse,source:valid_source:
 webgpu:shader,validation,parse,source:empty:
 webgpu:shader,validation,parse,source:invalid_source:
-webgpu:shader,validation,parse,static_assert:parse:case="no_parentheses"
-webgpu:shader,validation,parse,static_assert:parse:case="left_parenthesis_only"
-webgpu:shader,validation,parse,static_assert:parse:case="right_parenthesis_only"
-webgpu:shader,validation,parse,static_assert:parse:case="both_parentheses"
-webgpu:shader,validation,parse,static_assert:parse:case="condition_on_newline"
-webgpu:shader,validation,parse,static_assert:parse:case="multiline_with_parentheses"
-webgpu:shader,validation,parse,static_assert:parse:case="invalid_expression"
-webgpu:shader,validation,parse,static_assert:parse:case="no_condition_no_parentheses"
-webgpu:shader,validation,parse,static_assert:parse:case="no_condition_with_parentheses"
-webgpu:shader,validation,parse,static_assert:parse:case="not_a_boolean"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_bool_literal"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_bool_expr"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_not_bool_literal"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_not_bool_expr"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_int_literal"
+webgpu:shader,validation,parse,unary_ops:all:stmt="not_int_expr"
 webgpu:shader,validation,parse,var_and_let:initializer_type:variableOrConstant="var"
 webgpu:shader,validation,parse,var_and_let:initializer_type:variableOrConstant="let"
 webgpu:shader,validation,resource_interface,bindings:single_entry_point:stage="vertex";a_kind="storage";b_kind="texture_3d";a_group=0;b_group=0;a_binding=0;b_binding=0;usage="direct"
@@ -37201,26 +37974,6 @@
 webgpu:shader,validation,shader_io,locations:duplicates:first="ra";second="s1b"
 webgpu:shader,validation,shader_io,locations:duplicates:first="ra";second="s2b"
 webgpu:shader,validation,shader_io,locations:duplicates:first="ra";second="rb"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="true_literal";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="true_literal";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="not_false";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="not_false";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="const_eq_literal_int";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="const_eq_literal_int";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="const_eq_literal_float";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="const_eq_literal_float";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="binary_op_eq_const";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="binary_op_eq_const";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="any";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="any";scope="function"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="min_max";scope="module"
-webgpu:shader,validation,static_assert,static_assert:constant_expression:case="min_max";scope="function"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="module";stage="constant"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="module";stage="override"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="module";stage="runtime"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="function";stage="constant"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="function";stage="override"
-webgpu:shader,validation,static_assert,static_assert:evaluation_stage:scope="function";stage="runtime"
 webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="r8unorm"
 webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rg8unorm"
 webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rgba8unorm"
diff --git a/third_party/gn/webgpu-cts/ts_sources.txt b/third_party/gn/webgpu-cts/ts_sources.txt
index d880fd1..b29e49b 100644
--- a/third_party/gn/webgpu-cts/ts_sources.txt
+++ b/third_party/gn/webgpu-cts/ts_sources.txt
@@ -78,6 +78,7 @@
 src/webgpu/util/texture/texel_data.ts
 src/webgpu/util/texture/texel_view.ts
 src/webgpu/util/texture.ts
+src/webgpu/util/texture/texture_ok.ts
 src/webgpu/gpu_test.ts
 src/stress/compute/compute_pass.spec.ts
 src/stress/device/bind_group_allocation.spec.ts
@@ -170,11 +171,9 @@
 src/webgpu/api/operation/render_pass/resolve.spec.ts
 src/webgpu/api/operation/render_pass/storeOp.spec.ts
 src/webgpu/api/operation/render_pass/storeop2.spec.ts
-src/webgpu/api/operation/render_pipeline/alpha_to_coverage.spec.ts
 src/webgpu/api/operation/render_pipeline/culling_tests.spec.ts
 src/webgpu/api/operation/render_pipeline/overrides.spec.ts
 src/webgpu/util/shader.ts
-src/webgpu/util/texture/texture_ok.ts
 src/webgpu/api/operation/render_pipeline/pipeline_output_targets.spec.ts
 src/webgpu/api/operation/render_pipeline/primitive_topology.spec.ts
 src/webgpu/api/operation/render_pipeline/sample_mask.spec.ts
@@ -222,6 +221,17 @@
 src/webgpu/api/validation/capability_checks/features/query_types.spec.ts
 src/webgpu/util/create_elements.ts
 src/webgpu/api/validation/capability_checks/features/texture_formats.spec.ts
+src/webgpu/api/validation/capability_checks/limits/limit_utils.ts
+src/webgpu/api/validation/capability_checks/limits/maxBindGroups.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxBindingsPerBindGroup.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxBufferSize.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxTextureArrayLayers.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxTextureDimension1D.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxTextureDimension2D.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxTextureDimension3D.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxVertexAttributes.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxVertexBufferArrayStride.spec.ts
+src/webgpu/api/validation/capability_checks/limits/maxVertexBuffers.spec.ts
 src/webgpu/api/validation/encoding/beginComputePass.spec.ts
 src/webgpu/api/validation/encoding/beginRenderPass.spec.ts
 src/webgpu/api/validation/encoding/createRenderBundleEncoder.spec.ts
@@ -285,6 +295,7 @@
 src/webgpu/api/validation/shader_module/entry_point.spec.ts
 src/webgpu/api/validation/shader_module/overrides.spec.ts
 src/webgpu/api/validation/state/device_lost/destroy.spec.ts
+src/webgpu/api/validation/texture/bgra8unorm_storage.spec.ts
 src/webgpu/api/validation/texture/destroy.spec.ts
 src/webgpu/api/validation/texture/rg11b10ufloat_renderable.spec.ts
 src/webgpu/idl/exposed.html.ts
@@ -302,6 +313,7 @@
 src/webgpu/shader/execution/expression/binary/bool_logical.spec.ts
 src/webgpu/shader/execution/expression/binary/f32_arithmetic.spec.ts
 src/webgpu/shader/execution/expression/binary/f32_logical.spec.ts
+src/webgpu/shader/execution/expression/binary/f32_matrix_arithmetic.spec.ts
 src/webgpu/shader/execution/expression/binary/i32_arithmetic.spec.ts
 src/webgpu/shader/execution/expression/binary/u32_arithmetic.spec.ts
 src/webgpu/shader/execution/expression/call/builtin/builtin.ts
@@ -427,15 +439,23 @@
 src/webgpu/shader/execution/shader_io/compute_builtins.spec.ts
 src/webgpu/shader/execution/shader_io/shared_structs.spec.ts
 src/webgpu/shader/validation/shader_validation_test.ts
+src/webgpu/shader/validation/const_assert/const_assert.spec.ts
 src/webgpu/shader/validation/parse/align.spec.ts
+src/webgpu/shader/validation/parse/attribute.spec.ts
+src/webgpu/shader/validation/parse/binary_ops.spec.ts
 src/webgpu/shader/validation/parse/blankspace.spec.ts
+src/webgpu/shader/validation/parse/break.spec.ts
 src/webgpu/shader/validation/parse/builtin.spec.ts
 src/webgpu/shader/validation/parse/comments.spec.ts
+src/webgpu/shader/validation/parse/const.spec.ts
+src/webgpu/shader/validation/parse/const_assert.spec.ts
+src/webgpu/shader/validation/parse/discard.spec.ts
 src/webgpu/shader/validation/parse/identifiers.spec.ts
 src/webgpu/shader/validation/parse/literal.spec.ts
+src/webgpu/shader/validation/parse/pipeline_stage.spec.ts
 src/webgpu/shader/validation/parse/semicolon.spec.ts
 src/webgpu/shader/validation/parse/source.spec.ts
-src/webgpu/shader/validation/parse/static_assert.spec.ts
+src/webgpu/shader/validation/parse/unary_ops.spec.ts
 src/webgpu/shader/validation/parse/var_and_let.spec.ts
 src/webgpu/shader/validation/resource_interface/util.ts
 src/webgpu/shader/validation/resource_interface/bindings.spec.ts
@@ -445,7 +465,6 @@
 src/webgpu/shader/validation/shader_io/interpolate.spec.ts
 src/webgpu/shader/validation/shader_io/invariant.spec.ts
 src/webgpu/shader/validation/shader_io/locations.spec.ts
-src/webgpu/shader/validation/static_assert/static_assert.spec.ts
 src/webgpu/util/color_space_conversion.ts
 src/webgpu/util/copy_to_texture.ts
 src/webgpu/util/texture/texel_data.spec.ts
diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt
index 47b64fa..73a2bca 100644
--- a/webgpu-cts/expectations.txt
+++ b/webgpu-cts/expectations.txt
@@ -62,7 +62,7 @@
 # results: [ Failure RetryOnFailure Skip Slow ]
 # END TAG HEADER
 
-# Last rolled: 2023-01-25 02:46:43PM
+# Last rolled: 2023-02-17 06:07:07AM
 
 ################################################################################
 # copyToTexture failures on Linux
@@ -76,14 +76,14 @@
 # Skipped instead of just Crash because of the number of failures
 # KEEP
 ################################################################################
+crbug.com/1344876 [ mac webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Skip ]
+crbug.com/1344876 [ webgpu-adapter-swiftshader win ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Skip ]
 crbug.com/1344876 [ mac webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:* [ Skip ]
 crbug.com/1344876 [ webgpu-adapter-swiftshader win ] webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:* [ Skip ]
 crbug.com/1344876 [ mac webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:* [ Skip ]
 crbug.com/1344876 [ webgpu-adapter-swiftshader win ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:* [ Skip ]
 crbug.com/1344876 [ mac webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:* [ Skip ]
 crbug.com/1344876 [ webgpu-adapter-swiftshader win ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:* [ Skip ]
-crbug.com/1344876 [ mac webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Skip ]
-crbug.com/1344876 [ webgpu-adapter-swiftshader win ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Skip ]
 
 ################################################################################
 # copyToTexture failures with incorrect values on Mac Intel
@@ -110,24 +110,6 @@
 crbug.com/1406064 [ intel-gen-9 win10 ] webgpu:api,validation,error_scope:current_scope:errorFilter="validation";stackDepth=100000 [ Slow ]
 
 ################################################################################
-# entry_point_name_must_match failures
-################################################################################
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:fragment:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:fragment:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:fragment:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:fragment:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:vertex:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:vertex:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:vertex:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:vertex:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:compute:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:compute:isAsync=false;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:compute:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000" [ Failure ]
-crbug.com/dawn/1345 webgpu:api,validation,shader_module,entry_point:compute:isAsync=true;shaderModuleEntryPoint="main";stageEntryPoint="main%5Cu0000a" [ Failure ]
-
-################################################################################
 # external_texture failures
 # KEEP
 ################################################################################
@@ -173,38 +155,8 @@
 crbug.com/dawn/1125 [ monterey ] webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:format="depth32float-stencil8";unclippedDepth=false;writeDepth=true;multisampled=true [ Failure ]
 
 ################################################################################
-# Some tests are slow on code-coverage builders. These expectations prevent
-# tests from timing out before they generate full code coverage data.
-# Note, it's generally not important to suppress tests that are _failing_ on
-# code-coverage, because even failing tests provide coverage (though any
-# failures should hopefully be the same as other builders anyway).
-# KEEP
-################################################################################
-crbug.com/1399354 [ clang-coverage ] webgpu:shader,execution,expression,binary,i32_arithmetic:* [ Slow ]
-crbug.com/1399354 [ clang-coverage ] webgpu:shader,execution,expression,binary,f32_arithmetic:addition:* [ Slow ]
-crbug.com/1399354 [ clang-coverage ] webgpu:shader,execution,expression,binary,f32_arithmetic:division:* [ Slow ]
-crbug.com/1399354 [ clang-coverage ] webgpu:shader,execution,expression,binary,f32_arithmetic:multiplication:* [ Slow ]
-crbug.com/1399354 [ clang-coverage ] webgpu:shader,execution,expression,binary,f32_arithmetic:subtraction:* [ Slow ]
-# TODO(crbug.com/dawn/1799): Remove platform filter here when conflicting expectations are removed
-crbug.com/1399354 [ clang-coverage linux ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:* [ Slow ]
-crbug.com/1399354 [ clang-coverage mac ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:* [ Slow ]
-crbug.com/1399354 [ clang-coverage win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="const";* [ Slow ]
-
-################################################################################
 # shader execution failures
 ################################################################################
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_r";vectorize="_undef_" [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_r";vectorize=2 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_r";vectorize=3 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_r";vectorize=4 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_rw";vectorize="_undef_" [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_rw";vectorize=2 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_rw";vectorize=3 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_rw";vectorize=4 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize="_undef_" [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=2 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=3 [ Failure ]
-crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=4 [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize="_undef_" [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize=2 [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize=3 [ Failure ]
@@ -316,10 +268,8 @@
 # shader validation failures
 ################################################################################
 crbug.com/tint/0000 webgpu:shader,validation,parse,blankspace:null_characters:contains_null=true;placement="comment" [ Failure ]
-crbug.com/tint/0000 webgpu:shader,validation,parse,blankspace:null_characters:contains_null=true;placement="eol" [ Failure ]
 crbug.com/tint/1771 [ ubuntu ] webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,* [ Failure ]
 crbug.com/tint/1771 [ win10 ] webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,* [ Failure ]
-crbug.com/tint/1805 webgpu:shader,validation,parse,align:align_required_alignment:* [ Failure ]
 
 ############################################################################
 # Flaky on Intel Mac
@@ -335,15 +285,6 @@
 crbug.com/dawn/1599 [ webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,canvas:color_space_conversion:* [ Failure ]
 
 ################################################################################
-# Failures about the validation on the storage usage of bgra8unorm
-################################################################################
-crbug.com/dawn/1641 webgpu:api,validation,createBindGroupLayout:storage_texture,formats:format="bgra8unorm" [ Failure ]
-crbug.com/dawn/1641 webgpu:api,validation,createTexture:texture_usage:dimension="1d";format="bgra8unorm" [ Failure ]
-crbug.com/dawn/1641 webgpu:api,validation,createTexture:texture_usage:dimension="2d";format="bgra8unorm" [ Failure ]
-crbug.com/dawn/1641 webgpu:api,validation,createTexture:texture_usage:dimension="3d";format="bgra8unorm" [ Failure ]
-crbug.com/dawn/1641 webgpu:api,validation,createTexture:texture_usage:dimension="_undef_";format="bgra8unorm" [ Failure ]
-
-################################################################################
 # untriaged failures
 ################################################################################
 crbug.com/dawn/0000 [ dawn-backend-validation win10 ] webgpu:api,operation,render_pass,resolve:* [ Failure ]
@@ -408,106 +349,90 @@
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";alphaMode="premultiplied";webgl="webgl2";upload="texSubImage2D" [ Failure ]
 
 # New flakes. Please triage:
-crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,operation,rendering,basic:large_draw:indexed=false;indirect=false [ RetryOnFailure ]
-crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:getMappedRange,offsetAndSizeAlignment,mappedAtCreation: [ RetryOnFailure ]
-crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection: [ RetryOnFailure ]
-crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection: [ RetryOnFailure ]
-crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:unmap,state,unmapped: [ RetryOnFailure ]
-crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:unmap,state,unmapped: [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,render_pipeline,inter_stage:interpolation_type:isAsync=true;output="%40interpolate(perspective)";input="" [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 monterey target-cpu-64 ] webgpu:shader,execution,expression,binary,f32_arithmetic:division:inputSource="uniform";vectorize="_undef_" [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 monterey target-cpu-64 ] webgpu:shader,execution,expression,binary,f32_arithmetic:multiplication:inputSource="const";vectorize=3 [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 monterey target-cpu-64 ] webgpu:shader,execution,expression,binary,f32_arithmetic:multiplication:inputSource="storage_r";vectorize="_undef_" [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=false;dstPremultiplied=false [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false [ RetryOnFailure ]
 
 # New failures. Please triage:
-crbug.com/dawn/0000 [ intel-gen-9 ubuntu ] webgpu:api,operation,render_pipeline,sample_mask:final_output:sampleCount=1;rasterizationMask=1 [ Failure ]
+crbug.com/dawn/0000 webgpu:api,operation,labels:object_has_descriptor_label:name="createComputePipelineAsync" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,operation,labels:object_has_descriptor_label:name="createRenderPipelineAsync" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,operation,labels:object_has_descriptor_label:name="finish" [ Failure ]
+crbug.com/dawn/0000 [ intel-gen-9 ubuntu ] webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:sampleCount=1;rasterizationMask=1 [ Failure ]
 crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu ] webgpu:api,operation,rendering,depth_bias:depth_bias:quadAngle=0;bias=-8388608;biasSlopeScale=0;biasClamp=0.125 [ Failure ]
 crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu ] webgpu:api,operation,rendering,depth_bias:depth_bias:quadAngle=0;bias=8388608;biasSlopeScale=0;biasClamp=0 [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,buffer,create:limit: [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:getMappedRange,state,mappingPending: [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection: [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:mapAsync,state,mappingPending: [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,capability_checks,limits,maxBufferSize:* [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=false;constants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,compute_pipeline:overrides,identifier:isAsync=true;constants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="2d" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="_undef_" [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,encoding,encoder_state:pass_end_invalid_order:* [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"] [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,query_set,destroy:invalid_queryset: [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"] [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="bgra8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rg32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgb10a2unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba16uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32float" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32sint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba32uint" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:format="rgba8unorm-srgb" [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,unaligned:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"] [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=false;fragmentConstants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:identifier,fragment:isAsync=true;fragmentConstants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=false;vertexConstants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:identifier,vertex:isAsync=true;vertexConstants={"s%C3%A9quen%C3%A7age":0} [ Failure ]
+crbug.com/dawn/0000 webgpu:api,validation,texture,destroy:invalid_texture: [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:alpha_mode:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:defaults:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:device:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:format:canvasType="offscreen";format="rgba8unorm" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:format:canvasType="onscreen";format="rgba8unorm" [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,canvas,configure:size_zero_after_configure:* [ Failure ]
 crbug.com/dawn/0000 [ monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:usage:* [ Failure ]
 crbug.com/dawn/0000 [ monterey webgpu-adapter-swiftshader ] webgpu:web_platform,canvas,configure:usage:* [ Failure ]
 crbug.com/dawn/0000 [ ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:usage:* [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-swiftshader ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-swiftshader win10 ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-swiftshader win10 ] webgpu:web_platform,canvas,configure:viewFormats:* [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="bgra8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba16float";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 monterey webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="depth32float-stencil8" [ Failure ]
-crbug.com/dawn/0000 [ intel-gen-9 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
-crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
+crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="offscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="_undef_" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,getCurrentTexture:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:format="bgra8unorm";alphaMode="opaque";colorSpace="display-p3";snapshotType="convertToBlob" [ Failure ]
 crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:format="bgra8unorm";alphaMode="opaque";colorSpace="display-p3";snapshotType="convertToBlob" [ Failure ]
@@ -552,3 +477,8 @@
 crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba16float";alphaMode="premultiplied";colorSpace="display-p3";snapshotType="toBlob" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba16float";alphaMode="premultiplied";colorSpace="display-p3";snapshotType="toDataURL" [ Failure ]
 crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:format="rgba16float";alphaMode="premultiplied";colorSpace="display-p3";snapshotType="toDataURL" [ Failure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-32 webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=false;dstPremultiplied=false [ Failure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=false;dstPremultiplied=false [ Failure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-32 webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-32 webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]