Roll third_party/webgpu-cts/ 65fcd99b7..9fbed0099 (13 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/65fcd99b74d2..9fbed0099e42
 - 9fbed0 Apply error to final result of `atan2` calculation, not intermediates (#2143)
 - 02a770 [wgsl] Add align size requirement test. (#2174)
 - ebe427 Fix name of binary/u32_arithmetic cache (#2177)
 - 1fdd20 Transfer to image bitmap npe (#2131)
 - 55a0dc Fix u32 and i32 non-const divide by 0 expecting lhs (not 0) (#2175)
 - 8c8367 Add test for u32 binary arithmetic operations (#2173)
 - 556dbb Replace map+filter with reduce in case generators (#2172)
 - 8a0bef Add additional unit testing for builtins that depend on dot (#2171)
 - 44f038 Add tests for i32 binary arithmetic operations (#2170)
 - d3684a Remove the canvas_size_different_with_back_buffer_size reftest (#2165)
 - 13fc69 Convert remaining dispatch() to dispatchWorkgroups() (#2169)
 - 4f3e80 Remove io-shareable test, move more types into locations test. (#2159)
 - 2d4661 Add unary i32 execution tests (#2162)

Created with './tools/run cts roll'

Change-Id: I5d7a3a1786049527fef00c5e5e331e94cafddedf
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/+/117381
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/DEPS b/DEPS
index a7b5eae..5428b69 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@65fcd99b74d2a432b2b311730e141b09b7f0d153',
+    'url': '{chromium_git}/external/github.com/gpuweb/cts@9fbed0099e425cb735e6745bd2ce30a880e5075c',
     '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 22422d9..e9f83ba 100644
--- a/third_party/gn/webgpu-cts/cache_list.txt
+++ b/third_party/gn/webgpu-cts/cache_list.txt
@@ -1,5 +1,7 @@
 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/i32_arithmetic.json
+data/webgpu/shader/execution/case-cache/binary/u32_arithmetic.json
 data/webgpu/shader/execution/case-cache/abs.json
 data/webgpu/shader/execution/case-cache/acos.json
 data/webgpu/shader/execution/case-cache/acosh.json
@@ -55,3 +57,4 @@
 data/webgpu/shader/execution/case-cache/unpack4x8snorm.json
 data/webgpu/shader/execution/case-cache/unpack4x8unorm.json
 data/webgpu/shader/execution/case-cache/unary/f32_arithmetic.json
+data/webgpu/shader/execution/case-cache/unary/i32_arithmetic.json
diff --git a/third_party/gn/webgpu-cts/test_list.txt b/third_party/gn/webgpu-cts/test_list.txt
index d258e93..2a8b305 100644
--- a/third_party/gn/webgpu-cts/test_list.txt
+++ b/third_party/gn/webgpu-cts/test_list.txt
@@ -26577,6 +26577,166 @@
 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,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
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:addition:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:division:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize="_undef_"
+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,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
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:addition:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:division:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:inputSource="storage_rw";vectorize="_undef_"
+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,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
@@ -30283,6 +30443,22 @@
 webgpu:shader,execution,expression,unary,f32_arithmetic:negation:inputSource="storage_rw";vectorize=2
 webgpu:shader,execution,expression,unary,f32_arithmetic:negation:inputSource="storage_rw";vectorize=3
 webgpu:shader,execution,expression,unary,f32_arithmetic:negation:inputSource="storage_rw";vectorize=4
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="const";vectorize="_undef_"
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="const";vectorize=2
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="const";vectorize=3
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="const";vectorize=4
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="uniform";vectorize="_undef_"
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="uniform";vectorize=2
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="uniform";vectorize=3
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="uniform";vectorize=4
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_r";vectorize="_undef_"
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_r";vectorize=2
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_r";vectorize=3
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_r";vectorize=4
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_rw";vectorize="_undef_"
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_rw";vectorize=2
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_rw";vectorize=3
+webgpu:shader,execution,expression,unary,i32_arithmetic:negation:inputSource="storage_rw";vectorize=4
 webgpu:shader,execution,memory_model,atomicity:atomicity:memType="atomic_storage";testType="inter_workgroup"
 webgpu:shader,execution,memory_model,atomicity:atomicity:memType="atomic_storage";testType="intra_workgroup"
 webgpu:shader,execution,memory_model,atomicity:atomicity:memType="atomic_workgroup";testType="intra_workgroup"
@@ -32712,34 +32888,290 @@
 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:missing_attribute_on_param_struct:align=""
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(1)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4i)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4u)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(0x4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4,)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(u_val)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(i_val)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(i_val%20%2B%204%20-%206)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(1073741824)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40%5Ctalign%5Ct(4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40%2F%5Ecomment%5E%2Falign%2F%5Ecomment%5E%2F(4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40malign(4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align()"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align%204)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4,%202)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(3)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(f_val)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(1.0)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4f)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(4h)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(0)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(-4)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(2147483646)"
-webgpu:shader,validation,parse,align:missing_attribute_on_param_struct:align="%40align(2147483648)"
+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,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"
@@ -36581,22 +37013,36 @@
 webgpu:shader,validation,shader_io,locations:stage_inout:use_struct=false;target_stage="fragment";target_io="out"
 webgpu:shader,validation,shader_io,locations:stage_inout:use_struct=false;target_stage="compute";target_io="in"
 webgpu:shader,validation,shader_io,locations:stage_inout:use_struct=false;target_stage="compute";target_io="out"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="bool"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="u32"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="i32"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="f16"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="f32"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="i32"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="u32"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="MyAlias"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="bool"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec2%3Cbool%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec3%3Cbool%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="vec4%3Cbool%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x2%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x3%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x4%3Cf32%3E"
@@ -36606,29 +37052,80 @@
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x2%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x3%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="atomic%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat2x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat3x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="mat4x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cf32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Ci32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cu32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cbool,%2012%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="atomic%3Ci32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cbool,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cu32,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Ci32,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="array%3Cf32,4%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="atomic%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="MyStruct"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="bool"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="u32"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="i32"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_1d%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_2d%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_2d_array%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_3d%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_cube%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_cube_array%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_multisampled_2d%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_external"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_storage_1d%3Crgba8unorm,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_storage_2d%3Crg32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_storage_2d_array%3Cr32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_storage_3d%3Cr32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_depth_2d"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_depth_2d_array"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_depth_cube"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_depth_cube_array"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="texture_depth_multisampled_2d"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="sampler"
+webgpu:shader,validation,shader_io,locations:type:use_struct=true;type="sampler_comparison"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="f16"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="f32"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="i32"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="u32"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Cbool%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Cu32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4i"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4u"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="MyAlias"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="bool"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec2%3Cbool%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec3%3Cbool%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="vec4%3Cbool%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x2%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x3%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x4%3Cf32%3E"
@@ -36638,13 +37135,50 @@
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x2%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x3%3Cf32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="atomic%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x2f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x3f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x4f"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat2x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat3x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x2h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x3h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="mat4x4h"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cf32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Ci32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cu32,%2012%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cbool,%2012%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="atomic%3Ci32%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cbool,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cu32,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Ci32,4%3E"
-webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="array%3Cf32,4%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="atomic%3Cu32%3E"
 webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="MyStruct"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_1d%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_2d%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_2d_array%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_3d%3Cf32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_cube%3Cu32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_cube_array%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_multisampled_2d%3Ci32%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_external"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_storage_1d%3Crgba8unorm,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_storage_2d%3Crg32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_storage_2d_array%3Cr32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_storage_3d%3Cr32float,%20write%3E"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_depth_2d"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_depth_2d_array"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_depth_cube"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_depth_cube_array"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="texture_depth_multisampled_2d"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="sampler"
+webgpu:shader,validation,shader_io,locations:type:use_struct=false;type="sampler_comparison"
 webgpu:shader,validation,shader_io,locations:nesting:target_stage="vertex";target_io="in"
 webgpu:shader,validation,shader_io,locations:nesting:target_stage="vertex";target_io="out"
 webgpu:shader,validation,shader_io,locations:nesting:target_stage="fragment";target_io="in"
@@ -36667,93 +37201,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,shader_io,shareable_types:io_shareable_type:storageClass="in";type="f32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="i32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="u32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="bool"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec2%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec2%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec2%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec3%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec3%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec3%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec4%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec4%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="vec4%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat2x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat2x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat2x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat3x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat3x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat3x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat4x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat4x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="mat4x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="array%3Cf32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="array%3Ci32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="array%3Cu32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="in";type="array%3Cbool,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="f32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="i32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="u32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="bool"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec2%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec2%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec2%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec3%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec3%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec3%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec4%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec4%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="vec4%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat2x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat2x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat2x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat3x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat3x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat3x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat4x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat4x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="mat4x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="array%3Cf32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="array%3Ci32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="array%3Cu32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="out";type="array%3Cbool,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="f32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="i32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="u32"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="bool"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec2%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec2%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec2%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec3%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec3%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec3%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec4%3Ci32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec4%3Cu32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="vec4%3Cbool%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat2x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat2x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat2x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat3x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat3x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat3x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat4x2%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat4x3%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="mat4x4%3Cf32%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="array%3Cf32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="array%3Ci32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="array%3Cu32,%2012%3E"
-webgpu:shader,validation,shader_io,shareable_types:io_shareable_type:storageClass="private";type="array%3Cbool,%2012%3E"
 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"
@@ -37147,6 +37594,9 @@
 webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba16float";alphaMode="premultiplied";webgpuCanvasType="onscreen";canvas2DType="offscreen"
 webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba16float";alphaMode="premultiplied";webgpuCanvasType="offscreen";canvas2DType="onscreen"
 webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:format="rgba16float";alphaMode="premultiplied";webgpuCanvasType="offscreen";canvas2DType="offscreen"
+webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_unconfigured_nonzero_size:
+webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_zero_size:configure=true
+webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_zero_size:configure=false
 webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="r8unorm";dstPremultiplied=true
 webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="r8unorm";dstPremultiplied=false
 webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstColorFormat="r16float";dstPremultiplied=true
diff --git a/third_party/gn/webgpu-cts/ts_sources.txt b/third_party/gn/webgpu-cts/ts_sources.txt
index 07a2e99..6c2e89b 100644
--- a/third_party/gn/webgpu-cts/ts_sources.txt
+++ b/third_party/gn/webgpu-cts/ts_sources.txt
@@ -302,6 +302,8 @@
 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/i32_arithmetic.spec.ts
+src/webgpu/shader/execution/expression/binary/u32_arithmetic.spec.ts
 src/webgpu/shader/execution/expression/call/builtin/builtin.ts
 src/webgpu/shader/execution/expression/call/builtin/abs.spec.ts
 src/webgpu/shader/execution/expression/call/builtin/acos.spec.ts
@@ -416,6 +418,7 @@
 src/webgpu/shader/execution/expression/unary/unary.ts
 src/webgpu/shader/execution/expression/unary/bool_logical.spec.ts
 src/webgpu/shader/execution/expression/unary/f32_arithmetic.spec.ts
+src/webgpu/shader/execution/expression/unary/i32_arithmetic.spec.ts
 src/webgpu/shader/execution/memory_model/memory_model_setup.ts
 src/webgpu/shader/execution/memory_model/atomicity.spec.ts
 src/webgpu/shader/execution/memory_model/barrier.spec.ts
@@ -442,7 +445,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/shader_io/shareable_types.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
@@ -463,7 +465,6 @@
 src/webgpu/web_platform/reftests/canvas_complex.html.ts
 src/webgpu/web_platform/reftests/canvas_composite_alpha.html.ts
 src/webgpu/web_platform/reftests/canvas_image_rendering.html.ts
-src/webgpu/web_platform/reftests/canvas_size_different_with_back_buffer_size.html.ts
 src/webgpu/web_platform/reftests/create-pattern-data-url.ts
 src/webgpu/web_platform/reftests/resize_observer.html.ts
 src/webgpu/web_platform/worker/worker.spec.ts
diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt
index 720e706..75b8f29 100644
--- a/webgpu-cts/expectations.txt
+++ b/webgpu-cts/expectations.txt
@@ -60,7 +60,7 @@
 # results: [ Failure RetryOnFailure Skip Slow ]
 # END TAG HEADER
 
-# Last rolled: 2023-01-17 12:03:17AM
+# Last rolled: 2023-01-18 09:20:38PM
 
 ################################################################################
 # copyToTexture failures on Linux
@@ -169,14 +169,6 @@
 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 ]
 
 ################################################################################
-# atan2 shader execution failures
-################################################################################
-crbug.com/tint/1524 [ monterey ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="const";vectorize="_undef_" [ Failure ]
-crbug.com/tint/1524 [ monterey ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="const";vectorize=2 [ Failure ]
-crbug.com/tint/1524 [ monterey ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="const";vectorize=3 [ Failure ]
-crbug.com/tint/1524 [ monterey ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="const";vectorize=4 [ Failure ]
-
-################################################################################
 # shader execution failures
 ################################################################################
 crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="storage_r";vectorize="_undef_" [ Failure ]
@@ -396,8 +388,6 @@
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";alphaMode="premultiplied";webgl="webgl";upload="texSubImage2D" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";alphaMode="premultiplied";webgl="webgl2";upload="texImage2D" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:format="rgba8unorm";alphaMode="premultiplied";webgl="webgl2";upload="texSubImage2D" [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 target-cpu-64 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,invalidBuffer: [ Failure ]
-crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,invalidBuffer: [ Failure ]
 crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-64 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,invalidBuffer: [ Failure ]
 
 # New failures. Please triage:
@@ -410,9 +400,31 @@
 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_twice: [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,depth_stencil_state:depth_write,frag_depth:isAsync=false;format="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ ubuntu ] webgpu:api,validation,render_pipeline,depth_stencil_state:depth_write,frag_depth:isAsync=true;format="_undef_" [ Failure ]
-crbug.com/dawn/0000 [ win10 ] webgpu:api,validation,render_pipeline,depth_stencil_state:depth_write,frag_depth:isAsync=true;format="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_r";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="storage_rw";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ ubuntu ] webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:inputSource="uniform";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_r";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_r";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_r";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_r";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_rw";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_rw";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_rw";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="storage_rw";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="uniform";vectorize="_undef_" [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="uniform";vectorize=2 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="uniform";vectorize=3 [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:shader,execution,expression,call,builtin,atan2:f32:inputSource="uniform";vectorize=4 [ Failure ]
+crbug.com/dawn/0000 webgpu:shader,validation,parse,align:align_required_alignment:* [ 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 ]
@@ -497,32 +509,10 @@
 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,getCurrentTexture:* [ Failure ]
-crbug.com/dawn/0000 [ monterey webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Failure ]
-crbug.com/dawn/0000 [ webgpu-adapter-swiftshader win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Failure ]
-crbug.com/dawn/0000 [ monterey webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ monterey webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ monterey webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 [ monterey webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ webgpu-adapter-default win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="none";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="flipY";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=false [ Failure ]
-crbug.com/dawn/0000 webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:alpha="premultiply";orientation="none";srcDoFlipYDuringCopy=true;dstPremultiplied=true [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 win10 ] worker_webgpu:api,operation,rendering,basic:large_draw:indexed=false;indirect=false [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 win10 ] worker_webgpu:api,operation,rendering,basic:large_draw:indexed=false;indirect=true [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 target-cpu-64 win10 ] worker_webgpu:api,validation,buffer,mapping:unmap,state,unmapped: [ Failure ]
+crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_unconfigured_nonzero_size: [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_unconfigured_nonzero_size: [ Failure ]
+crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_zero_size:* [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_zero_size:* [ Failure ]
+crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Failure ]
+crbug.com/dawn/0000 [ win10 ] webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:* [ Failure ]
+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="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false [ Failure ]