Roll third_party/webgpu-cts/ 7ea4404fa..82a512494 (6 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/7ea4404fa9d9..82a512494491
- 82a512 Compat: skip sample_mask tests (#2792)
- 6a70df Compat skip texture view format (#2791)
- 95a1ab Compat: Pass in options to workers (#2787)
- 768732 Validation tests for pointer uniformity (#2774)
- 086261 Compat: Skip testing bgra8unorm-srgb in more places (#2786)
- c67bcb Expression uniformity validation tests (#2772)
Created with './tools/run cts roll'
Change-Id: I8000bb64c667d0c4ae27d5cab66a45b932c00e40
Cq-Include-Trybots: luci.chromium.try:android-dawn-arm-rel,android-dawn-arm64-rel,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/+/139422
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/DEPS b/DEPS
index a225382..d395699 100644
--- a/DEPS
+++ b/DEPS
@@ -173,7 +173,7 @@
# WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
'third_party/webgpu-cts': {
- 'url': '{chromium_git}/external/github.com/gpuweb/cts@7ea4404fa9d9b526f6e6675dbbd7618f9b14e756',
+ 'url': '{chromium_git}/external/github.com/gpuweb/cts@82a512494491d0e22a166d5291c86a4bf5a27172',
'condition': 'build_with_chromium',
},
diff --git a/third_party/gn/webgpu-cts/test_list.txt b/third_party/gn/webgpu-cts/test_list.txt
index 365cb75..98064a9 100644
--- a/third_party/gn/webgpu-cts/test_list.txt
+++ b/third_party/gn/webgpu-cts/test_list.txt
@@ -55332,6 +55332,36 @@
webgpu:shader,validation,uniformity,uniformity:compute_builtin_values:builtin="global_invocation_id";type="vec3%3Cu32%3E";uniform=false
webgpu:shader,validation,uniformity,uniformity:compute_builtin_values:builtin="workgroup_id";type="vec3%3Cu32%3E";uniform=true
webgpu:shader,validation,uniformity,uniformity:compute_builtin_values:builtin="num_workgroups";type="vec3%3Cu32%3E";uniform=true
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_uniform_literal"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_uniform_value"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_nonuniform_value"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_uniform_chain"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_nonuniform_chain1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="address_nonuniform_chain2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="wg_uniform_load_is_uniform"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_uniform1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_uniform2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_uniform3"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_nonuniform1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_nonuniform2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_uniform"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_nonuniform1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_nonuniform2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_nonuniform3"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_nonuniform4"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_scalar_alias_nonuniform5"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_array_uniform_index"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_array_nonuniform_index1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_array_nonuniform_index2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_array_nonuniform_index3"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_uniform"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_nonuniform1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_nonuniform2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_nonuniform3"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_chain_uniform"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_chain_nonuniform1"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_chain_nonuniform2"
+webgpu:shader,validation,uniformity,uniformity:pointers:case="contents_struct_chain_nonuniform3"
webgpu:shader,validation,uniformity,uniformity:function_variables:case="no_assign";init="no_init"
webgpu:shader,validation,uniformity,uniformity:function_variables:case="no_assign";init="uniform"
webgpu:shader,validation,uniformity,uniformity:function_variables:case="no_assign";init="nonuniform"
@@ -55533,6 +55563,1066 @@
webgpu:shader,validation,uniformity,uniformity:function_variables:case="nested2";init="no_init"
webgpu:shader,validation,uniformity,uniformity:function_variables:case="nested2";init="uniform"
webgpu:shader,validation,uniformity,uniformity:function_variables:case="nested2";init="nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_uniform_uniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_uniform_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_nonuniform_uniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_nonuniform_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_uniform_first_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="or_uniform_second_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_uniform_uniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_uniform_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_nonuniform_uniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_nonuniform_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_uniform_first_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:short_circuit_expressions:case="and_uniform_second_nonuniform"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="literal";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_index";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index1";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_index2";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="uniform_struct";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="literal";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_index";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index1";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_index2";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="uniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="plus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="minus"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="times"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="div"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="rem"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="and"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="or"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="xor"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="shl"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="shr"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="less"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="lessequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="greater"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="greaterequal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="equal"
+webgpu:shader,validation,uniformity,uniformity:binary_expressions:e1="nonuniform_struct";e2="nonuniform_struct";op="notequal"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="literal";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="literal";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="literal";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_index";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_index";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_index";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index1";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index1";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index1";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index2";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index2";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_index2";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_struct";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_struct";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="uniform_struct";op="-i32(i_tmp)%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_struct";op="!b_tmp"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_struct";op="~i_tmp%20%3E%200"
+webgpu:shader,validation,uniformity,uniformity:unary_expressions:e="nonuniform_struct";op="-i32(i_tmp)%20%3E%200"
webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="r8unorm"
webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rg8unorm"
webgpu:util,texture,texel_data:unorm_texel_data_in_shader:format="rgba8unorm"
diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt
index 7afadb2..7609ee4 100644
--- a/webgpu-cts/expectations.txt
+++ b/webgpu-cts/expectations.txt
@@ -68,7 +68,7 @@
# results: [ Failure RetryOnFailure Skip Slow ]
# END TAG HEADER
-# Last rolled: 2023-06-23 11:41:57PM
+# Last rolled: 2023-06-28 09:02:36PM
################################################################################
# copyToTexture failures on Linux
@@ -1010,5 +1010,5 @@
crbug.com/dawn/0000 [ ventura ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_bitmaprenderer_context_canvas:canvasType="offscreen";dstColorFormat="rgba8unorm-srgb";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false [ Failure ]
crbug.com/dawn/0000 [ ventura ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_bitmaprenderer_context_canvas:canvasType="offscreen";dstColorFormat="rgba8unorm-srgb";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true [ Failure ]
crbug.com/dawn/0000 [ intel-0x9bc5 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,video:* [ Failure ]
-crbug.com/dawn/0000 [ win nvidia ] webgpu:web_platform,canvas,configure:format:canvasType="onscreen";format="rg16sint" [ Failure ]
-crbug.com/dawn/0000 [ win ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true [ Failure ]
\ No newline at end of file
+crbug.com/dawn/0000 [ nvidia win ] webgpu:web_platform,canvas,configure:format:canvasType="onscreen";format="rg16sint" [ Failure ]
+crbug.com/dawn/0000 [ win ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true [ Failure ]
diff --git a/webgpu-cts/test_runner.js b/webgpu-cts/test_runner.js
index ec3bf76..0af764c 100644
--- a/webgpu-cts/test_runner.js
+++ b/webgpu-cts/test_runner.js
@@ -18,6 +18,8 @@
import { prettyPrintLog } from '../third_party/webgpu-cts/src/common/internal/logging/log_message.js';
import { Logger } from '../third_party/webgpu-cts/src/common/internal/logging/logger.js';
import { parseQuery } from '../third_party/webgpu-cts/src/common/internal/query/parseQuery.js';
+import { parseSearchParamLikeWithCTSOptions } from '../third_party/webgpu-cts/src/common/runtime/helper/options.js';
+import { setDefaultRequestAdapterOptions } from '../third_party/webgpu-cts/src/common/util/navigator_gpu.js';
import { TestWorker } from '../third_party/webgpu-cts/src/common/runtime/helper/test_worker.js';
@@ -151,14 +153,26 @@
globalTestConfig.unrollConstEvalLoops = true;
}
-async function runCtsTest(query, use_worker) {
- const workerEnabled = use_worker;
- const worker = workerEnabled ? new TestWorker(false) : undefined;
+// MAINTENANCE_TODO(gman): remove use_worker since you can use worker=1 instead
+async function runCtsTest(queryString, use_worker) {
+ const { queries, options } = parseSearchParamLikeWithCTSOptions(queryString);
+ const workerEnabled = use_worker || options.worker;
+ const worker = workerEnabled ? new TestWorker(options) : undefined;
const loader = new DefaultTestFileLoader();
- const filterQuery = parseQuery(query);
+ const filterQuery = parseQuery(queries[0]);
const testcases = await loader.loadCases(filterQuery);
+ const { compatibility, powerPreference } = options;
+ globalTestConfig.compatibility = compatibility;
+ if (powerPreference || compatibility) {
+ setDefaultRequestAdapterOptions({
+ ...(powerPreference && { powerPreference }),
+ // MAINTENANCE_TODO(gman): Change this to whatever the option ends up being
+ ...(compatibility && { compatibilityMode: true }),
+ });
+ }
+
const expectations = [];
const log = new Logger();