From 09e57a07b3c326acf7c2dea7b8bd17814e9ae6bf Mon Sep 17 00:00:00 2001 From: Erich Gubler Date: Thu, 24 Apr 2025 02:38:55 +0000 Subject: [PATCH] Bug 1961411 - build(webgpu): update WGPU to 5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6 r=webgpu-reviewers,supply-chain-reviewers,nical Differential Revision: https://phabricator.services.mozilla.com/D246054 --- .cargo/config.toml.in | 4 +- Cargo.lock | 12 +- gfx/wgpu_bindings/Cargo.toml | 12 +- gfx/wgpu_bindings/moz.yaml | 4 +- gfx/wgpu_bindings/src/server.rs | 1 - supply-chain/audits.toml | 12 +- .../copyTextureToTexture/cts.https.html.ini | 2 +- .../rendering/draw/cts.https.html.ini | 120 -- .../cts.https.html.ini | 1191 ++++++++++++----- .../cmds/compute_pass/cts.https.html.ini | 4 - .../cmds/render/draw/cts.https.html.ini | 2 + .../render/dynamic_state/cts.https.html.ini | 2 - .../cts.https.html.ini | 36 +- .../layout_shader_compat/cts.https.html.ini | 189 ++- .../in_pass_encoder/cts.https.html.ini | 256 ++++ .../texture/in_render_misc/cts.https.html.ini | 14 + .../device_lost/destroy/cts.https.html.ini | 14 +- .../cts.https.html.ini | 236 +--- .../pipeline_creation/cts.https.html.ini | 18 - .../call/builtin/distance/cts.https.html.ini | 12 - .../builtin/pack4xI8Clamp/cts.https.html.ini | 3 - .../builtin/pack4xU8Clamp/cts.https.html.ini | 3 - .../builtin/subgroupMinMax/cts.https.html.ini | 112 +- .../builtin/subgroupMul/cts.https.html.ini | 16 +- .../builtin/textureGather/cts.https.html.ini | 67 + .../builtin/textureLoad/cts.https.html.ini | 208 +++ .../textureSampleLevel/cts.https.html.ini | 86 ++ .../flow_control/call/cts.https.html.ini | 14 - .../flow_control/complex/cts.https.html.ini | 2 - .../eval_order/cts.https.html.ini | 68 - .../flow_control/for/cts.https.html.ini | 14 - .../flow_control/if/cts.https.html.ini | 8 - .../flow_control/loop/cts.https.html.ini | 4 - .../flow_control/phony/cts.https.html.ini | 15 - .../flow_control/return/cts.https.html.ini | 8 +- .../flow_control/switch/cts.https.html.ini | 12 - .../flow_control/while/cts.https.html.ini | 2 - .../memory_model/barrier/cts.https.html.ini | 14 +- .../cts.https.html.ini | 13 + .../robust_access_vertex/cts.https.html.ini | 16 - .../validation/decl/var/cts.https.html.ini | 1 + .../binary/add_sub_mul/cts.https.html.ini | 3 - .../binary/and_or_xor/cts.https.html.ini | 3 - .../binary/bitwise_shift/cts.https.html.ini | 2 - .../binary/comparison/cts.https.html.ini | 6 - .../binary/div_rem/cts.https.html.ini | 2 - .../cts.https.html.ini | 3 - .../builtin/dot4I8Packed/cts.https.html.ini | 4 +- .../builtin/dot4U8Packed/cts.https.html.ini | 4 +- .../call/builtin/pack4xI8/cts.https.html.ini | 5 + .../builtin/pack4xI8Clamp/cts.https.html.ini | 7 +- .../call/builtin/pack4xU8/cts.https.html.ini | 5 + .../builtin/pack4xU8Clamp/cts.https.html.ini | 7 +- .../builtin/textureGather/cts.https.html.ini | 20 +- .../textureGatherCompare/cts.https.html.ini | 41 - .../builtin/textureSample/cts.https.html.ini | 12 - .../textureSampleBias/cts.https.html.ini | 69 - .../textureSampleCompare/cts.https.html.ini | 58 - .../cts.https.html.ini | 39 - .../textureSampleGrad/cts.https.html.ini | 19 - .../textureSampleLevel/cts.https.html.ini | 52 +- .../builtin/unpack4xI8/cts.https.html.ini | 3 + .../builtin/unpack4xU8/cts.https.html.ini | 3 + .../arithmetic_negation/cts.https.html.ini | 1 - .../bitwise_complement/cts.https.html.ini | 1 - .../unary/logical_negation/cts.https.html.ini | 2 - .../cts.https.html.ini | 4 - .../group_and_binding/cts.https.html.ini | 36 - .../uniformity/uniformity/cts.https.html.ini | 3 - .../ImageBitmap/cts.https.html.ini | 3 +- .../ImageBitmap/shared.https.html.ini | 1 + third_party/rust/naga/.cargo-checksum.json | 2 +- third_party/rust/naga/src/back/glsl/mod.rs | 31 +- third_party/rust/naga/src/back/hlsl/writer.rs | 48 +- third_party/rust/naga/src/back/msl/writer.rs | 31 +- third_party/rust/naga/src/back/spv/block.rs | 35 +- .../rust/naga/src/common/wgsl/to_wgsl.rs | 2 + third_party/rust/naga/src/error.rs | 4 + .../rust/naga/src/front/wgsl/lower/mod.rs | 952 ++++++------- .../rust/naga/src/front/wgsl/parse/conv.rs | 2 + .../parse/directive/language_extension.rs | 26 +- third_party/rust/naga/src/ir/mod.rs | 2 + .../rust/naga/src/proc/constant_evaluator.rs | 2 + third_party/rust/naga/src/proc/mod.rs | 2 + .../naga/src/proc/overloads/mathfunction.rs | 6 +- third_party/rust/naga/src/valid/analyzer.rs | 22 +- .../rust/wgpu-core/.cargo-checksum.json | 2 +- third_party/rust/wgpu-core/Cargo.toml | 2 +- .../rust/wgpu-core/src/command/compute.rs | 1 + .../rust/wgpu-core/src/command/draw.rs | 6 +- .../rust/wgpu-core/src/command/render.rs | 34 +- .../rust/wgpu-core/src/device/resource.rs | 1 + .../wgpu-core/src/indirect_validation/draw.rs | 26 +- .../wgpu-core/src/indirect_validation/mod.rs | 3 +- .../indirect_validation/validate_draw.wgsl | 32 +- .../rust/wgpu-hal/.cargo-checksum.json | 2 +- third_party/rust/wgpu-hal/Cargo.toml | 2 +- third_party/rust/wgpu-hal/src/dx12/adapter.rs | 5 +- third_party/rust/wgpu-hal/src/dx12/command.rs | 58 +- .../rust/wgpu-hal/src/dx12/instance.rs | 2 - .../wgpu-hal/src/dx12/shader_compilation.rs | 53 - third_party/rust/wgpu-hal/src/gles/adapter.rs | 3 +- third_party/rust/wgpu-hal/src/gles/mod.rs | 2 - .../rust/wgpu-hal/src/vulkan/adapter.rs | 3 +- .../rust/wgpu-types/.cargo-checksum.json | 2 +- third_party/rust/wgpu-types/src/instance.rs | 34 +- third_party/rust/wgpu-types/src/lib.rs | 28 - 107 files changed, 2642 insertions(+), 2071 deletions(-) diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in index 40b39ad23671..c1fee51c4ccb 100644 --- a/.cargo/config.toml.in +++ b/.cargo/config.toml.in @@ -40,9 +40,9 @@ git = "https://github.com/franziskuskiefer/cose-rust" rev = "43c22248d136c8b38fe42ea709d08da6355cf04b" replace-with = "vendored-sources" -[source."git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4"] +[source."git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6"] git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" replace-with = "vendored-sources" [source."git+https://github.com/glandium/rust-objc?rev=4de89f5aa9851ceca4d40e7ac1e2759410c04324"] diff --git a/Cargo.lock b/Cargo.lock index ee266f0f706e..52cc4b86a991 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4588,7 +4588,7 @@ checksum = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664" [[package]] name = "naga" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "arrayvec", "bit-set", @@ -7547,7 +7547,7 @@ dependencies = [ [[package]] name = "wgpu-core" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "arrayvec", "bit-set", @@ -7577,7 +7577,7 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "wgpu-hal", ] @@ -7585,7 +7585,7 @@ dependencies = [ [[package]] name = "wgpu-core-deps-windows-linux-android" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "wgpu-hal", ] @@ -7593,7 +7593,7 @@ dependencies = [ [[package]] name = "wgpu-hal" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "android_system_properties", "arrayvec", @@ -7629,7 +7629,7 @@ dependencies = [ [[package]] name = "wgpu-types" version = "25.0.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=f1c496523ff0aa10c162fd01ad606960e925a5a4#f1c496523ff0aa10c162fd01ad606960e925a5a4" +source = "git+https://github.com/gfx-rs/wgpu?rev=5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6#5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" dependencies = [ "bitflags 2.9.0", "bytemuck", diff --git a/gfx/wgpu_bindings/Cargo.toml b/gfx/wgpu_bindings/Cargo.toml index 368bb456993f..a82dc29822e9 100644 --- a/gfx/wgpu_bindings/Cargo.toml +++ b/gfx/wgpu_bindings/Cargo.toml @@ -17,7 +17,7 @@ default = [] [dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" # TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182 features = [ "serde", @@ -33,32 +33,32 @@ features = [ [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" features = ["metal"] # We want the wgpu-core Direct3D backends on Windows. [target.'cfg(windows)'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" features = ["dx12"] # We want the wgpu-core Vulkan backend on Linux and Windows. [target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc] package = "wgpu-core" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" features = ["vulkan"] [dependencies.wgt] package = "wgpu-types" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" [dependencies.wgh] package = "wgpu-hal" git = "https://github.com/gfx-rs/wgpu" -rev = "f1c496523ff0aa10c162fd01ad606960e925a5a4" +rev = "5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" features = ["oom_panic", "device_lost_panic", "internal_error_panic"] [target.'cfg(windows)'.dependencies] diff --git a/gfx/wgpu_bindings/moz.yaml b/gfx/wgpu_bindings/moz.yaml index aa11c8a6f807..175d94e92605 100644 --- a/gfx/wgpu_bindings/moz.yaml +++ b/gfx/wgpu_bindings/moz.yaml @@ -8,8 +8,8 @@ origin: name: wgpu description: A cross-platform pure-Rust graphics API, modeled on the WebGPU standard url: https://github.com/gfx-rs/wgpu - release: f1c496523ff0aa10c162fd01ad606960e925a5a4 (2025-04-11T18:18:43Z). - revision: f1c496523ff0aa10c162fd01ad606960e925a5a4 + release: 5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6 (2025-04-18T18:56:34Z). + revision: 5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6 license: ['MIT', 'Apache-2.0'] updatebot: diff --git a/gfx/wgpu_bindings/src/server.rs b/gfx/wgpu_bindings/src/server.rs index 29de05de4aac..ffca041a326d 100644 --- a/gfx/wgpu_bindings/src/server.rs +++ b/gfx/wgpu_bindings/src/server.rs @@ -136,7 +136,6 @@ pub extern "C" fn wgpu_server_new(owner: *mut c_void, use_dxc: bool) -> *mut Glo let dx12_shader_compiler = if use_dxc { wgt::Dx12Compiler::DynamicDxc { dxc_path: "dxcompiler.dll".into(), - dxil_path: "dxil.dll".into(), max_shader_model: wgt::DxcShaderModel::V6_6, } } else { diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index 70635afd3e4b..c01981ba831a 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -3715,7 +3715,7 @@ delta = "24.0.0 -> 25.0.0" [[audits.naga]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.net2]] @@ -6001,7 +6001,7 @@ delta = "24.0.0 -> 25.0.0" [[audits.wgpu-core]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.wgpu-core-deps-apple]] @@ -6012,7 +6012,7 @@ version = "25.0.0" [[audits.wgpu-core-deps-apple]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.wgpu-core-deps-windows-linux-android]] @@ -6023,7 +6023,7 @@ version = "25.0.0" [[audits.wgpu-core-deps-windows-linux-android]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.wgpu-hal]] @@ -6112,7 +6112,7 @@ delta = "24.0.0 -> 25.0.0" [[audits.wgpu-hal]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.wgpu-types]] @@ -6196,7 +6196,7 @@ delta = "24.0.0 -> 25.0.0" [[audits.wgpu-types]] who = "Erich Gubler " criteria = "safe-to-deploy" -delta = "25.0.0 -> 25.0.0@git:f1c496523ff0aa10c162fd01ad606960e925a5a4" +delta = "25.0.0 -> 25.0.0@git:5304c3ca4a43e78d6a8e3b45d8d3f76216f2c1a6" importable = false [[audits.whatsys]] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/command_buffer/copyTextureToTexture/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/command_buffer/copyTextureToTexture/cts.https.html.ini index 369d62d4089d..bc9b548dc06d 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/command_buffer/copyTextureToTexture/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/command_buffer/copyTextureToTexture/cts.https.html.ini @@ -1547,7 +1547,7 @@ if os == "win": backlog if os == "linux": backlog expected: - if os == "win" and debug: [OK, ERROR] + if os == "win": [OK, ERROR] [:format="depth16unorm"] [:format="depth24plus"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/rendering/draw/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/rendering/draw/cts.https.html.ini index 348a2bd08639..4cb410ff850d 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/rendering/draw/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/rendering/draw/cts.https.html.ini @@ -591,7 +591,6 @@ [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -600,7 +599,6 @@ [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -609,7 +607,6 @@ [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -618,7 +615,6 @@ [:first=0;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -657,7 +653,6 @@ [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -666,7 +661,6 @@ [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -675,7 +669,6 @@ [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -684,7 +677,6 @@ [:first=0;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -755,12 +747,10 @@ [:first=0;count=3;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -781,42 +771,34 @@ [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -825,12 +807,10 @@ [:first=0;count=3;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -851,42 +831,34 @@ [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1007,7 +979,6 @@ [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -1016,7 +987,6 @@ [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -1025,7 +995,6 @@ [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -1034,7 +1003,6 @@ [:first=0;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1077,7 +1045,6 @@ [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -1086,7 +1053,6 @@ [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -1095,7 +1061,6 @@ [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -1104,7 +1069,6 @@ [:first=0;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1179,12 +1143,10 @@ [:first=0;count=6;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -1221,42 +1183,34 @@ [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1265,12 +1219,10 @@ [:first=0;count=6;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -1293,42 +1245,34 @@ [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=0;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=0;first_instance=0;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1888,12 +1832,10 @@ [:first=3;count=3;first_instance=0;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -1932,7 +1874,6 @@ [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -1941,7 +1882,6 @@ [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -1950,7 +1890,6 @@ [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -1959,7 +1898,6 @@ [:first=3;count=3;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -1968,12 +1906,10 @@ [:first=3;count=3;first_instance=0;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2009,7 +1945,6 @@ [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -2018,7 +1953,6 @@ [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -2027,7 +1961,6 @@ [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -2036,7 +1969,6 @@ [:first=3;count=3;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2105,12 +2037,10 @@ [:first=3;count=3;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2135,42 +2065,34 @@ [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2179,12 +2101,10 @@ [:first=3;count=3;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2213,42 +2133,34 @@ [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=3;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2341,12 +2253,10 @@ [:first=3;count=6;first_instance=0;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2377,7 +2287,6 @@ [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -2386,7 +2295,6 @@ [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -2395,7 +2303,6 @@ [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -2404,7 +2311,6 @@ [:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2415,12 +2321,10 @@ [:first=3;count=6;first_instance=0;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2449,7 +2353,6 @@ [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] @@ -2458,7 +2361,6 @@ [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] @@ -2467,7 +2369,6 @@ [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] @@ -2476,7 +2377,6 @@ [:first=3;count=6;first_instance=0;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=0;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2545,12 +2445,10 @@ [:first=3;count=6;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2571,42 +2469,34 @@ [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=1;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=false;indirect=false;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] @@ -2619,12 +2509,10 @@ [:first=3;count=6;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=0;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=false;indirect=true;vertex_buffer_offset=32;index_buffer_offset="_undef_";base_vertex="_undef_"] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=false;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] @@ -2655,42 +2543,34 @@ [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=0;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0] expected: - if os == "win": FAIL if os == "mac": FAIL [:first=3;count=6;first_instance=2;instance_count=4;indexed=true;indirect=true;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=9] expected: - if os == "win": FAIL if os == "mac": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/capability_checks/limits/maxStorageTexturesPerShaderStage/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/capability_checks/limits/maxStorageTexturesPerShaderStage/cts.https.html.ini index 0c8b23cb2e50..3980e43720c7 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/capability_checks/limits/maxStorageTexturesPerShaderStage/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/capability_checks/limits/maxStorageTexturesPerShaderStage/cts.https.html.ini @@ -1,30 +1,45 @@ [cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageTexturesPerShaderStage:createBindGroupLayout,at_over:*] tags: [webgpu, webgpu-long] - implementation-status: - if os == "win": backlog - if os == "linux" and not debug: backlog - if os == "mac": backlog + implementation-status: backlog expected: if os == "win": [OK, CRASH] if os == "linux" and not debug: [OK, CRASH] if os == "mac": [OK, CRASH] [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -33,22 +48,40 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -57,22 +90,40 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -81,10 +132,16 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=1;access="read-only";order="backward"] @@ -165,22 +222,40 @@ [:limitTest="atDefault";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -189,22 +264,40 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -213,22 +306,40 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -237,10 +348,16 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=1;access="read-only";order="backward"] @@ -321,22 +438,40 @@ [:limitTest="atMaximum";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -345,22 +480,40 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -369,22 +522,40 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -393,10 +564,16 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=1;access="read-only";order="backward"] @@ -633,22 +810,40 @@ [:limitTest="overMaximum";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -657,22 +852,40 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -681,22 +894,40 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -705,10 +936,16 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=1;access="read-only";order="backward"] @@ -793,60 +1030,60 @@ implementation-status: backlog expected: [OK, TIMEOUT] [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="read-only"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="read-write"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="write-only"] expected: if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-only"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-write"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="write-only"] [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="vertex";access="read-only"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="write-only"] expected: if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="write-only"] expected: if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=false;bindingCombination="compute";access="read-only"] expected: @@ -891,14 +1128,10 @@ if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="write-only"] expected: @@ -906,12 +1139,10 @@ if not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="write-only"] expected: @@ -922,136 +1153,89 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atDefault";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] @@ -1064,13 +1248,13 @@ [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] @@ -1083,33 +1267,27 @@ [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="write-only"] expected: @@ -1119,16 +1297,10 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="write-only"] expected: @@ -1138,34 +1310,19 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="atMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="write-only"] expected: @@ -1174,16 +1331,10 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="write-only"] expected: @@ -1192,86 +1343,56 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] @@ -1284,13 +1405,13 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] @@ -1303,33 +1424,27 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="write-only"] expected: @@ -1339,16 +1454,10 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="write-only"] expected: @@ -1358,246 +1467,235 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-write"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";access="write-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] + if os == "win": FAIL if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="read-only"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="read-write"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="compute";access="write-only"] expected: @@ -1606,40 +1704,29 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-only"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="read-write"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="fragment";access="write-only"] expected: if not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="vertex";access="read-only"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="compute";access="write-only"] expected: @@ -1648,16 +1735,10 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="fragment";access="write-only"] expected: @@ -1666,22 +1747,13 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=false;bindingCombination="compute";access="read-only"] expected: @@ -1740,16 +1812,10 @@ if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="compute";access="write-only"] expected: @@ -1759,16 +1825,10 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="read-write"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="fragment";access="write-only"] expected: @@ -1778,22 +1838,13 @@ if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="vertex";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:limitTest="underDefault";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";access="read-only"] - expected: - if os == "win": [PASS, TIMEOUT, NOTRUN] - if os == "linux": [PASS, TIMEOUT, NOTRUN] - if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageTexturesPerShaderStage:createPipelineLayout,at_over:*] @@ -1804,22 +1855,40 @@ if os == "linux" and not debug: [OK, CRASH] if os == "mac": [OK, CRASH] [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -1828,22 +1897,40 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -1852,22 +1939,40 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -1876,28 +1981,52 @@ [:limitTest="atDefault";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=2;access="write-only";order="backward"] expected: @@ -1918,22 +2047,40 @@ if os == "mac" and not debug: FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=4;access="write-only";order="backward"] expected: @@ -1954,22 +2101,40 @@ if os == "mac" and not debug: FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=6;access="write-only";order="backward"] expected: @@ -1990,28 +2155,52 @@ if os == "mac" and not debug: FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atDefault";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -2020,22 +2209,40 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -2044,22 +2251,40 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -2068,28 +2293,52 @@ [:limitTest="atMaximum";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=2;access="write-only";order="backward"] expected: @@ -2110,22 +2359,40 @@ if os == "mac" and not debug: FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=4;access="write-only";order="backward"] expected: @@ -2146,22 +2413,40 @@ if os == "mac" and not debug: FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=6;access="write-only";order="backward"] expected: @@ -2182,28 +2467,52 @@ if os == "mac" and not debug: FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="atMaximum";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -2212,22 +2521,40 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -2236,22 +2563,40 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -2260,28 +2605,52 @@ [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=2;access="write-only";order="backward"] expected: @@ -2302,22 +2671,40 @@ if os == "mac" and not debug: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=4;access="write-only";order="backward"] expected: @@ -2338,22 +2725,40 @@ if os == "mac" and not debug: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=6;access="write-only";order="backward"] expected: @@ -2374,10 +2779,16 @@ if os == "mac" and not debug: FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="overMaximum";testValueName="atLimit";visibility=1;access="read-only";order="backward"] @@ -2536,22 +2947,40 @@ [:limitTest="overMaximum";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="write-only";order="backward"] @@ -2560,22 +2989,40 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=2;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="write-only";order="backward"] @@ -2584,22 +3031,40 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=4;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="write-only";order="backward"] @@ -2608,28 +3073,52 @@ [:limitTest="underDefault";testValueName="atLimit";visibility=6;access="write-only";order="shiftByHalf"] [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="atLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=1;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=1;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=1;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=2;access="write-only";order="backward"] expected: @@ -2650,22 +3139,40 @@ if os == "mac" and not debug: FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=3;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=3;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=3;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=4;access="write-only";order="backward"] expected: @@ -2686,22 +3193,40 @@ if os == "mac" and not debug: FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=5;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=5;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=5;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-write";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-write";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="read-write";order="shiftByHalf"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=6;access="write-only";order="backward"] expected: @@ -2722,7 +3247,13 @@ if os == "mac" and not debug: FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=7;access="read-only";order="backward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=7;access="read-only";order="forward"] + expected: + if os == "linux": FAIL [:limitTest="underDefault";testValueName="overLimit";visibility=7;access="read-only";order="shiftByHalf"] + expected: + if os == "linux": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/compute_pass/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/compute_pass/cts.https.html.ini index 19f99d45848d..e8e04f6b27f1 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/compute_pass/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/compute_pass/cts.https.html.ini @@ -41,10 +41,6 @@ [cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:indirect_dispatch_buffer_state:*] implementation-status: backlog - expected: - if os == "linux": CRASH - if os == "mac" and debug: CRASH - if os == "mac" and not debug: [TIMEOUT, CRASH] [:] expected: if os == "win": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/draw/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/draw/cts.https.html.ini index f05b4c39f614..ed5eccd795f3 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/draw/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/draw/cts.https.html.ini @@ -98,6 +98,8 @@ [:smallIndexBuffer=false;smallVertexBuffer=false;smallInstanceBuffer=false] [:smallIndexBuffer=false;smallVertexBuffer=false;smallInstanceBuffer=true] + expected: + if os == "mac": [PASS, FAIL] [:smallIndexBuffer=false;smallVertexBuffer=true;smallInstanceBuffer=false] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/dynamic_state/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/dynamic_state/cts.https.html.ini index ce6dda8a52e7..71c35586743c 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/dynamic_state/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/dynamic_state/cts.https.html.ini @@ -23,9 +23,7 @@ [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,exceeds_attachment_size:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,width_height_nonnegative:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini index b76c6a017e4b..1085d79abc80 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini @@ -92,12 +92,20 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=false] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=true] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:encoderType="render%20pass";call="drawIndirect";callWithZero=false] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:encoderType="render%20pass";call="drawIndirect";callWithZero=true] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_resource_type_mismatch:*] @@ -560,8 +568,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=false;empty=false;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=false;empty=false;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=false;empty=true;renderCommand="draw"] expected: @@ -574,8 +586,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=false;empty=true;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=false;empty=true;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=false;renderCommand="draw"] expected: @@ -588,8 +604,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=false;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=false;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=true;renderCommand="draw"] expected: @@ -602,8 +622,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=true;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto0";swap=true;empty=true;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="auto0";bindingType="auto1";swap=false;empty=false;renderCommand="draw"] expected: @@ -760,8 +784,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="explicit";bindingType="explicit";swap=false;empty=false;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="explicit";bindingType="explicit";swap=false;empty=false;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="explicit";bindingType="explicit";swap=false;empty=true;renderCommand="draw"] expected: @@ -774,8 +802,12 @@ if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="explicit";bindingType="explicit";swap=false;empty=true;renderCommand="drawIndexedIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:pipelineType="explicit";bindingType="explicit";swap=false;empty=true;renderCommand="drawIndirect"] + expected: + if os == "mac": [PASS, TIMEOUT, NOTRUN] [cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:empty_bind_group_layouts_never_requires_empty_bind_groups,compute_pass:*] @@ -889,11 +921,11 @@ [:emptyBindGroupLayoutType="Empty";bindGroupLayoutEntryCount=4;renderCommand="drawIndexedIndirect"] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:emptyBindGroupLayoutType="Empty";bindGroupLayoutEntryCount=4;renderCommand="drawIndirect"] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:emptyBindGroupLayoutType="Null";bindGroupLayoutEntryCount=3;renderCommand="draw"] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/layout_shader_compat/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/layout_shader_compat/cts.https.html.ini index 5027093cef8f..bc779d3e212d 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/layout_shader_compat/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/layout_shader_compat/cts.https.html.ini @@ -3,26 +3,32 @@ expected: if os == "win": [OK, ERROR] [:bindingInPipelineLayout="compareSamp";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="storageBuf"] expected: @@ -33,29 +39,36 @@ if os == "win": FAIL [:bindingInPipelineLayout="compareSamp";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="storageBuf"] expected: @@ -66,29 +79,36 @@ if os == "win": FAIL [:bindingInPipelineLayout="filtSamp";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="storageBuf"] expected: @@ -99,29 +119,36 @@ if os == "win": FAIL [:bindingInPipelineLayout="nonFiltSamp";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="storageBuf"] expected: @@ -132,7 +159,8 @@ if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageBuf";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="readonlyStorageTex";bindingInShader="compareSamp"] expected: FAIL @@ -195,26 +223,32 @@ expected: FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="storageBuf"] expected: @@ -225,29 +259,36 @@ if os == "win": FAIL [:bindingInPipelineLayout="sampledTex";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="storageBuf"] expected: @@ -258,29 +299,36 @@ if os == "win": FAIL [:bindingInPipelineLayout="sampledTexMS";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="storageBuf"] expected: @@ -291,56 +339,70 @@ if os == "win": FAIL [:bindingInPipelineLayout="storageBuf";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="readonlyStorageBuf"] [:bindingInPipelineLayout="uniformBuf";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="uniformBuf";bindingInShader="storageBuf"] [:bindingInPipelineLayout="uniformBuf";bindingInShader="uniformBuf"] [:bindingInPipelineLayout="uniformBuf";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="compareSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="filtSamp"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="readonlyStorageBuf"] expected: if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="readonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="readwriteStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="sampledTex"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="sampledTexMS"] - expected: FAIL + expected: + if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="storageBuf"] expected: @@ -351,4 +413,5 @@ if os == "win": FAIL [:bindingInPipelineLayout="writeonlyStorageTex";bindingInShader="writeonlyStorageTex"] - expected: FAIL + expected: + if os == "win": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_pass_encoder/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_pass_encoder/cts.https.html.ini index a09765f95154..0f6d0e322182 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_pass_encoder/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_pass_encoder/cts.https.html.ini @@ -357,132 +357,196 @@ [cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:unused_bindings_in_pipeline:*] implementation-status: backlog [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] expected: FAIL @@ -677,132 +741,196 @@ expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] expected: FAIL @@ -997,132 +1125,196 @@ expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] expected: FAIL @@ -1317,132 +1509,196 @@ expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] + expected: FAIL [:compute=true;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_render_misc/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_render_misc/cts.https.html.ini index 4caeb5456d15..39b25603387b 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_render_misc/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_render_misc/cts.https.html.ini @@ -204,6 +204,7 @@ expected: FAIL [:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="readonly-storage-texture";textureUsage1="sampled-texture"] expected: FAIL @@ -212,17 +213,22 @@ expected: FAIL [:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="readonly-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="sampled-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="readwrite-storage-texture";textureUsage1="writeonly-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="readonly-storage-texture"] expected: FAIL [:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="sampled-texture";textureUsage1="sampled-texture"] @@ -232,6 +238,7 @@ expected: FAIL [:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=false;textureUsage0="writeonly-storage-texture";textureUsage1="sampled-texture"] @@ -241,6 +248,7 @@ expected: FAIL [:inRenderPass=true;textureUsage0="readonly-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="readonly-storage-texture";textureUsage1="sampled-texture"] expected: FAIL @@ -249,17 +257,22 @@ expected: FAIL [:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="readonly-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="sampled-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="readwrite-storage-texture";textureUsage1="writeonly-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="sampled-texture";textureUsage1="readonly-storage-texture"] expected: FAIL [:inRenderPass=true;textureUsage0="sampled-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="sampled-texture";textureUsage1="sampled-texture"] @@ -270,6 +283,7 @@ expected: FAIL [:inRenderPass=true;textureUsage0="writeonly-storage-texture";textureUsage1="readwrite-storage-texture"] + expected: FAIL [:inRenderPass=true;textureUsage0="writeonly-storage-texture";textureUsage1="sampled-texture"] expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/state/device_lost/destroy/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/state/device_lost/destroy/cts.https.html.ini index 68a8c652f051..5f118a75d072 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/state/device_lost/destroy/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/state/device_lost/destroy/cts.https.html.ini @@ -1038,7 +1038,7 @@ [:format="astc-12x12-unorm";usageType="texture";usageCopy="dst";awaitLost=false] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm";usageType="texture";usageCopy="dst";awaitLost=true] @@ -1073,7 +1073,7 @@ [:format="astc-12x12-unorm";usageType="texture";usageCopy="src-dest";awaitLost=true] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm-srgb";usageType="texture";usageCopy="dst";awaitLost=false] @@ -4653,12 +4653,12 @@ [:format="astc-12x12-unorm";usageType="texture";usageCopy="dst";awaitLost=false] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm";usageType="texture";usageCopy="dst";awaitLost=true] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm";usageType="texture";usageCopy="none";awaitLost=false] @@ -4673,12 +4673,12 @@ [:format="astc-12x12-unorm";usageType="texture";usageCopy="src";awaitLost=false] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm";usageType="texture";usageCopy="src";awaitLost=true] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm";usageType="texture";usageCopy="src-dest";awaitLost=false] @@ -4688,7 +4688,7 @@ [:format="astc-12x12-unorm";usageType="texture";usageCopy="src-dest";awaitLost=true] expected: - if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "linux": [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:format="astc-12x12-unorm-srgb";usageType="texture";usageCopy="dst";awaitLost=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini index 8c93298ca80a..77ab6ae84d41 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/encoding/programmable/pipeline_bind_group_compat/cts.https.html.ini @@ -1,374 +1,142 @@ [cts.https.html?q=webgpu:compat,api,validation,encoding,programmable,pipeline_bind_group_compat:twoDifferentTextureViews,compute_pass,unused:*] - implementation-status: backlog [:textureType="regular"] - expected: FAIL [:textureType="storage"] - expected: FAIL [cts.https.html?q=webgpu:compat,api,validation,encoding,programmable,pipeline_bind_group_compat:twoDifferentTextureViews,compute_pass,used:*] - implementation-status: backlog [:bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="dispatchWorkgroups";textureType="regular"] - expected: FAIL [:bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="dispatchWorkgroupsIndirect";textureType="regular"] - expected: FAIL [:bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="dispatchWorkgroups";textureType="regular"] - expected: FAIL [:bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="dispatchWorkgroupsIndirect";textureType="regular"] - expected: FAIL [:bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="dispatchWorkgroups";textureType="regular"] - expected: FAIL [:bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="dispatchWorkgroups";textureType="storage"] - expected: FAIL [:bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="dispatchWorkgroupsIndirect";textureType="regular"] - expected: FAIL [:bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="dispatchWorkgroupsIndirect";textureType="storage"] - expected: FAIL [:bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="dispatchWorkgroups";textureType="regular"] - expected: FAIL [:bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="dispatchWorkgroups";textureType="storage"] - expected: FAIL [:bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="dispatchWorkgroupsIndirect";textureType="regular"] - expected: FAIL [:bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="dispatchWorkgroupsIndirect";textureType="storage"] - expected: FAIL [cts.https.html?q=webgpu:compat,api,validation,encoding,programmable,pipeline_bind_group_compat:twoDifferentTextureViews,render_pass,unused:*] - implementation-status: backlog [:encoderType="render%20bundle";textureType="regular"] - expected: FAIL [:encoderType="render%20bundle";textureType="storage"] - expected: FAIL [:encoderType="render%20pass";textureType="regular"] - expected: FAIL [:encoderType="render%20pass";textureType="storage"] - expected: FAIL [cts.https.html?q=webgpu:compat,api,validation,encoding,programmable,pipeline_bind_group_compat:twoDifferentTextureViews,render_pass,used:*] - implementation-status: backlog + implementation-status: + if os == "win" and not debug: backlog expected: if os == "win" and not debug: [OK, TIMEOUT] [:encoderType="render%20bundle";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="draw";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexed";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="draw";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexed";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexedIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20bundle";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="binding%20incompatible%20bindGroups%20then%20fix";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="can%20bind%20same%20view%20in%20different%20bindGroups";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="draw";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="draw";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexed";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexed";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndexedIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndirect";textureType="regular"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20different%20bindGroups";useCase="drawIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="draw";textureType="regular"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="draw";textureType="storage"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexed";textureType="regular"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexed";textureType="storage"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexedIndirect";textureType="regular"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndexedIndirect";textureType="storage"] - expected: - if os == "win" and debug: FAIL - if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux": FAIL - if os == "mac": FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndirect";textureType="regular"] - expected: FAIL [:encoderType="render%20pass";bindCase="incompatible%20views%20in%20the%20same%20bindGroup";useCase="drawIndirect";textureType="storage"] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/pipeline_creation/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/pipeline_creation/cts.https.html.ini index 5d2480880dac..ed76b3a81653 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/pipeline_creation/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/compat/api/validation/pipeline_creation/cts.https.html.ini @@ -107,40 +107,28 @@ [cts.https.html?q=webgpu:compat,api,validation,pipeline_creation:texture_sampler_combos:*] implementation-status: backlog [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="compute";async=false] - expected: FAIL [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="compute";async=true] - expected: FAIL [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="fragment";async=false] - expected: FAIL [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="fragment";async=true] - expected: FAIL [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="vertex";async=false] - expected: FAIL [:pass=false;numCombos="2";numNonSampled="max";numExternal=0;useSame=false;stages="vertex";async=true] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="compute";async=false] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="compute";async=true] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="fragment";async=false] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="fragment";async=true] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="vertex";async=false] - expected: FAIL [:pass=false;numCombos="max%2B1";numNonSampled="1";numExternal=0;useSame=false;stages="vertex";async=true] - expected: FAIL [:pass=false;numCombos="max-3";numNonSampled="0";numExternal=1;useSame=false;stages="compute";async=false] expected: FAIL @@ -197,22 +185,16 @@ expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="compute";async=false] - expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="compute";async=true] - expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="fragment";async=false] - expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="fragment";async=true] - expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="vertex";async=false] - expected: FAIL [:pass=true;numCombos="1";numNonSampled="max";numExternal=0;useSame=false;stages="vertex";async=true] - expected: FAIL [:pass=true;numCombos="max";numNonSampled="1";numExternal=0;useSame=false;stages="compute";async=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/distance/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/distance/cts.https.html.ini index a517949db285..c9f0390f3d2e 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/distance/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/distance/cts.https.html.ini @@ -30,12 +30,8 @@ if os == "mac": FAIL [:inputSource="storage_r"] - expected: - if os == "mac": FAIL [:inputSource="storage_rw"] - expected: - if os == "mac": FAIL [:inputSource="uniform"] expected: @@ -94,22 +90,14 @@ [:inputSource="storage_r"] expected: if os == "win" and debug: [PASS, FAIL] - if os == "win" and not debug: FAIL - if os == "linux": FAIL - if os == "mac": FAIL [:inputSource="storage_rw"] expected: if os == "win" and debug: [PASS, FAIL] - if os == "win" and not debug: FAIL - if os == "linux": FAIL - if os == "mac": FAIL [:inputSource="uniform"] expected: if os == "win" and debug: [PASS, FAIL] - if os == "win" and not debug: FAIL - if os == "linux": FAIL if os == "mac": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini index 830420cc45ed..43dec8a3b3c9 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini @@ -4,10 +4,7 @@ expected: FAIL [:inputSource="storage_r"] - expected: FAIL [:inputSource="storage_rw"] - expected: FAIL [:inputSource="uniform"] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini index 48cbcadde21e..d40b93540e64 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini @@ -4,10 +4,7 @@ expected: FAIL [:inputSource="storage_r"] - expected: FAIL [:inputSource="storage_rw"] - expected: FAIL [:inputSource="uniform"] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMinMax/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMinMax/cts.https.html.ini index d9243bb6d5d8..43ce3cdbe9f6 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMinMax/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMinMax/cts.https.html.ini @@ -1552,16 +1552,26 @@ if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=176;type="f16";op="subgroupMin";wgSize=[128,1,1\]] + expected: + if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=176;type="f16";op="subgroupMin";wgSize=[64,2,1\]] + expected: + if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=176;type="f32";op="subgroupMax";wgSize=[128,1,1\]] + expected: + if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=176;type="f32";op="subgroupMax";wgSize=[64,2,1\]] + expected: + if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=176;type="f32";op="subgroupMin";wgSize=[128,1,1\]] [:case=176;type="f32";op="subgroupMin";wgSize=[64,2,1\]] + expected: + if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:case=177;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: @@ -1709,19 +1719,19 @@ [:case=181;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=181;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=181;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=181;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=181;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: @@ -1729,7 +1739,7 @@ [:case=181;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=181;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: @@ -1741,163 +1751,163 @@ [:case=182;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=182;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=183;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=184;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=185;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f16";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=186;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: @@ -1909,27 +1919,27 @@ [:case=187;type="f16";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f16";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f32";op="subgroupMax";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f32";op="subgroupMax";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f32";op="subgroupMin";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=187;type="f32";op="subgroupMin";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=188;type="f16";op="subgroupMax";wgSize=[128,1,1\]] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMul/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMul/cts.https.html.ini index 2eadaaf110b1..2ca7bdb68658 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMul/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/subgroupMul/cts.https.html.ini @@ -2373,11 +2373,11 @@ [:case=361;type="f16";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=361;type="f16";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=361;type="f32";wgSize=[128,1,1\]] expected: @@ -2385,23 +2385,23 @@ [:case=361;type="f32";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=362;type="f16";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=362;type="f16";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=362;type="f32";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=362;type="f32";wgSize=[64,2,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=363;type="f16";wgSize=[128,1,1\]] expected: @@ -2413,7 +2413,7 @@ [:case=363;type="f32";wgSize=[128,1,1\]] expected: - if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] + if os == "mac": [PASS, TIMEOUT, NOTRUN] [:case=363;type="f32";wgSize=[64,2,1\]] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGather/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGather/cts.https.html.ini index 37a7d00a3e03..c2d3877fabd3 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGather/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGather/cts.https.html.ini @@ -3417,61 +3417,73 @@ [:stage="f";format="astc-10x10-unorm";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x10-unorm-srgb";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -3602,11 +3614,13 @@ [:stage="f";format="astc-10x8-unorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -3627,151 +3641,181 @@ [:stage="f";format="astc-10x8-unorm-srgb";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm-srgb";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm-srgb";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm-srgb";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm-srgb";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-10x8-unorm-srgb";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x10-unorm-srgb";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="f";format="astc-12x12-unorm-srgb";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8044,36 +8088,43 @@ [:stage="v";format="r8snorm";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8snorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8snorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8snorm";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8snorm";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8snorm";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8uint";filt="nearest";mode="c"] expected: + if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8085,36 +8136,43 @@ [:stage="v";format="r8uint";filt="nearest";mode="r"] expected: + if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="linear";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="linear";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="linear";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="nearest";mode="c"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="nearest";mode="m"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="r8unorm";filt="nearest";mode="r"] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8139,18 +8197,21 @@ [:stage="v";format="rg16float";filt="linear";mode="c"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="rg16float";filt="linear";mode="m"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="rg16float";filt="linear";mode="r"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8163,12 +8224,14 @@ [:stage="v";format="rg16float";filt="nearest";mode="m"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="rg16float";filt="nearest";mode="r"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8490,6 +8553,7 @@ [:stage="v";format="rgba16sint";filt="nearest";mode="c"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] @@ -8510,18 +8574,21 @@ [:stage="v";format="rgba16uint";filt="nearest";mode="c"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="rgba16uint";filt="nearest";mode="m"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="rgba16uint";filt="nearest";mode="r"] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] + if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] if os == "linux": [TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureLoad/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureLoad/cts.https.html.ini index 8cd32a0c6655..894245bb3b9f 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureLoad/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureLoad/cts.https.html.ini @@ -2797,416 +2797,624 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_1d:*] + implementation-status: backlog [:stage="c";format="bgra8unorm"] + expected: FAIL [:stage="c";format="r32float"] + expected: FAIL [:stage="c";format="r32sint"] + expected: FAIL [:stage="c";format="r32uint"] + expected: FAIL [:stage="c";format="rg32float"] + expected: FAIL [:stage="c";format="rg32sint"] + expected: FAIL [:stage="c";format="rg32uint"] + expected: FAIL [:stage="c";format="rgba16float"] + expected: FAIL [:stage="c";format="rgba16sint"] + expected: FAIL [:stage="c";format="rgba16uint"] + expected: FAIL [:stage="c";format="rgba32float"] + expected: FAIL [:stage="c";format="rgba32sint"] + expected: FAIL [:stage="c";format="rgba32uint"] + expected: FAIL [:stage="c";format="rgba8sint"] + expected: FAIL [:stage="c";format="rgba8snorm"] + expected: FAIL [:stage="c";format="rgba8uint"] + expected: FAIL [:stage="c";format="rgba8unorm"] + expected: FAIL [:stage="f";format="bgra8unorm"] + expected: FAIL [:stage="f";format="r32float"] + expected: FAIL [:stage="f";format="r32sint"] + expected: FAIL [:stage="f";format="r32uint"] + expected: FAIL [:stage="f";format="rg32float"] + expected: FAIL [:stage="f";format="rg32sint"] + expected: FAIL [:stage="f";format="rg32uint"] + expected: FAIL [:stage="f";format="rgba16float"] + expected: FAIL [:stage="f";format="rgba16sint"] + expected: FAIL [:stage="f";format="rgba16uint"] + expected: FAIL [:stage="f";format="rgba32float"] + expected: FAIL [:stage="f";format="rgba32sint"] + expected: FAIL [:stage="f";format="rgba32uint"] + expected: FAIL [:stage="f";format="rgba8sint"] + expected: FAIL [:stage="f";format="rgba8snorm"] + expected: FAIL [:stage="f";format="rgba8uint"] + expected: FAIL [:stage="f";format="rgba8unorm"] + expected: FAIL [:stage="v";format="bgra8unorm"] + expected: FAIL [:stage="v";format="r32float"] + expected: FAIL [:stage="v";format="r32sint"] + expected: FAIL [:stage="v";format="r32uint"] + expected: FAIL [:stage="v";format="rg32float"] + expected: FAIL [:stage="v";format="rg32sint"] + expected: FAIL [:stage="v";format="rg32uint"] + expected: FAIL [:stage="v";format="rgba16float"] + expected: FAIL [:stage="v";format="rgba16sint"] + expected: FAIL [:stage="v";format="rgba16uint"] + expected: FAIL [:stage="v";format="rgba32float"] + expected: FAIL [:stage="v";format="rgba32sint"] + expected: FAIL [:stage="v";format="rgba32uint"] + expected: FAIL [:stage="v";format="rgba8sint"] + expected: FAIL [:stage="v";format="rgba8snorm"] + expected: FAIL [:stage="v";format="rgba8uint"] + expected: FAIL [:stage="v";format="rgba8unorm"] + expected: FAIL [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_2d:*] + implementation-status: backlog [:stage="c";format="bgra8unorm"] + expected: FAIL [:stage="c";format="r32float"] + expected: FAIL [:stage="c";format="r32sint"] + expected: FAIL [:stage="c";format="r32uint"] + expected: FAIL [:stage="c";format="rg32float"] + expected: FAIL [:stage="c";format="rg32sint"] + expected: FAIL [:stage="c";format="rg32uint"] + expected: FAIL [:stage="c";format="rgba16float"] + expected: FAIL [:stage="c";format="rgba16sint"] + expected: FAIL [:stage="c";format="rgba16uint"] + expected: FAIL [:stage="c";format="rgba32float"] + expected: FAIL [:stage="c";format="rgba32sint"] + expected: FAIL [:stage="c";format="rgba32uint"] + expected: FAIL [:stage="c";format="rgba8sint"] + expected: FAIL [:stage="c";format="rgba8snorm"] + expected: FAIL [:stage="c";format="rgba8uint"] + expected: FAIL [:stage="c";format="rgba8unorm"] + expected: FAIL [:stage="f";format="bgra8unorm"] + expected: FAIL [:stage="f";format="r32float"] + expected: FAIL [:stage="f";format="r32sint"] + expected: FAIL [:stage="f";format="r32uint"] + expected: FAIL [:stage="f";format="rg32float"] + expected: FAIL [:stage="f";format="rg32sint"] + expected: FAIL [:stage="f";format="rg32uint"] + expected: FAIL [:stage="f";format="rgba16float"] + expected: FAIL [:stage="f";format="rgba16sint"] + expected: FAIL [:stage="f";format="rgba16uint"] + expected: FAIL [:stage="f";format="rgba32float"] + expected: FAIL [:stage="f";format="rgba32sint"] + expected: FAIL [:stage="f";format="rgba32uint"] + expected: FAIL [:stage="f";format="rgba8sint"] + expected: FAIL [:stage="f";format="rgba8snorm"] + expected: FAIL [:stage="f";format="rgba8uint"] + expected: FAIL [:stage="f";format="rgba8unorm"] + expected: FAIL [:stage="v";format="bgra8unorm"] + expected: FAIL [:stage="v";format="r32float"] + expected: FAIL [:stage="v";format="r32sint"] + expected: FAIL [:stage="v";format="r32uint"] + expected: FAIL [:stage="v";format="rg32float"] + expected: FAIL [:stage="v";format="rg32sint"] + expected: FAIL [:stage="v";format="rg32uint"] + expected: FAIL [:stage="v";format="rgba16float"] + expected: FAIL [:stage="v";format="rgba16sint"] + expected: FAIL [:stage="v";format="rgba16uint"] + expected: FAIL [:stage="v";format="rgba32float"] + expected: FAIL [:stage="v";format="rgba32sint"] + expected: FAIL [:stage="v";format="rgba32uint"] + expected: FAIL [:stage="v";format="rgba8sint"] + expected: FAIL [:stage="v";format="rgba8snorm"] + expected: FAIL [:stage="v";format="rgba8uint"] + expected: FAIL [:stage="v";format="rgba8unorm"] + expected: FAIL [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_2d_array:*] + implementation-status: backlog [:stage="c";format="bgra8unorm"] + expected: FAIL [:stage="c";format="r32float"] + expected: FAIL [:stage="c";format="r32sint"] + expected: FAIL [:stage="c";format="r32uint"] + expected: FAIL [:stage="c";format="rg32float"] + expected: FAIL [:stage="c";format="rg32sint"] + expected: FAIL [:stage="c";format="rg32uint"] + expected: FAIL [:stage="c";format="rgba16float"] + expected: FAIL [:stage="c";format="rgba16sint"] + expected: FAIL [:stage="c";format="rgba16uint"] + expected: FAIL [:stage="c";format="rgba32float"] + expected: FAIL [:stage="c";format="rgba32sint"] + expected: FAIL [:stage="c";format="rgba32uint"] + expected: FAIL [:stage="c";format="rgba8sint"] + expected: FAIL [:stage="c";format="rgba8snorm"] + expected: FAIL [:stage="c";format="rgba8uint"] + expected: FAIL [:stage="c";format="rgba8unorm"] + expected: FAIL [:stage="f";format="bgra8unorm"] + expected: FAIL [:stage="f";format="r32float"] + expected: FAIL [:stage="f";format="r32sint"] + expected: FAIL [:stage="f";format="r32uint"] + expected: FAIL [:stage="f";format="rg32float"] + expected: FAIL [:stage="f";format="rg32sint"] + expected: FAIL [:stage="f";format="rg32uint"] + expected: FAIL [:stage="f";format="rgba16float"] + expected: FAIL [:stage="f";format="rgba16sint"] + expected: FAIL [:stage="f";format="rgba16uint"] + expected: FAIL [:stage="f";format="rgba32float"] + expected: FAIL [:stage="f";format="rgba32sint"] + expected: FAIL [:stage="f";format="rgba32uint"] + expected: FAIL [:stage="f";format="rgba8sint"] + expected: FAIL [:stage="f";format="rgba8snorm"] + expected: FAIL [:stage="f";format="rgba8uint"] + expected: FAIL [:stage="f";format="rgba8unorm"] + expected: FAIL [:stage="v";format="bgra8unorm"] + expected: FAIL [:stage="v";format="r32float"] + expected: FAIL [:stage="v";format="r32sint"] + expected: FAIL [:stage="v";format="r32uint"] + expected: FAIL [:stage="v";format="rg32float"] + expected: FAIL [:stage="v";format="rg32sint"] + expected: FAIL [:stage="v";format="rg32uint"] + expected: FAIL [:stage="v";format="rgba16float"] + expected: FAIL [:stage="v";format="rgba16sint"] + expected: FAIL [:stage="v";format="rgba16uint"] + expected: FAIL [:stage="v";format="rgba32float"] + expected: FAIL [:stage="v";format="rgba32sint"] + expected: FAIL [:stage="v";format="rgba32uint"] + expected: FAIL [:stage="v";format="rgba8sint"] + expected: FAIL [:stage="v";format="rgba8snorm"] + expected: FAIL [:stage="v";format="rgba8uint"] + expected: FAIL [:stage="v";format="rgba8unorm"] + expected: FAIL [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:storage_textures_3d:*] + implementation-status: backlog [:stage="c";format="bgra8unorm"] + expected: FAIL [:stage="c";format="r32float"] + expected: FAIL [:stage="c";format="r32sint"] + expected: FAIL [:stage="c";format="r32uint"] + expected: FAIL [:stage="c";format="rg32float"] + expected: FAIL [:stage="c";format="rg32sint"] + expected: FAIL [:stage="c";format="rg32uint"] + expected: FAIL [:stage="c";format="rgba16float"] + expected: FAIL [:stage="c";format="rgba16sint"] + expected: FAIL [:stage="c";format="rgba16uint"] + expected: FAIL [:stage="c";format="rgba32float"] + expected: FAIL [:stage="c";format="rgba32sint"] + expected: FAIL [:stage="c";format="rgba32uint"] + expected: FAIL [:stage="c";format="rgba8sint"] + expected: FAIL [:stage="c";format="rgba8snorm"] + expected: FAIL [:stage="c";format="rgba8uint"] + expected: FAIL [:stage="c";format="rgba8unorm"] + expected: FAIL [:stage="f";format="bgra8unorm"] + expected: FAIL [:stage="f";format="r32float"] + expected: FAIL [:stage="f";format="r32sint"] + expected: FAIL [:stage="f";format="r32uint"] + expected: FAIL [:stage="f";format="rg32float"] + expected: FAIL [:stage="f";format="rg32sint"] + expected: FAIL [:stage="f";format="rg32uint"] + expected: FAIL [:stage="f";format="rgba16float"] + expected: FAIL [:stage="f";format="rgba16sint"] + expected: FAIL [:stage="f";format="rgba16uint"] + expected: FAIL [:stage="f";format="rgba32float"] + expected: FAIL [:stage="f";format="rgba32sint"] + expected: FAIL [:stage="f";format="rgba32uint"] + expected: FAIL [:stage="f";format="rgba8sint"] + expected: FAIL [:stage="f";format="rgba8snorm"] + expected: FAIL [:stage="f";format="rgba8uint"] + expected: FAIL [:stage="f";format="rgba8unorm"] + expected: FAIL [:stage="v";format="bgra8unorm"] + expected: FAIL [:stage="v";format="r32float"] + expected: FAIL [:stage="v";format="r32sint"] + expected: FAIL [:stage="v";format="r32uint"] + expected: FAIL [:stage="v";format="rg32float"] + expected: FAIL [:stage="v";format="rg32sint"] + expected: FAIL [:stage="v";format="rg32uint"] + expected: FAIL [:stage="v";format="rgba16float"] + expected: FAIL [:stage="v";format="rgba16sint"] + expected: FAIL [:stage="v";format="rgba16uint"] + expected: FAIL [:stage="v";format="rgba32float"] + expected: FAIL [:stage="v";format="rgba32sint"] + expected: FAIL [:stage="v";format="rgba32uint"] + expected: FAIL [:stage="v";format="rgba8sint"] + expected: FAIL [:stage="v";format="rgba8snorm"] + expected: FAIL [:stage="v";format="rgba8uint"] + expected: FAIL [:stage="v";format="rgba8unorm"] + expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleLevel/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleLevel/cts.https.html.ini index 762a79cc3ae9..b83d327f35ca 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleLevel/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleLevel/cts.https.html.ini @@ -2329,52 +2329,100 @@ expected: if debug: TIMEOUT [:stage="c";format="astc-10x10-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x10-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x10-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x10-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x5-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x5-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x5-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x5-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x6-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x6-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x6-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x6-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x8-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x8-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x8-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-10x8-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x10-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x10-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x10-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x10-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x12-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x12-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x12-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-12x12-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-4x4-unorm";dim="cube";filt="linear"] @@ -2421,24 +2469,44 @@ [:stage="c";format="astc-8x5-unorm";dim="cube";filt="nearest"] [:stage="c";format="astc-8x5-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x5-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x6-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x6-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x6-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x6-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x8-unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x8-unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x8-unorm-srgb";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="astc-8x8-unorm-srgb";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="c";format="bc1-rgba-unorm";dim="cube";filt="linear"] expected: @@ -3289,20 +3357,36 @@ if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8snorm";dim="3d";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8snorm";dim="3d";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8snorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8snorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8unorm";dim="3d";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8unorm";dim="3d";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8unorm";dim="cube";filt="linear"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="r8unorm";dim="cube";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="rg11b10ufloat";dim="3d";filt="linear"] expected: @@ -3389,6 +3473,8 @@ if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="rg8unorm";dim="3d";filt="nearest"] + expected: + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="rg8unorm";dim="cube";filt="linear"] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/call/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/call/cts.https.html.ini index 13d439459c60..9f10b30c9e48 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/call/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/call/cts.https.html.ini @@ -1,10 +1,7 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,call:arg_eval:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,call:arg_eval_logical_and:*] @@ -26,35 +23,24 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,call:arg_eval_pointers:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,call:call_basic:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,call:call_nested:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,call:call_repeated:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/complex/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/complex/cts.https.html.ini index 4a177c126518..5ecb2266b061 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/complex/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/complex/cts.https.html.ini @@ -1,6 +1,4 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,complex:continue_in_switch_in_for_loop:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/eval_order/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/eval_order/cts.https.html.ini index 58ac5f19812a..fc4196681bb5 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/eval_order/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/eval_order/cts.https.html.ini @@ -1,151 +1,101 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_compound_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_constructor:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_increment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_compound_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_constructor:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_increment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_lhs_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_lhs_member_assignment:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_via_ptrs:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_via_struct_members:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_C_C_R:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_C_R_C:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_R_C_C:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_R_C_C_C:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_lhs_const:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_parenthesized_expr:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_rhs_const:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:bitwise_and:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:bitwise_or:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:builtin_fn_args:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:logical_and:*] @@ -161,54 +111,36 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:matrix_index:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:matrix_index_via_ptr:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_builtin_fn_args:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_fn_args:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_struct_constructor:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_vec4_constructor:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:struct_constructor:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:user_fn_args:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:vec4_constructor:*] - implementation-status: backlog [:] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/for/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/for/cts.https.html.ini index 9bb0af23a4ef..d7027d12d74f 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/for/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/for/cts.https.html.ini @@ -1,7 +1,5 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_basic:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] @@ -16,33 +14,25 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_condition:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_continuing:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_initializer:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_condition:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] @@ -57,17 +47,13 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_continuing:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,for:for_initializer:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/if/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/if/cts.https.html.ini index dd0e0896c787..449b249b38b1 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/if/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/if/cts.https.html.ini @@ -1,30 +1,22 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,if:else_if:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,if:if_false:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,if:if_true:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,if:nested_if_else:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/loop/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/loop/cts.https.html.ini index c925c7ef701e..b212e583e77d 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/loop/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/loop/cts.https.html.ini @@ -1,7 +1,5 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,loop:loop_break:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] @@ -34,9 +32,7 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,loop:loop_continuing_basic:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/phony/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/phony/cts.https.html.ini index 76d80994969b..c78d08943075 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/phony/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/phony/cts.https.html.ini @@ -1,43 +1,28 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_basic:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_builtin:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_must_use:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_nested:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL [cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_nested_must_use:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/return/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/return/cts.https.html.ini index b2c873e5ddbf..1d8f25b255d5 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/return/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/return/cts.https.html.ini @@ -8,9 +8,9 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,return:return_conditional_false:*] - implementation-status: backlog + implementation-status: + if os == "win" and not debug: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] expected: @@ -18,9 +18,9 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,return:return_conditional_true:*] - implementation-status: backlog + implementation-status: + if os == "win" and not debug: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/switch/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/switch/cts.https.html.ini index 35b84fd114fb..e1629411a6e9 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/switch/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/switch/cts.https.html.ini @@ -1,46 +1,34 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_default:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_default_only:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_inside_loop_with_continue:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_multiple_case:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] [cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_multiple_case_default:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/while/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/while/cts.https.html.ini index 21074cbf709d..e01b303fa677 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/while/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/flow_control/while/cts.https.html.ini @@ -1,7 +1,5 @@ [cts.https.html?q=webgpu:shader,execution,flow_control,while:while_basic:*] - implementation-status: backlog [:preventValueOptimizations=false] - expected: FAIL [:preventValueOptimizations=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/barrier/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/barrier/cts.https.html.ini index 0320102ba712..1ab528ba16f8 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/barrier/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/barrier/cts.https.html.ini @@ -1,6 +1,5 @@ [cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_load_store:*] - implementation-status: - if os == "win" and not debug: backlog + implementation-status: backlog expected: if os == "win" and not debug: [OK, TIMEOUT] [:accessValueType="f16";memType="non_atomic_storage";accessPair="rw";normalBarrier=false] @@ -24,8 +23,7 @@ if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] [:accessValueType="u32";memType="non_atomic_texture";accessPair="rw";normalBarrier=true] - expected: - if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:accessValueType="u32";memType="non_atomic_workgroup";accessPair="rw";normalBarrier=false] expected: @@ -35,8 +33,7 @@ [cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_load:*] - implementation-status: - if os == "win" and not debug: backlog + implementation-status: backlog expected: if os == "win" and not debug: [OK, TIMEOUT] [:accessValueType="f16";memType="non_atomic_storage";accessPair="wr";normalBarrier=false] @@ -60,8 +57,7 @@ if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] [:accessValueType="u32";memType="non_atomic_texture";accessPair="wr";normalBarrier=true] - expected: - if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN] + expected: FAIL [:accessValueType="u32";memType="non_atomic_workgroup";accessPair="wr";normalBarrier=false] expected: @@ -71,6 +67,7 @@ [cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_store:*] + implementation-status: backlog [:accessValueType="f16";memType="non_atomic_storage";accessPair="ww";normalBarrier=false] [:accessValueType="f16";memType="non_atomic_storage";accessPair="ww";normalBarrier=true] @@ -90,6 +87,7 @@ [:accessValueType="u32";memType="non_atomic_texture";accessPair="ww";normalBarrier=false] [:accessValueType="u32";memType="non_atomic_texture";accessPair="ww";normalBarrier=true] + expected: FAIL [:accessValueType="u32";memType="non_atomic_workgroup";accessPair="ww";normalBarrier=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/texture_intra_invocation_coherence/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/texture_intra_invocation_coherence/cts.https.html.ini index 631f5a3a9ef6..0ad61a4ace99 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/texture_intra_invocation_coherence/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/memory_model/texture_intra_invocation_coherence/cts.https.html.ini @@ -1,24 +1,37 @@ [cts.https.html?q=webgpu:shader,execution,memory_model,texture_intra_invocation_coherence:texture_intra_invocation_coherence:*] + implementation-status: backlog [:format="r32float";dim="1d"] + expected: FAIL [:format="r32float";dim="2d"] + expected: FAIL [:format="r32float";dim="2d-array"] + expected: FAIL [:format="r32float";dim="3d"] + expected: FAIL [:format="r32sint";dim="1d"] + expected: FAIL [:format="r32sint";dim="2d"] + expected: FAIL [:format="r32sint";dim="2d-array"] + expected: FAIL [:format="r32sint";dim="3d"] + expected: FAIL [:format="r32uint";dim="1d"] + expected: FAIL [:format="r32uint";dim="2d"] + expected: FAIL [:format="r32uint";dim="2d-array"] + expected: FAIL [:format="r32uint";dim="3d"] + expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/robust_access_vertex/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/robust_access_vertex/cts.https.html.ini index d3a2fce18006..dc024f976f89 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/robust_access_vertex/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/robust_access_vertex/cts.https.html.ini @@ -382,8 +382,6 @@ [:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true] @@ -392,8 +390,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=true] @@ -402,8 +398,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true] @@ -412,8 +406,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=true] @@ -422,8 +414,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x2";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true] @@ -432,8 +422,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=true] @@ -442,8 +430,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x3";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true] @@ -452,8 +438,6 @@ [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true] [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false] - expected: - if os == "win": FAIL [:indexed=true;indirect=true;drawCallTestParameter="baseVertex";type="float32x4";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/var/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/var/cts.https.html.ini index 00fc1f7fd02a..a013493950a0 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/var/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/var/cts.https.html.ini @@ -1487,6 +1487,7 @@ [:stage="vertex";kind="handle_ro"] [:stage="vertex";kind="handle_rw"] + expected: FAIL [:stage="vertex";kind="handle_wo"] expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/add_sub_mul/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/add_sub_mul/cts.https.html.ini index 28708043a772..f2c5ae4fd61e 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/add_sub_mul/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/add_sub_mul/cts.https.html.ini @@ -16,7 +16,6 @@ [:op="add";type="sampler";control=false] [:op="add";type="sampler";control=true] - expected: FAIL [:op="add";type="struct";control=false] @@ -42,7 +41,6 @@ [:op="mul";type="sampler";control=false] [:op="mul";type="sampler";control=true] - expected: FAIL [:op="mul";type="struct";control=false] @@ -68,7 +66,6 @@ [:op="sub";type="sampler";control=false] [:op="sub";type="sampler";control=true] - expected: FAIL [:op="sub";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/and_or_xor/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/and_or_xor/cts.https.html.ini index 7c9a7530f6e1..cac39529b4c5 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/and_or_xor/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/and_or_xor/cts.https.html.ini @@ -20,7 +20,6 @@ [:op="and";type="sampler";control=false] [:op="and";type="sampler";control=true] - expected: FAIL [:op="and";type="struct";control=false] @@ -50,7 +49,6 @@ [:op="or";type="sampler";control=false] [:op="or";type="sampler";control=true] - expected: FAIL [:op="or";type="struct";control=false] @@ -80,7 +78,6 @@ [:op="xor";type="sampler";control=false] [:op="xor";type="sampler";control=true] - expected: FAIL [:op="xor";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/bitwise_shift/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/bitwise_shift/cts.https.html.ini index 3be10a925120..77e1fdb71d0e 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/bitwise_shift/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/bitwise_shift/cts.https.html.ini @@ -20,7 +20,6 @@ [:op="%3C%3C";type="sampler";control=false] [:op="%3C%3C";type="sampler";control=true] - expected: FAIL [:op="%3C%3C";type="struct";control=false] @@ -50,7 +49,6 @@ [:op="%3E%3E";type="sampler";control=false] [:op="%3E%3E";type="sampler";control=true] - expected: FAIL [:op="%3E%3E";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/comparison/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/comparison/cts.https.html.ini index e2c029b21e09..dd59a7f6f694 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/comparison/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/comparison/cts.https.html.ini @@ -20,7 +20,6 @@ [:op="eq";type="sampler";control=false] [:op="eq";type="sampler";control=true] - expected: FAIL [:op="eq";type="struct";control=false] @@ -50,7 +49,6 @@ [:op="ge";type="sampler";control=false] [:op="ge";type="sampler";control=true] - expected: FAIL [:op="ge";type="struct";control=false] @@ -80,7 +78,6 @@ [:op="gt";type="sampler";control=false] [:op="gt";type="sampler";control=true] - expected: FAIL [:op="gt";type="struct";control=false] @@ -110,7 +107,6 @@ [:op="le";type="sampler";control=false] [:op="le";type="sampler";control=true] - expected: FAIL [:op="le";type="struct";control=false] @@ -140,7 +136,6 @@ [:op="lt";type="sampler";control=false] [:op="lt";type="sampler";control=true] - expected: FAIL [:op="lt";type="struct";control=false] @@ -170,7 +165,6 @@ [:op="ne";type="sampler";control=false] [:op="ne";type="sampler";control=true] - expected: FAIL [:op="ne";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/div_rem/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/div_rem/cts.https.html.ini index 539abf322879..3ad41180a740 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/div_rem/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/div_rem/cts.https.html.ini @@ -16,7 +16,6 @@ [:op="div";type="sampler";control=false] [:op="div";type="sampler";control=true] - expected: FAIL [:op="div";type="struct";control=false] @@ -42,7 +41,6 @@ [:op="rem";type="sampler";control=false] [:op="rem";type="sampler";control=true] - expected: FAIL [:op="rem";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/short_circuiting_and_or/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/short_circuiting_and_or/cts.https.html.ini index 8ee7572caedb..191be8d43fa0 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/short_circuiting_and_or/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/binary/short_circuiting_and_or/cts.https.html.ini @@ -177,7 +177,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,binary,short_circuiting_and_or:invalid_types:*] - implementation-status: backlog [:op="%26%26";type="array";control=false] [:op="%26%26";type="array";control=true] @@ -197,7 +196,6 @@ [:op="%26%26";type="sampler";control=false] [:op="%26%26";type="sampler";control=true] - expected: FAIL [:op="%26%26";type="struct";control=false] @@ -226,7 +224,6 @@ [:op="%7C%7C";type="sampler";control=false] [:op="%7C%7C";type="sampler";control=true] - expected: FAIL [:op="%7C%7C";type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4I8Packed/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4I8Packed/cts.https.html.ini index a8d9e40ed1a7..44d974fbce93 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4I8Packed/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4I8Packed/cts.https.html.ini @@ -33,7 +33,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot4I8Packed:must_use:*] + implementation-status: backlog [:use=false] + expected: FAIL [:use=true] @@ -45,8 +47,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot4I8Packed:unsupported:*] - implementation-status: backlog [:requires=false] - expected: FAIL [:requires=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4U8Packed/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4U8Packed/cts.https.html.ini index 49bd019a1c40..80523680ec45 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4U8Packed/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/dot4U8Packed/cts.https.html.ini @@ -33,7 +33,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot4U8Packed:must_use:*] + implementation-status: backlog [:use=false] + expected: FAIL [:use=true] @@ -45,8 +47,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot4U8Packed:unsupported:*] - implementation-status: backlog [:requires=false] - expected: FAIL [:requires=true] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8/cts.https.html.ini index f41d1d470d76..90e7ed0b7588 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8/cts.https.html.ini @@ -1,4 +1,5 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8:args:*] + implementation-status: backlog [:arg="bad_0args"] [:arg="bad_0array"] @@ -24,6 +25,7 @@ [:arg="bad_2args"] [:arg="good"] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8:must_use:*] @@ -35,9 +37,12 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini index db9db0bcfcb7..27f5e04ccac7 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xI8Clamp/cts.https.html.ini @@ -1,4 +1,5 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8Clamp:args:*] + implementation-status: backlog [:arg="bad_0args"] [:arg="bad_0array"] @@ -24,20 +25,24 @@ [:arg="bad_2args"] [:arg="good"] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8Clamp:must_use:*] implementation-status: backlog [:use=false] + expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8Clamp:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xI8Clamp:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8/cts.https.html.ini index db0f08d7fb8f..52a1c188b5bf 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8/cts.https.html.ini @@ -1,4 +1,5 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8:args:*] + implementation-status: backlog [:arg="bad_0args"] [:arg="bad_0array"] @@ -24,6 +25,7 @@ [:arg="bad_2args"] [:arg="good"] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8:must_use:*] @@ -35,9 +37,12 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini index 5475d8264792..a8651696f3e3 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/pack4xU8Clamp/cts.https.html.ini @@ -1,4 +1,5 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8Clamp:args:*] + implementation-status: backlog [:arg="bad_0args"] [:arg="bad_0array"] @@ -24,20 +25,24 @@ [:arg="bad_2args"] [:arg="good"] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8Clamp:must_use:*] implementation-status: backlog [:use=false] + expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8Clamp:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,pack4xU8Clamp:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGather/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGather/cts.https.html.ini index 686d77ba8602..febf5a2a644e 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGather/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGather/cts.https.html.ini @@ -1197,7 +1197,8 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGather:coords_argument:*] - implementation-status: backlog + implementation-status: + if os == "win" and debug: backlog [:textureType="texture_2d";sampleType="vec4%3Cf32%3E";coordType="abstract-float"] expected: if os == "win" and debug: [PASS, FAIL] @@ -1231,7 +1232,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1342,7 +1342,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d";sampleType="vec4%3Ci32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d";sampleType="vec4%3Ci32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1453,7 +1452,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d";sampleType="vec4%3Cu32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d";sampleType="vec4%3Cu32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1564,7 +1562,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d_array";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1675,7 +1672,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d_array";sampleType="vec4%3Ci32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array";sampleType="vec4%3Ci32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1786,7 +1782,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_2d_array";sampleType="vec4%3Cu32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array";sampleType="vec4%3Cu32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -1925,7 +1920,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2036,7 +2030,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube";sampleType="vec4%3Ci32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube";sampleType="vec4%3Ci32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2147,7 +2140,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube";sampleType="vec4%3Cu32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube";sampleType="vec4%3Cu32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2258,7 +2250,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube_array";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2369,7 +2360,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube_array";sampleType="vec4%3Ci32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array";sampleType="vec4%3Ci32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2480,7 +2470,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_cube_array";sampleType="vec4%3Cu32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array";sampleType="vec4%3Cu32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2563,7 +2552,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_depth_2d";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -2674,7 +2662,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_depth_2d_array";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";sampleType="vec4%3Cf32%3E";coordType="vec2%3Cbool%3E"] expected: @@ -2813,7 +2800,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_depth_cube";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2924,7 +2910,6 @@ if os == "win" and debug: [PASS, FAIL] [:textureType="texture_depth_cube_array";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";sampleType="vec4%3Cf32%3E";coordType="vec3%3Cbool%3E"] expected: @@ -2981,7 +2966,6 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGather:offset_argument,non_const:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGatherCompare/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGatherCompare/cts.https.html.ini index c98010e269da..641cb6c14519 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGatherCompare/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureGatherCompare/cts.https.html.ini @@ -1,9 +1,7 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:array_index_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_2d_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="bool"] @@ -12,10 +10,8 @@ [:textureType="texture_depth_2d_array";arrayIndexType="f32"] [:textureType="texture_depth_2d_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -62,7 +58,6 @@ [:textureType="texture_depth_cube_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_cube_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="bool"] @@ -71,10 +66,8 @@ [:textureType="texture_depth_cube_array";arrayIndexType="f32"] [:textureType="texture_depth_cube_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -120,7 +113,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:coords_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";coordType="abstract-float"] [:textureType="texture_depth_2d";coordType="abstract-int"] @@ -136,17 +128,14 @@ [:textureType="texture_depth_2d";coordType="u32"] [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Ci32%3E"] @@ -195,17 +184,14 @@ [:textureType="texture_depth_2d_array";coordType="u32"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Ci32%3E"] @@ -268,17 +254,14 @@ [:textureType="texture_depth_cube";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Ci32%3E"] @@ -327,17 +310,14 @@ [:textureType="texture_depth_cube_array";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Ci32%3E"] @@ -359,11 +339,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:depth_ref_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";depthRefType="abstract-float"] [:textureType="texture_depth_2d";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d";depthRefType="bool"] @@ -420,7 +398,6 @@ [:textureType="texture_depth_2d_array";depthRefType="abstract-float"] [:textureType="texture_depth_2d_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";depthRefType="bool"] @@ -477,7 +454,6 @@ [:textureType="texture_depth_cube";depthRefType="abstract-float"] [:textureType="texture_depth_cube";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube";depthRefType="bool"] @@ -534,7 +510,6 @@ [:textureType="texture_depth_cube_array";depthRefType="abstract-float"] [:textureType="texture_depth_cube_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";depthRefType="bool"] @@ -595,20 +570,16 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:offset_argument,non_const:*] - implementation-status: backlog [:textureType="texture_depth_2d";varType="c"] - expected: FAIL [:textureType="texture_depth_2d";varType="l"] [:textureType="texture_depth_2d";varType="u"] [:textureType="texture_depth_2d_array";varType="c"] - expected: FAIL [:textureType="texture_depth_2d_array";varType="l"] @@ -735,7 +706,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:return_type:*] - implementation-status: backlog [:returnType="abstract-float";textureType="texture_depth_2d"] [:returnType="abstract-float";textureType="texture_depth_2d_array"] @@ -937,16 +907,12 @@ [:returnType="vec4%3Cf16%3E";textureType="texture_depth_cube_array"] [:returnType="vec4%3Cf32%3E";textureType="texture_depth_2d"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_depth_2d_array"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_depth_cube"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_depth_cube_array"] - expected: FAIL [:returnType="vec4%3Ci32%3E";textureType="texture_depth_2d"] @@ -966,7 +932,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureGatherCompare:texture_type:*] - implementation-status: backlog [:testTextureType="texture_1d%3Cf32%3E";textureType="texture_depth_2d";offset=false] [:testTextureType="texture_1d%3Cf32%3E";textureType="texture_depth_2d";offset=true] @@ -1112,10 +1077,8 @@ [:testTextureType="texture_cube_array%3Cu32%3E";textureType="texture_depth_cube_array";offset=false] [:testTextureType="texture_depth_2d";textureType="texture_depth_2d";offset=false] - expected: FAIL [:testTextureType="texture_depth_2d";textureType="texture_depth_2d";offset=true] - expected: FAIL [:testTextureType="texture_depth_2d";textureType="texture_depth_2d_array";offset=false] @@ -1130,10 +1093,8 @@ [:testTextureType="texture_depth_2d_array";textureType="texture_depth_2d";offset=true] [:testTextureType="texture_depth_2d_array";textureType="texture_depth_2d_array";offset=false] - expected: FAIL [:testTextureType="texture_depth_2d_array";textureType="texture_depth_2d_array";offset=true] - expected: FAIL [:testTextureType="texture_depth_2d_array";textureType="texture_depth_cube";offset=false] @@ -1148,7 +1109,6 @@ [:testTextureType="texture_depth_cube";textureType="texture_depth_2d_array";offset=true] [:testTextureType="texture_depth_cube";textureType="texture_depth_cube";offset=false] - expected: FAIL [:testTextureType="texture_depth_cube";textureType="texture_depth_cube_array";offset=false] @@ -1163,7 +1123,6 @@ [:testTextureType="texture_depth_cube_array";textureType="texture_depth_cube";offset=false] [:testTextureType="texture_depth_cube_array";textureType="texture_depth_cube_array";offset=false] - expected: FAIL [:testTextureType="texture_depth_multisampled_2d";textureType="texture_depth_2d";offset=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSample/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSample/cts.https.html.ini index 2d9353e50bd1..f22171f0b3ec 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSample/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSample/cts.https.html.ini @@ -225,11 +225,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSample:coords_argument:*] - implementation-status: backlog [:textureType="texture_1d%3Cf32%3E";coordType="abstract-float"] [:textureType="texture_1d%3Cf32%3E";coordType="abstract-int"] - expected: FAIL [:textureType="texture_1d%3Cf32%3E";coordType="bool"] @@ -300,7 +298,6 @@ [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cbool%3E"] @@ -357,7 +354,6 @@ [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cbool%3E"] @@ -428,7 +424,6 @@ [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -485,7 +480,6 @@ [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -542,7 +536,6 @@ [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -585,7 +578,6 @@ [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cbool%3E"] @@ -642,7 +634,6 @@ [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cbool%3E"] @@ -713,7 +704,6 @@ [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cbool%3E"] @@ -770,7 +760,6 @@ [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cbool%3E"] @@ -803,7 +792,6 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSample:offset_argument,non_const:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleBias/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleBias/cts.https.html.ini index 2ead6aea27a6..e3d61d782bb8 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleBias/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleBias/cts.https.html.ini @@ -1,9 +1,7 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:array_index_argument:*] - implementation-status: backlog [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="abstract-float"] [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="bool"] @@ -12,10 +10,8 @@ [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="f32"] [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -62,7 +58,6 @@ [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="abstract-float"] [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="bool"] @@ -71,10 +66,8 @@ [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="f32"] [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -120,11 +113,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:bias_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";biasType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";biasType="abstract-int"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";biasType="bool"] @@ -181,7 +172,6 @@ [:textureType="texture_2d_array%3Cf32%3E";biasType="abstract-float"] [:textureType="texture_2d_array%3Cf32%3E";biasType="abstract-int"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";biasType="bool"] @@ -238,7 +228,6 @@ [:textureType="texture_3d%3Cf32%3E";biasType="abstract-float"] [:textureType="texture_3d%3Cf32%3E";biasType="abstract-int"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";biasType="bool"] @@ -294,7 +283,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:coords_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";coordType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";coordType="abstract-int"] @@ -310,17 +298,14 @@ [:textureType="texture_2d%3Cf32%3E";coordType="u32"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cbool%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cf16%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Ci32%3E"] @@ -369,17 +354,14 @@ [:textureType="texture_2d_array%3Cf32%3E";coordType="u32"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cbool%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cf16%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Ci32%3E"] @@ -442,17 +424,14 @@ [:textureType="texture_3d%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -501,17 +480,14 @@ [:textureType="texture_cube%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -560,17 +536,14 @@ [:textureType="texture_cube_array%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -597,27 +570,22 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:offset_argument,non_const:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";varType="l"] [:textureType="texture_2d%3Cf32%3E";varType="u"] [:textureType="texture_2d_array%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";varType="l"] [:textureType="texture_2d_array%3Cf32%3E";varType="u"] [:textureType="texture_3d%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";varType="l"] @@ -802,32 +770,25 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:only_in_fragment:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";entryPoint="compute";offset=false] [:textureType="texture_2d%3Cf32%3E";entryPoint="compute";offset=true] [:textureType="texture_2d%3Cf32%3E";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="compute_without_call";offset=true] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="fragment";offset=true] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_2d%3Cf32%3E";entryPoint="fragment_and_compute";offset=true] [:textureType="texture_2d%3Cf32%3E";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="none";offset=true] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";entryPoint="vertex";offset=false] @@ -838,26 +799,20 @@ [:textureType="texture_2d_array%3Cf32%3E";entryPoint="compute";offset=true] [:textureType="texture_2d_array%3Cf32%3E";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="compute_without_call";offset=true] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="fragment";offset=true] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_2d_array%3Cf32%3E";entryPoint="fragment_and_compute";offset=true] [:textureType="texture_2d_array%3Cf32%3E";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="none";offset=true] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";entryPoint="vertex";offset=false] @@ -868,26 +823,20 @@ [:textureType="texture_3d%3Cf32%3E";entryPoint="compute";offset=true] [:textureType="texture_3d%3Cf32%3E";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="compute_without_call";offset=true] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="fragment";offset=true] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_3d%3Cf32%3E";entryPoint="fragment_and_compute";offset=true] [:textureType="texture_3d%3Cf32%3E";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="none";offset=true] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";entryPoint="vertex";offset=false] @@ -896,36 +845,29 @@ [:textureType="texture_cube%3Cf32%3E";entryPoint="compute";offset=false] [:textureType="texture_cube%3Cf32%3E";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_cube%3Cf32%3E";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";entryPoint="vertex";offset=false] [:textureType="texture_cube_array%3Cf32%3E";entryPoint="compute";offset=false] [:textureType="texture_cube_array%3Cf32%3E";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_cube_array%3Cf32%3E";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";entryPoint="vertex";offset=false] [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleBias:return_type:*] - implementation-status: backlog [:returnType="abstract-float";textureType="texture_2d%3Cf32%3E"] [:returnType="abstract-float";textureType="texture_2d_array%3Cf32%3E"] @@ -1177,19 +1119,14 @@ [:returnType="vec4%3Cf16%3E";textureType="texture_cube_array%3Cf32%3E"] [:returnType="vec4%3Cf32%3E";textureType="texture_2d%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_2d_array%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_3d%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_cube%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_cube_array%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Ci32%3E";textureType="texture_2d%3Cf32%3E"] @@ -1235,7 +1172,6 @@ [:testTextureType="texture_1d%3Cu32%3E";textureType="texture_cube_array%3Cf32%3E"] [:testTextureType="texture_2d%3Cf32%3E";textureType="texture_2d%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_2d%3Cf32%3E";textureType="texture_2d_array%3Cf32%3E"] @@ -1258,7 +1194,6 @@ [:testTextureType="texture_2d_array%3Cf32%3E";textureType="texture_2d%3Cf32%3E"] [:testTextureType="texture_2d_array%3Cf32%3E";textureType="texture_2d_array%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_2d_array%3Cf32%3E";textureType="texture_3d%3Cf32%3E"] @@ -1281,10 +1216,8 @@ [:testTextureType="texture_3d%3Cf32%3E";textureType="texture_2d_array%3Cf32%3E"] [:testTextureType="texture_3d%3Cf32%3E";textureType="texture_3d%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_3d%3Cf32%3E";textureType="texture_cube%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_3d%3Cf32%3E";textureType="texture_cube_array%3Cf32%3E"] @@ -1306,7 +1239,6 @@ expected: FAIL [:testTextureType="texture_cube%3Cf32%3E";textureType="texture_cube%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_cube%3Cf32%3E";textureType="texture_cube_array%3Cf32%3E"] @@ -1329,7 +1261,6 @@ [:testTextureType="texture_cube_array%3Cf32%3E";textureType="texture_cube%3Cf32%3E"] [:testTextureType="texture_cube_array%3Cf32%3E";textureType="texture_cube_array%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_cube_array%3Cu32%3E";textureType="texture_2d%3Cf32%3E"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompare/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompare/cts.https.html.ini index 598e60ecac5b..d6edd8fad2d8 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompare/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompare/cts.https.html.ini @@ -1,9 +1,7 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:array_index_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_2d_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="bool"] @@ -12,10 +10,8 @@ [:textureType="texture_depth_2d_array";arrayIndexType="f32"] [:textureType="texture_depth_2d_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -62,7 +58,6 @@ [:textureType="texture_depth_cube_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_cube_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="bool"] @@ -71,10 +66,8 @@ [:textureType="texture_depth_cube_array";arrayIndexType="f32"] [:textureType="texture_depth_cube_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -120,7 +113,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:coords_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";coordType="abstract-float"] [:textureType="texture_depth_2d";coordType="abstract-int"] @@ -136,17 +128,14 @@ [:textureType="texture_depth_2d";coordType="u32"] [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Ci32%3E"] @@ -195,17 +184,14 @@ [:textureType="texture_depth_2d_array";coordType="u32"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Ci32%3E"] @@ -268,17 +254,14 @@ [:textureType="texture_depth_cube";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Ci32%3E"] @@ -327,17 +310,14 @@ [:textureType="texture_depth_cube_array";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Ci32%3E"] @@ -359,11 +339,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:depth_ref_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";depthRefType="abstract-float"] [:textureType="texture_depth_2d";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d";depthRefType="bool"] @@ -420,7 +398,6 @@ [:textureType="texture_depth_2d_array";depthRefType="abstract-float"] [:textureType="texture_depth_2d_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";depthRefType="bool"] @@ -477,7 +454,6 @@ [:textureType="texture_depth_cube";depthRefType="abstract-float"] [:textureType="texture_depth_cube";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube";depthRefType="bool"] @@ -534,7 +510,6 @@ [:textureType="texture_depth_cube_array";depthRefType="abstract-float"] [:textureType="texture_depth_cube_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";depthRefType="bool"] @@ -595,20 +570,16 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:offset_argument,non_const:*] - implementation-status: backlog [:textureType="texture_depth_2d";varType="c"] - expected: FAIL [:textureType="texture_depth_2d";varType="l"] [:textureType="texture_depth_2d";varType="u"] [:textureType="texture_depth_2d_array";varType="c"] - expected: FAIL [:textureType="texture_depth_2d_array";varType="l"] @@ -735,32 +706,25 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:only_in_fragment:*] - implementation-status: backlog [:textureType="texture_depth_2d";entryPoint="compute";offset=false] [:textureType="texture_depth_2d";entryPoint="compute";offset=true] [:textureType="texture_depth_2d";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="compute_without_call";offset=true] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="fragment";offset=true] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_depth_2d";entryPoint="fragment_and_compute";offset=true] [:textureType="texture_depth_2d";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="none";offset=true] - expected: FAIL [:textureType="texture_depth_2d";entryPoint="vertex";offset=false] @@ -771,26 +735,20 @@ [:textureType="texture_depth_2d_array";entryPoint="compute";offset=true] [:textureType="texture_depth_2d_array";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="compute_without_call";offset=true] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="fragment";offset=true] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_depth_2d_array";entryPoint="fragment_and_compute";offset=true] [:textureType="texture_depth_2d_array";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="none";offset=true] - expected: FAIL [:textureType="texture_depth_2d_array";entryPoint="vertex";offset=false] @@ -799,36 +757,29 @@ [:textureType="texture_depth_cube";entryPoint="compute";offset=false] [:textureType="texture_depth_cube";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_depth_cube";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_depth_cube";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_depth_cube";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_depth_cube";entryPoint="vertex";offset=false] [:textureType="texture_depth_cube_array";entryPoint="compute";offset=false] [:textureType="texture_depth_cube_array";entryPoint="compute_without_call";offset=false] - expected: FAIL [:textureType="texture_depth_cube_array";entryPoint="fragment";offset=false] - expected: FAIL [:textureType="texture_depth_cube_array";entryPoint="fragment_and_compute";offset=false] [:textureType="texture_depth_cube_array";entryPoint="none";offset=false] - expected: FAIL [:textureType="texture_depth_cube_array";entryPoint="vertex";offset=false] [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:return_type:*] - implementation-status: backlog [:returnType="abstract-float";textureType="texture_depth_2d"] [:returnType="abstract-float";textureType="texture_depth_2d_array"] @@ -862,16 +813,12 @@ [:returnType="f16";textureType="texture_depth_cube_array"] [:returnType="f32";textureType="texture_depth_2d"] - expected: FAIL [:returnType="f32";textureType="texture_depth_2d_array"] - expected: FAIL [:returnType="f32";textureType="texture_depth_cube"] - expected: FAIL [:returnType="f32";textureType="texture_depth_cube_array"] - expected: FAIL [:returnType="i32";textureType="texture_depth_2d"] @@ -1059,7 +1006,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompare:texture_type:*] - implementation-status: backlog [:testTextureType="texture_1d%3Cf32%3E"] [:testTextureType="texture_1d%3Cu32%3E"] @@ -1085,16 +1031,12 @@ [:testTextureType="texture_cube_array%3Cu32%3E"] [:testTextureType="texture_depth_2d"] - expected: FAIL [:testTextureType="texture_depth_2d_array"] - expected: FAIL [:testTextureType="texture_depth_cube"] - expected: FAIL [:testTextureType="texture_depth_cube_array"] - expected: FAIL [:testTextureType="texture_depth_multisampled_2d"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini index 94ae707ed221..4bb31596e060 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini @@ -1,9 +1,7 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:array_index_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_2d_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="bool"] @@ -12,10 +10,8 @@ [:textureType="texture_depth_2d_array";arrayIndexType="f32"] [:textureType="texture_depth_2d_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_2d_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -62,7 +58,6 @@ [:textureType="texture_depth_cube_array";arrayIndexType="abstract-float"] [:textureType="texture_depth_cube_array";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="bool"] @@ -71,10 +66,8 @@ [:textureType="texture_depth_cube_array";arrayIndexType="f32"] [:textureType="texture_depth_cube_array";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_depth_cube_array";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -120,7 +113,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:coords_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";coordType="abstract-float"] [:textureType="texture_depth_2d";coordType="abstract-int"] @@ -136,17 +128,14 @@ [:textureType="texture_depth_2d";coordType="u32"] [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Ci32%3E"] @@ -195,17 +184,14 @@ [:textureType="texture_depth_2d_array";coordType="u32"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cbool%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf16%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Ci32%3E"] @@ -268,17 +254,14 @@ [:textureType="texture_depth_cube";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Ci32%3E"] @@ -327,17 +310,14 @@ [:textureType="texture_depth_cube_array";coordType="vec2%3Cu32%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cbool%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf16%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Ci32%3E"] @@ -359,11 +339,9 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:depth_ref_argument:*] - implementation-status: backlog [:textureType="texture_depth_2d";depthRefType="abstract-float"] [:textureType="texture_depth_2d";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d";depthRefType="bool"] @@ -420,7 +398,6 @@ [:textureType="texture_depth_2d_array";depthRefType="abstract-float"] [:textureType="texture_depth_2d_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_2d_array";depthRefType="bool"] @@ -477,7 +454,6 @@ [:textureType="texture_depth_cube";depthRefType="abstract-float"] [:textureType="texture_depth_cube";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube";depthRefType="bool"] @@ -534,7 +510,6 @@ [:textureType="texture_depth_cube_array";depthRefType="abstract-float"] [:textureType="texture_depth_cube_array";depthRefType="abstract-int"] - expected: FAIL [:textureType="texture_depth_cube_array";depthRefType="bool"] @@ -595,20 +570,16 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:offset_argument,non_const:*] - implementation-status: backlog [:textureType="texture_depth_2d";varType="c"] - expected: FAIL [:textureType="texture_depth_2d";varType="l"] [:textureType="texture_depth_2d";varType="u"] [:textureType="texture_depth_2d_array";varType="c"] - expected: FAIL [:textureType="texture_depth_2d_array";varType="l"] @@ -735,7 +706,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:return_type:*] - implementation-status: backlog [:returnType="abstract-float";textureType="texture_depth_2d"] [:returnType="abstract-float";textureType="texture_depth_2d_array"] @@ -769,16 +739,12 @@ [:returnType="f16";textureType="texture_depth_cube_array"] [:returnType="f32";textureType="texture_depth_2d"] - expected: FAIL [:returnType="f32";textureType="texture_depth_2d_array"] - expected: FAIL [:returnType="f32";textureType="texture_depth_cube"] - expected: FAIL [:returnType="f32";textureType="texture_depth_cube_array"] - expected: FAIL [:returnType="i32";textureType="texture_depth_2d"] @@ -966,7 +932,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleCompareLevel:texture_type:*] - implementation-status: backlog [:testTextureType="texture_1d%3Cf32%3E"] [:testTextureType="texture_1d%3Cu32%3E"] @@ -992,16 +957,12 @@ [:testTextureType="texture_cube_array%3Cu32%3E"] [:testTextureType="texture_depth_2d"] - expected: FAIL [:testTextureType="texture_depth_2d_array"] - expected: FAIL [:testTextureType="texture_depth_cube"] - expected: FAIL [:testTextureType="texture_depth_cube_array"] - expected: FAIL [:testTextureType="texture_depth_multisampled_2d"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleGrad/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleGrad/cts.https.html.ini index 11d4941ee00d..611872598607 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleGrad/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleGrad/cts.https.html.ini @@ -113,7 +113,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleGrad:coords_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";coordType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";coordType="abstract-int"] @@ -131,7 +130,6 @@ [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cbool%3E"] @@ -188,7 +186,6 @@ [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cbool%3E"] @@ -259,7 +256,6 @@ [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -316,7 +312,6 @@ [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -373,7 +368,6 @@ [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cbool%3E"] @@ -401,7 +395,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleGrad:ddX_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";ddxType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";ddxType="abstract-int"] @@ -419,7 +412,6 @@ [:textureType="texture_2d%3Cf32%3E";ddxType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d%3Cf32%3E";ddxType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";ddxType="vec2%3Cbool%3E"] @@ -476,7 +468,6 @@ [:textureType="texture_2d_array%3Cf32%3E";ddxType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d_array%3Cf32%3E";ddxType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";ddxType="vec2%3Cbool%3E"] @@ -547,7 +538,6 @@ [:textureType="texture_3d%3Cf32%3E";ddxType="vec3%3Cabstract-float%3E"] [:textureType="texture_3d%3Cf32%3E";ddxType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";ddxType="vec3%3Cbool%3E"] @@ -604,7 +594,6 @@ [:textureType="texture_cube%3Cf32%3E";ddxType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube%3Cf32%3E";ddxType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";ddxType="vec3%3Cbool%3E"] @@ -661,7 +650,6 @@ [:textureType="texture_cube_array%3Cf32%3E";ddxType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube_array%3Cf32%3E";ddxType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";ddxType="vec3%3Cbool%3E"] @@ -689,7 +677,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleGrad:ddY_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";ddyType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";ddyType="abstract-int"] @@ -707,7 +694,6 @@ [:textureType="texture_2d%3Cf32%3E";ddyType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d%3Cf32%3E";ddyType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";ddyType="vec2%3Cbool%3E"] @@ -764,7 +750,6 @@ [:textureType="texture_2d_array%3Cf32%3E";ddyType="vec2%3Cabstract-float%3E"] [:textureType="texture_2d_array%3Cf32%3E";ddyType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";ddyType="vec2%3Cbool%3E"] @@ -835,7 +820,6 @@ [:textureType="texture_3d%3Cf32%3E";ddyType="vec3%3Cabstract-float%3E"] [:textureType="texture_3d%3Cf32%3E";ddyType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";ddyType="vec3%3Cbool%3E"] @@ -892,7 +876,6 @@ [:textureType="texture_cube%3Cf32%3E";ddyType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube%3Cf32%3E";ddyType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";ddyType="vec3%3Cbool%3E"] @@ -949,7 +932,6 @@ [:textureType="texture_cube_array%3Cf32%3E";ddyType="vec3%3Cabstract-float%3E"] [:textureType="texture_cube_array%3Cf32%3E";ddyType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";ddyType="vec3%3Cbool%3E"] @@ -982,7 +964,6 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleGrad:offset_argument,non_const:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleLevel/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleLevel/cts.https.html.ini index 2e76205e19e4..afe844bc8e44 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleLevel/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/textureSampleLevel/cts.https.html.ini @@ -1,11 +1,11 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleLevel:array_index_argument:*] - implementation-status: backlog + implementation-status: + if os == "linux" and debug: backlog expected: if os == "linux" and debug: [OK, CRASH] [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="abstract-float"] [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="bool"] @@ -14,10 +14,8 @@ [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="f32"] [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -64,7 +62,6 @@ [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="abstract-float"] [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="abstract-int"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="bool"] @@ -73,10 +70,8 @@ [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="f32"] [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="i32"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="u32"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";arrayIndexType="vec2%3Cabstract-float%3E"] @@ -234,7 +229,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleLevel:coords_argument:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";coordType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";coordType="abstract-int"] @@ -250,17 +244,14 @@ [:textureType="texture_2d%3Cf32%3E";coordType="u32"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cbool%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cf16%3E"] [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";coordType="vec2%3Ci32%3E"] @@ -309,17 +300,14 @@ [:textureType="texture_2d_array%3Cf32%3E";coordType="u32"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cbool%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cf16%3E"] [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Cf32%3E"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";coordType="vec2%3Ci32%3E"] @@ -382,17 +370,14 @@ [:textureType="texture_3d%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -441,17 +426,14 @@ [:textureType="texture_cube%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -500,17 +482,14 @@ [:textureType="texture_cube_array%3Cf32%3E";coordType="vec2%3Cu32%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-float%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cbool%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cf16%3E"] [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Cf32%3E"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";coordType="vec3%3Ci32%3E"] @@ -547,7 +526,6 @@ [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_depth_2d";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d";coordType="vec2%3Cbool%3E"] @@ -604,7 +582,6 @@ [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-float%3E"] [:textureType="texture_depth_2d_array";coordType="vec2%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_2d_array";coordType="vec2%3Cbool%3E"] @@ -675,7 +652,6 @@ [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_depth_cube";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube";coordType="vec3%3Cbool%3E"] @@ -732,7 +708,6 @@ [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-float%3E"] [:textureType="texture_depth_cube_array";coordType="vec3%3Cabstract-int%3E"] - expected: FAIL [:textureType="texture_depth_cube_array";coordType="vec3%3Cbool%3E"] @@ -760,13 +735,13 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleLevel:level_argument:*] - implementation-status: backlog + implementation-status: + if os == "linux" and debug: backlog expected: if os == "linux" and debug: [OK, CRASH] [:textureType="texture_2d%3Cf32%3E";levelType="abstract-float"] [:textureType="texture_2d%3Cf32%3E";levelType="abstract-int"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";levelType="bool"] @@ -823,7 +798,6 @@ [:textureType="texture_2d_array%3Cf32%3E";levelType="abstract-float"] [:textureType="texture_2d_array%3Cf32%3E";levelType="abstract-int"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";levelType="bool"] @@ -880,7 +854,6 @@ [:textureType="texture_3d%3Cf32%3E";levelType="abstract-float"] [:textureType="texture_3d%3Cf32%3E";levelType="abstract-int"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";levelType="bool"] @@ -937,7 +910,6 @@ [:textureType="texture_cube%3Cf32%3E";levelType="abstract-float"] [:textureType="texture_cube%3Cf32%3E";levelType="abstract-int"] - expected: FAIL [:textureType="texture_cube%3Cf32%3E";levelType="bool"] @@ -994,7 +966,6 @@ [:textureType="texture_cube_array%3Cf32%3E";levelType="abstract-float"] [:textureType="texture_cube_array%3Cf32%3E";levelType="abstract-int"] - expected: FAIL [:textureType="texture_cube_array%3Cf32%3E";levelType="bool"] @@ -1279,27 +1250,22 @@ expected: FAIL [:use=true] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleLevel:offset_argument,non_const:*] - implementation-status: backlog [:textureType="texture_2d%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_2d%3Cf32%3E";varType="l"] [:textureType="texture_2d%3Cf32%3E";varType="u"] [:textureType="texture_2d_array%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_2d_array%3Cf32%3E";varType="l"] [:textureType="texture_2d_array%3Cf32%3E";varType="u"] [:textureType="texture_3d%3Cf32%3E";varType="c"] - expected: FAIL [:textureType="texture_3d%3Cf32%3E";varType="l"] @@ -1612,7 +1578,6 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,textureSampleLevel:return_type:*] - implementation-status: backlog [:returnType="abstract-float";textureType="texture_2d%3Cf32%3E"] [:returnType="abstract-float";textureType="texture_2d_array%3Cf32%3E"] @@ -2064,19 +2029,14 @@ [:returnType="vec4%3Cf16%3E";textureType="texture_depth_cube_array"] [:returnType="vec4%3Cf32%3E";textureType="texture_2d%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_2d_array%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_3d%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_cube%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_cube_array%3Cf32%3E"] - expected: FAIL [:returnType="vec4%3Cf32%3E";textureType="texture_depth_2d"] @@ -2130,17 +2090,14 @@ [:testTextureType="texture_1d%3Cu32%3E"] [:testTextureType="texture_2d%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_2d%3Cu32%3E"] [:testTextureType="texture_2d_array%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_2d_array%3Cu32%3E"] [:testTextureType="texture_3d%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_3d%3Cu32%3E"] @@ -2150,7 +2107,6 @@ [:testTextureType="texture_cube%3Cu32%3E"] [:testTextureType="texture_cube_array%3Cf32%3E"] - expected: FAIL [:testTextureType="texture_cube_array%3Cu32%3E"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xI8/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xI8/cts.https.html.ini index badd39f96889..94303d606479 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xI8/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xI8/cts.https.html.ini @@ -33,9 +33,12 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,unpack4xI8:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,unpack4xI8:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xU8/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xU8/cts.https.html.ini index 7a799efce5bb..bd878fa2321d 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xU8/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/call/builtin/unpack4xU8/cts.https.html.ini @@ -55,9 +55,12 @@ [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,unpack4xU8:supported:*] + implementation-status: backlog [:requires=false] + expected: FAIL [:requires=true] + expected: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,unpack4xU8:unsupported:*] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/arithmetic_negation/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/arithmetic_negation/cts.https.html.ini index 187d0d560bec..eeabcab4ff4f 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/arithmetic_negation/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/arithmetic_negation/cts.https.html.ini @@ -21,7 +21,6 @@ [:type="sampler";control=false] [:type="sampler";control=true] - expected: FAIL [:type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/bitwise_complement/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/bitwise_complement/cts.https.html.ini index d66a779e6350..4d5eb349639b 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/bitwise_complement/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/bitwise_complement/cts.https.html.ini @@ -20,7 +20,6 @@ [:type="sampler";control=false] [:type="sampler";control=true] - expected: FAIL [:type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/logical_negation/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/logical_negation/cts.https.html.ini index 8e95f5e2cf24..189cd0c82c51 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/logical_negation/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/expression/unary/logical_negation/cts.https.html.ini @@ -1,5 +1,4 @@ [cts.https.html?q=webgpu:shader,validation,expression,unary,logical_negation:invalid_types:*] - implementation-status: backlog [:type="array";control=false] [:type="array";control=true] @@ -19,7 +18,6 @@ [:type="sampler";control=false] [:type="sampler";control=true] - expected: FAIL [:type="struct";control=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/extension/readonly_and_readwrite_storage_textures/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/extension/readonly_and_readwrite_storage_textures/cts.https.html.ini index 1e3caf761c63..7c5fe15965b6 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/extension/readonly_and_readwrite_storage_textures/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/extension/readonly_and_readwrite_storage_textures/cts.https.html.ini @@ -1,10 +1,6 @@ [cts.https.html?q=webgpu:shader,validation,extension,readonly_and_readwrite_storage_textures:textureBarrier:*] - implementation-status: backlog [:] - expected: FAIL [cts.https.html?q=webgpu:shader,validation,extension,readonly_and_readwrite_storage_textures:var_decl:*] - implementation-status: backlog [:] - expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/shader_io/group_and_binding/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/shader_io/group_and_binding/cts.https.html.ini index 40376d930456..a96b02d8db6c 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/shader_io/group_and_binding/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/shader_io/group_and_binding/cts.https.html.ini @@ -962,38 +962,28 @@ [cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:single_entry_point:*] implementation-status: backlog [:stage="compute";a_kind="storage";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="storage";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="storage";b_kind="uniform";usage="direct"] [:stage="compute";a_kind="storage";b_kind="uniform";usage="transitive"] [:stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="texture_2d";b_kind="uniform";usage="direct"] - expected: FAIL [:stage="compute";a_kind="texture_2d";b_kind="uniform";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="direct"] expected: FAIL @@ -1014,54 +1004,40 @@ expected: FAIL [:stage="compute";a_kind="uniform";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="uniform";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="compute";a_kind="uniform";b_kind="uniform";usage="direct"] [:stage="compute";a_kind="uniform";b_kind="uniform";usage="transitive"] [:stage="fragment";a_kind="storage";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="storage";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="storage";b_kind="uniform";usage="direct"] [:stage="fragment";a_kind="storage";b_kind="uniform";usage="transitive"] [:stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="direct"] expected: FAIL @@ -1082,42 +1058,32 @@ expected: FAIL [:stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"] - expected: FAIL [:stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"] - expected: FAIL [:stage="fragment";a_kind="uniform";b_kind="uniform";usage="direct"] [:stage="fragment";a_kind="uniform";b_kind="uniform";usage="transitive"] [:stage="vertex";a_kind="storage";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="vertex";a_kind="storage";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="vertex";a_kind="storage";b_kind="uniform";usage="direct"] [:stage="vertex";a_kind="storage";b_kind="uniform";usage="transitive"] [:stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="direct"] - expected: FAIL [:stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="transitive"] - expected: FAIL [:stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="direct"] expected: FAIL @@ -1132,10 +1098,8 @@ expected: FAIL [:stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="direct"] - expected: FAIL [:stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="transitive"] - expected: FAIL [:stage="vertex";a_kind="uniform";b_kind="uniform";usage="direct"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/uniformity/uniformity/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/uniformity/uniformity/cts.https.html.ini index 39a214cbe67d..5c3796875ad0 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/uniformity/uniformity/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/uniformity/uniformity/cts.https.html.ini @@ -896,7 +896,6 @@ [:case="textureDimensions_uniform_input_uniform_result"] [:case="textureGatherCompare_uniform_input_uniform_result"] - expected: FAIL [:case="textureGather_uniform_input_uniform_result"] @@ -915,7 +914,6 @@ expected: FAIL [:case="textureSampleCompareLevel_uniform_input_uniform_result"] - expected: FAIL [:case="textureSampleCompare_nonuniform_result"] expected: FAIL @@ -923,7 +921,6 @@ [:case="textureSampleGrad_uniform_input_uniform_result"] [:case="textureSampleLevel_uniform_input_uniform_result"] - expected: FAIL [:case="textureSample_nonuniform_result"] expected: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/cts.https.html.ini index e808d83cb29d..fcdba0421c3a 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/cts.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/cts.https.html.ini @@ -953,7 +953,8 @@ if os == "win": FAIL if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN] if os == "linux" and not debug: FAIL - if os == "mac": FAIL + if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN] + if os == "mac" and not debug: FAIL [:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rgb10a2unorm";dstPremultiplied=true] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/shared.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/shared.https.html.ini index 5d07572355d6..7627f1943880 100644 --- a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/shared.https.html.ini +++ b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/ImageBitmap/shared.https.html.ini @@ -802,6 +802,7 @@ [:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=false;dstFormat="r16float";dstPremultiplied=true] expected: + if os == "win" and debug: [PASS, TIMEOUT, NOTRUN] if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] if os == "mac" and debug: [TIMEOUT, NOTRUN] diff --git a/third_party/rust/naga/.cargo-checksum.json b/third_party/rust/naga/.cargo-checksum.json index 7df2b6a4549d..78b87e867817 100644 --- a/third_party/rust/naga/.cargo-checksum.json +++ b/third_party/rust/naga/.cargo-checksum.json @@ -1 +1 @@ -{"files":{".cargo/config.toml":"d7389d2a0c08ec72b79e83a3c76980903e3f9123625c32e69c798721193e2e74","CHANGELOG.md":"e60105d413f857e37dae165f819c47491d0a595183d3c9146b259d811b98b14f","Cargo.toml":"44c7ef18c1f24df420f1ab9158f1fab37020d6d84aaaca1b011e00d5acc422c3","README.md":"9550cbc1a518ad0f624aabe12c342c72f670705cb4a6878c0c87d172f1dacea0","build.rs":"a08840f5b18ab09f453e1fc3a09dd16df83caa7798b6ecb7e7ac2f8addab276b","src/arena/handle.rs":"897b2b0eebe0d9ae6a65bf2e8c210c8391924da06ef4c9e2a1225ad622400b6c","src/arena/handle_set.rs":"271f89abb20927eb9f45f552ad2365c4976885cb3dc50078950795f8741b402e","src/arena/handlevec.rs":"999de9d55d01213789072a63ad4ae9b4635e6653984d38db8b308d42bb1e7be3","src/arena/mod.rs":"3f7090caa85b04a365514eb345615dffb44c5edf32429f519882fd8b724de7b0","src/arena/range.rs":"b783969dfe32b4937593d871aa5190d561bdd79b6f615da53cb54346e300b9e2","src/arena/unique_arena.rs":"ec093d35abdcaf4bf20c65e5088c1aeeb29811f3c48dd0d3b403b3d325e80362","src/back/continue_forward.rs":"8194d238763caa6d5601ec3af56ba39a471c39945f43152b58d582092c99aefa","src/back/dot/mod.rs":"345a6ef4fa0e9f19ec1c87d436f4c0df13f5e3094e45f470cf8ceb5bc4641c58","src/back/glsl/features.rs":"1849818acef514642430cccef0cdbe79700a3da7de617cb001956f25b71a6330","src/back/glsl/keywords.rs":"0f004f184c4db192b4f362f92d0d6afae2a70af795949ba20c24cc2a2029ff12","src/back/glsl/mod.rs":"a5d3ea5004ed63506fe1accff026a4dc4b239aa91af78c5ba7c3820d36571d07","src/back/hlsl/conv.rs":"d238a55a66abd5d006138022d1db053d03fb5b93db6a751c4c123fb9ba07cb34","src/back/hlsl/help.rs":"0b8c1fc2fac4c922b5be858b9741e6534d6207020b5df29293b811d944a19b89","src/back/hlsl/keywords.rs":"e1cfffb593bc1909797fc45ccd25e73094aa1a04a1781ccf7f0d47569241db88","src/back/hlsl/mod.rs":"069b43df569b34c2819c1add4d25951e662f9d1958f5e1ffa7f75c3e67bcf3be","src/back/hlsl/ray.rs":"259db3bc8fd5b8ec343fb8620c7cef50048cbea2b9db1f17dc8813ff848269df","src/back/hlsl/storage.rs":"7443cea2abb6ce8d0c0c9bfe805b37b5600bd28618de44ba1ebd8e4e38eac92f","src/back/hlsl/writer.rs":"c1f447cbdc67a88f934bb651f5965536f8fc90221c08c0bc56e845a5868f3707","src/back/mod.rs":"1a7ae319f3f3f4257229ddeebbf4102d676891ada827d5fc0d28ec71a168cf0d","src/back/msl/keywords.rs":"3f0f2ff1859d29d54457c3604caffbf5f0ea678dbb7d68e0f376c2eef0634302","src/back/msl/mod.rs":"75b6dfe361b80b3a1ee78474ccb8aa3d0081415879dcb41182c1aae6e296f063","src/back/msl/sampler.rs":"9be8805063258b0ff6b6db2e6856d59326caa18f6f64eaf413c5abfcbd1ad341","src/back/msl/writer.rs":"88a547bddc28da5d4b0ddf13d7519d940c8a67b2d06af40fff6b569256988b00","src/back/pipeline_constants.rs":"9e51ed3812378835ca34a81f4c6f9cd070e80588c0b4ab69322bfe7c968d63da","src/back/spv/block.rs":"2ab41e2845e1fd034ad37da25d91fc4f03b06685dabcac7cb2ef1f623764f62e","src/back/spv/helpers.rs":"37ef7388b1e97edb2682b93f1f0eceb71039ecd54923d91346d974b29322077c","src/back/spv/image.rs":"c8891267d553e28ddefa0111959f6c04b80e1cade41527645e98832238128418","src/back/spv/index.rs":"5f0561a83011bcf482575d209c549ce08fce85b9dd95f179f6e8c2b112e0c8e5","src/back/spv/instructions.rs":"ec6dff2dcaa80efc3de92aa43aadc147be5ea52b31c10d28cf91d8079decab63","src/back/spv/layout.rs":"52b965e9efd572dac72e0ee51041256fcc666eb4b2eadebe786e8ff39f6e031a","src/back/spv/mod.rs":"273508507be444e8424423218664c1f53458eb05c4b9de04b74262aa2fc64106","src/back/spv/ray.rs":"fcb55dc8e3b1cca9f17a3aa8fd7432aaac4b4ffb0cf8fe53c349014f5f53a897","src/back/spv/recyclable.rs":"8ea397d4d8d3f2cd5fbc8e0be94d136c2d6e0f0e8a4b5eb567dcc1be104c9ae5","src/back/spv/selection.rs":"aea4bb4da7c0fa4e907b8f1e185433a48f2f0eb7ded97fdd3225beb3f6c1f249","src/back/spv/subgroup.rs":"9003f0f653fd466f2568341e18583d49f639a3f4e6f30dbeb069c853f846ef33","src/back/spv/writer.rs":"dc614fc776859a8b51e09f1ab8f4758b57201a0dda0ec3f0a8559d8125ee5aae","src/back/wgsl/mod.rs":"1b04d66e8dba609513d43431d1f0ee9a209fbfd8453862d6e8a7aa41f8910997","src/back/wgsl/polyfill/inverse/inverse_2x2_f16.wgsl":"9e7635d04724822931c805a8b35e76d6d294d447e4ea8d57b308ce45609bf736","src/back/wgsl/polyfill/inverse/inverse_2x2_f32.wgsl":"340d491abde07f93996391796db65a5f88402663eaf6b9d2d894d11cb8cf8b6d","src/back/wgsl/polyfill/inverse/inverse_3x3_f16.wgsl":"4f13a1a4b3e1b51f0f992d13c55cf854a80917554a4d13c997819fa1fe776ba4","src/back/wgsl/polyfill/inverse/inverse_3x3_f32.wgsl":"9b16d2f4b9e433c8e03a0cb46ab48508f3bf7e185ce1b4e26106c47e81a677cb","src/back/wgsl/polyfill/inverse/inverse_4x4_f16.wgsl":"86d39d1db5d03995b404950279db7f1698ad9622982aa319fdedb7532673235b","src/back/wgsl/polyfill/inverse/inverse_4x4_f32.wgsl":"dc510525ac2dce66389a8c4bf8b2f31f0dedd9e6debdbe4ffd939a0a7fc533d3","src/back/wgsl/polyfill/mod.rs":"f4ab3c9b9cdc36d16dab00d0f7f07d6e6beda0e27a36053e9b5ffeeb7ca18edc","src/back/wgsl/writer.rs":"33884d5cab99f8122f558da85af356744c96b60aada585ecb6f8ea7f1a3a22e7","src/common/diagnostic_debug.rs":"8c73fe605e5b6162d0485e264287ac50c061cf581743feebbffe1474d1d3516d","src/common/diagnostic_display.rs":"46f1ff8a32179703ef0bcdb704db9f6e6e8b4eaad6cadf94577eeab3d8a16cd1","src/common/mod.rs":"289231637b08407fbe2cc976a1bab4eac4c9e66042c6618aff3af44baaff3e26","src/common/predeclared.rs":"a5f42d55f2e13d8f5a8213d4a881e9155c3994c4054d43edcf7bd7bb7c868ccf","src/common/wgsl/diagnostics.rs":"4fec985b4c5cc6dfae4dd78bd7c850adc88a1761d7b6691de0355ea49300e532","src/common/wgsl/mod.rs":"d944915ff692c96aecca67737bccc2d5d9eb68f475166a2744f29a025f4a4c93","src/common/wgsl/to_wgsl.rs":"b45850be6063a92bef451b9c407e0efd255e35100df54851690e539206f658b8","src/common/wgsl/types.rs":"9ccdd6676437ac7e282a508403eb24742dea654b380d6419ffe5aac9cd699996","src/compact/expressions.rs":"ecd5e2ff40198e2b7e24f2ca19abfa16167ec58e9be320c9b1dc3268a57d147f","src/compact/functions.rs":"9618539e9d3641d85c11573447d9773e7376cad23b1fd868ed5565b5eb93e05f","src/compact/handle_set_map.rs":"c190919a19f1f6b8d064459114937fdd1eaeb057963e4eab8f05a5219759cf34","src/compact/mod.rs":"834a6660504d9c3c1dab2433a91701440bb8141cca6974fb78dbe61d15ba6418","src/compact/statements.rs":"9d877ff561e2d5d45fef9a8f5e0147ad55bcbaca73898949b689b41e683fdb60","src/compact/types.rs":"a955ce5e336afa8d26f750c14d4a6638dcee6b0b5e0fcd7c446d8f88a35d8277","src/diagnostic_filter.rs":"7478de8ed51cca0ef57e29c8a0f981f2876f8ae6805bd244fc3846efea9cb3cc","src/error.rs":"2ecf733ab81d7af168f490610bc3c1eeccadd550ff3aee313cf98f8a78d94dd8","src/front/atomic_upgrade.rs":"86ce9f9628d92a1a09802cb534bb4310236b83f2799c921b81c687f009c589be","src/front/glsl/ast.rs":"15a4f7c56aa44529373c7aa2a266d1582b7775833de6adc6b8f5bfd54d85a669","src/front/glsl/builtins.rs":"f38de43ada63181e5cf059fc3cfe52c302295b0eaad075b4aee1dfef6ef366b6","src/front/glsl/context.rs":"14fd933c79f49f4fb4ccabdc24ad31745777806f7464f111a4f7782662612a4b","src/front/glsl/error.rs":"74ab1a8e599d0e588d26e9066d2dbdea85bde0f229c42b8b786f14abc032794d","src/front/glsl/functions.rs":"1e8329c6de847336f5b196258d82f807f54021b6221da4d94326d071aeda25ba","src/front/glsl/lex.rs":"24706628b600b5ce435cef464c84196ac5d58013122a97e7b59d509cc25f85a2","src/front/glsl/mod.rs":"f4f1cce6911935b305c415afe3c15f84c7824a3bb828a5d15e6f9ae4b0316df0","src/front/glsl/offset.rs":"66bd524a2d17dc44f431430dcbbb74a771fdab43c9581e88bb1123e6cfec516b","src/front/glsl/parser.rs":"6a13b4737f53b09d5bbc0add01f8fc1b2633b7957f0318374edfe0b903939912","src/front/glsl/parser/declarations.rs":"9949649fba43636d03eaf7f7560d3bb3743b19c7204fb95859283ee84b5dd239","src/front/glsl/parser/expressions.rs":"e056fbdde3bc7c8473acbd485aecd14120d3dbefbabd813ddbc5cfedaf605889","src/front/glsl/parser/functions.rs":"302e24e06190aff555131c33f9a80b15df6a0390d6c776f888a44d5ef7df697e","src/front/glsl/parser/types.rs":"ee242048a65cd3709e16b70a3882e9296e615327480f2ad779e3d2523778181f","src/front/glsl/parser_tests.rs":"6834f0d595f4077266054e5da43e4f1b60e5c6780611ab0f530d9964cc62fad3","src/front/glsl/token.rs":"83780c0c1954ef216896c9d8a48e412b357783e00ccd4909a7a249935c742629","src/front/glsl/types.rs":"286395d82707a09d28b4c1a8bade917822478e53d8eb277ceec5fa9e71649ba2","src/front/glsl/variables.rs":"75d3e203a07befd011f5693ab8f2789e4f06821badb4974043cc4ee10bd5c6c9","src/front/interpolator.rs":"4d6c6639c01fba78ffb8d0af298094cc2d6bb33f8054dad4379fd9fe3af5a4c8","src/front/mod.rs":"e78e91bf1f17409c5e25fd360415e999bb69b159750d2c1673a3db9973f586e0","src/front/spv/convert.rs":"16b8281fc1ae75dc62a02893db2c5b6d8994166e78b3b6b8cac7a01e0da4eae2","src/front/spv/error.rs":"912b7d0348d4eaaddc0049ab789ed14874b1a7d77505db092dccc132e602ee84","src/front/spv/function.rs":"6da0d7dec521039a3c81669ff171c7f15673bb3e93402f2a0f1c8e6f92d7f004","src/front/spv/image.rs":"3631c8533e69673e1de3f7896be004f154b3151ae1cf7aa2ca105df689d24e43","src/front/spv/mod.rs":"767040d6b28319b73c49cf9d1314f937c96c1888da9d81e47be270483757905a","src/front/spv/null.rs":"ee20287365e025e8bcc91f29df930ff8b63cb6d7f26db0b1789d54de614a7353","src/front/type_gen.rs":"d7abef5dfc9e18ae549ebb87bd61f5c9cd1007bde3cf280745dbadb48667a248","src/front/wgsl/error.rs":"329fa5dae7402554eec946d79b28794cc89115effe0c9abd5e44dd28a094a5ad","src/front/wgsl/index.rs":"1db1bee7074a3fe9668d2c2ba0bd5053d6443f4ea19a56e4cccf2aa2bc8a33c9","src/front/wgsl/lower/construction.rs":"24e0eb2181974651ab9d13497cceaa126ee816c38848e9dbbd88f1e7b5f5c53c","src/front/wgsl/lower/conversion.rs":"c36cfc6822e662646c9e856a814d189b147ef07b6226d37916123dae62575f8c","src/front/wgsl/lower/mod.rs":"ef5895dee00d9cc5a20c8b35dbf98056ba4f6c3a55fd51c9ad9c85aae467c72b","src/front/wgsl/mod.rs":"435d381a2224682d60bc40f716a12ab00f239355e400a0d0cce40c055377cd73","src/front/wgsl/parse/ast.rs":"19c7ebafbecd29a795ea11e0e0f3c1a64d406594037ece7c3dce3670d808897a","src/front/wgsl/parse/conv.rs":"32c776c59ad343b4e13f960928d1498f0402fc8416d77c9a582b0f78dbbe4aa6","src/front/wgsl/parse/directive.rs":"c96f33cef2c1d8a374fe1b3827538f7db33d6b7811a6e0914d29de80b8963257","src/front/wgsl/parse/directive/enable_extension.rs":"519d7c3574c859a434d4b9febeccd1bc255d238ca1f76db68246e2ebe5a6eec4","src/front/wgsl/parse/directive/language_extension.rs":"b769f340f4f89410734d0d0fa3bc8530eb10ddb05bbd175da7bf61b062334cc0","src/front/wgsl/parse/lexer.rs":"a43060f637965045aabe3d6498ecf4b0bbc40aee4bb0156ca542b09b3c08178f","src/front/wgsl/parse/mod.rs":"8a86ed10bf881823b69394e6ec5568b83f387a960df4eef8bd611d7b86edc18a","src/front/wgsl/parse/number.rs":"7af92c71031e4c4258e9d8d323f7ee99a2fd4be3b6975ab9b8b53b95431845d9","src/front/wgsl/tests.rs":"a50bd5d6d218fc0be8876d1f9db7936ff593d93805c5e85754ae6bf277beae32","src/ir/block.rs":"b562a83a4fa53002d2ca21b4553ed8e2fa77f61e687f24fd4bbd90f1597b2a9d","src/ir/mod.rs":"dd329b6c7aeb633924d8a9bb453b1ab384b978826f53acf91ba2d80f89876e63","src/keywords/mod.rs":"47a6fde012bf7d1e70f0fac7762f6a8e7dca6b9bbb99e2cada773c61527cfbfe","src/keywords/wgsl.rs":"60e8b7082d9df8c89544ad08ef7fdd8f7b75c48906cffb285fe4f53de04bb263","src/lib.rs":"c62861b9e3133d560034cdb7af9dea448c4c0d0da7b6ee2f1b69050571302c12","src/non_max_u32.rs":"b2d81efda0e1e5ace9e2fad990a7adf628f1dec63273b069c93d5423eb78350d","src/proc/constant_evaluator.rs":"f0486083be99e67aa040401bd12ad4e935df322236c029dde6a5d1ce7926ecff","src/proc/emitter.rs":"39ac886c651e2ad33c06a676a7e4826a0e93de0af660c01e8e4b1f7406742f88","src/proc/index.rs":"f1defc37588bb9ef8c097db8f7ebe4898a9aa182d8009d3c2e76b38b4144fb91","src/proc/layouter.rs":"bf50fed8cf4b15400218fa1cf897f04925795939b09c9ce658eb8bc7559a5705","src/proc/mod.rs":"a6f03f8190e33d67ee82f0cb2703c1ab4fa75410dd0260efd5b1e646bdd95796","src/proc/namer.rs":"d706e30b34f3d2b3e292174acfce229a2579dbffc986ee81e5bb6219bf8bb76f","src/proc/overloads/any_overload_set.rs":"877cd637d979abc08caa021dabb9821a79fc9109eb97024a230bcfac82830388","src/proc/overloads/constructor_set.rs":"b702f866ac1472bcc075bd0bede450388123b5899431934fd60a29865498c68b","src/proc/overloads/list.rs":"7cfbf66a3619fdd66f9acf652d56cd2a9451f7905c5d4637cdb9f77f4ef2af51","src/proc/overloads/mathfunction.rs":"2378546748adc30a269aa1831b164c66d9008d3d6921ade4ebd94000f75c73a7","src/proc/overloads/mod.rs":"0e96479cbd0ec9fa8200a5e88c16a22ee7ed2021ecf6f80a7e4ded69cad5239f","src/proc/overloads/one_bits_iter.rs":"6b98769fdec777d311248084f13958c5cca44659d0928603ece8618387ea58b2","src/proc/overloads/regular.rs":"e272f1973c881f17ef23a0509edc0a1184b20778b1f03bdb33a4d6b15c4a25e1","src/proc/overloads/rule.rs":"b7f87d5ca0cffdaa8ee0db0110918f5a726359fd8a72bc638d8ce27a4b0ae3b2","src/proc/overloads/scalar_set.rs":"3729bc754dbf29a2337379ecb46568fdc3149a48074a354244da91e3d9cb5cef","src/proc/overloads/utils.rs":"4b5e02f20611bd24c6849e1f2c01aad4b271388407e8eb866d5a34983538ef8f","src/proc/terminator.rs":"66b0082dce3b29d6d20e9a891c66524d756c8e567ac844d61355248ac4623b07","src/proc/type_methods.rs":"f1b73b2507377d04ee873ace7971e1b4bc90ff520d3534df1cd29de56035366a","src/proc/typifier.rs":"3bea9c55fb9d6141072c6a17b6fc9d990de4bd5209bf5ea3eb3a5d72466aa2c4","src/span.rs":"fed0e579ee9aa9dc48d4f333cf376963f179441691d17cc20a454ee64d5479a9","src/valid/analyzer.rs":"9c662636da86bd9c0d3f101b8023b184a6a4d23b9dabd6c2fda33fd1ea82e835","src/valid/compose.rs":"44f01ed290d49b9ffc5651c2edaf9a7aa3b969828790a732da39a908b54aee24","src/valid/expression.rs":"d5c5009591d8c38c4adf876a569b975bb1276f21148cbe04196cc2a5d385822c","src/valid/function.rs":"8533623f909fdabd07e547f1a354f3be4923197b0fd9136acc78facdd77f964d","src/valid/handles.rs":"2750068c629fcad7ed876c1fd4b117d2deba5d3c9e9d6ed686df2c1a79df1fa1","src/valid/interface.rs":"34d459c1e42c83acd95cdd06632dca5a5a16fa7f609d079f85cd2802725675b2","src/valid/mod.rs":"a0fe52cee7a4fe474b479ffec3fba583a3ef492a103a2f5c902bd0a8a203c914","src/valid/type.rs":"0947af787fcbd40ac74dc6fb35c1973879cbd548d1cb815eb0907c0a7bf7c362"},"package":null} \ No newline at end of file +{"files":{".cargo/config.toml":"d7389d2a0c08ec72b79e83a3c76980903e3f9123625c32e69c798721193e2e74","CHANGELOG.md":"e60105d413f857e37dae165f819c47491d0a595183d3c9146b259d811b98b14f","Cargo.toml":"44c7ef18c1f24df420f1ab9158f1fab37020d6d84aaaca1b011e00d5acc422c3","README.md":"9550cbc1a518ad0f624aabe12c342c72f670705cb4a6878c0c87d172f1dacea0","build.rs":"a08840f5b18ab09f453e1fc3a09dd16df83caa7798b6ecb7e7ac2f8addab276b","src/arena/handle.rs":"897b2b0eebe0d9ae6a65bf2e8c210c8391924da06ef4c9e2a1225ad622400b6c","src/arena/handle_set.rs":"271f89abb20927eb9f45f552ad2365c4976885cb3dc50078950795f8741b402e","src/arena/handlevec.rs":"999de9d55d01213789072a63ad4ae9b4635e6653984d38db8b308d42bb1e7be3","src/arena/mod.rs":"3f7090caa85b04a365514eb345615dffb44c5edf32429f519882fd8b724de7b0","src/arena/range.rs":"b783969dfe32b4937593d871aa5190d561bdd79b6f615da53cb54346e300b9e2","src/arena/unique_arena.rs":"ec093d35abdcaf4bf20c65e5088c1aeeb29811f3c48dd0d3b403b3d325e80362","src/back/continue_forward.rs":"8194d238763caa6d5601ec3af56ba39a471c39945f43152b58d582092c99aefa","src/back/dot/mod.rs":"345a6ef4fa0e9f19ec1c87d436f4c0df13f5e3094e45f470cf8ceb5bc4641c58","src/back/glsl/features.rs":"1849818acef514642430cccef0cdbe79700a3da7de617cb001956f25b71a6330","src/back/glsl/keywords.rs":"0f004f184c4db192b4f362f92d0d6afae2a70af795949ba20c24cc2a2029ff12","src/back/glsl/mod.rs":"366a9bf11339e5b7d073ca50743d459f48a049d8744c6f73644dae3ca270a10b","src/back/hlsl/conv.rs":"d238a55a66abd5d006138022d1db053d03fb5b93db6a751c4c123fb9ba07cb34","src/back/hlsl/help.rs":"0b8c1fc2fac4c922b5be858b9741e6534d6207020b5df29293b811d944a19b89","src/back/hlsl/keywords.rs":"e1cfffb593bc1909797fc45ccd25e73094aa1a04a1781ccf7f0d47569241db88","src/back/hlsl/mod.rs":"069b43df569b34c2819c1add4d25951e662f9d1958f5e1ffa7f75c3e67bcf3be","src/back/hlsl/ray.rs":"259db3bc8fd5b8ec343fb8620c7cef50048cbea2b9db1f17dc8813ff848269df","src/back/hlsl/storage.rs":"7443cea2abb6ce8d0c0c9bfe805b37b5600bd28618de44ba1ebd8e4e38eac92f","src/back/hlsl/writer.rs":"bd139df13c57824ae1b8ccd6b788a88c72170213b1bd71d766b113c3c5d3fb5d","src/back/mod.rs":"1a7ae319f3f3f4257229ddeebbf4102d676891ada827d5fc0d28ec71a168cf0d","src/back/msl/keywords.rs":"3f0f2ff1859d29d54457c3604caffbf5f0ea678dbb7d68e0f376c2eef0634302","src/back/msl/mod.rs":"75b6dfe361b80b3a1ee78474ccb8aa3d0081415879dcb41182c1aae6e296f063","src/back/msl/sampler.rs":"9be8805063258b0ff6b6db2e6856d59326caa18f6f64eaf413c5abfcbd1ad341","src/back/msl/writer.rs":"996958acd0b025b455fe8566a2efa95b95a344fef18172d0d349feb107f23f98","src/back/pipeline_constants.rs":"9e51ed3812378835ca34a81f4c6f9cd070e80588c0b4ab69322bfe7c968d63da","src/back/spv/block.rs":"93311fa8e90b913aa1780df00d55667b12e5319eefbb9e892b7c8b698479db41","src/back/spv/helpers.rs":"37ef7388b1e97edb2682b93f1f0eceb71039ecd54923d91346d974b29322077c","src/back/spv/image.rs":"c8891267d553e28ddefa0111959f6c04b80e1cade41527645e98832238128418","src/back/spv/index.rs":"5f0561a83011bcf482575d209c549ce08fce85b9dd95f179f6e8c2b112e0c8e5","src/back/spv/instructions.rs":"ec6dff2dcaa80efc3de92aa43aadc147be5ea52b31c10d28cf91d8079decab63","src/back/spv/layout.rs":"52b965e9efd572dac72e0ee51041256fcc666eb4b2eadebe786e8ff39f6e031a","src/back/spv/mod.rs":"273508507be444e8424423218664c1f53458eb05c4b9de04b74262aa2fc64106","src/back/spv/ray.rs":"fcb55dc8e3b1cca9f17a3aa8fd7432aaac4b4ffb0cf8fe53c349014f5f53a897","src/back/spv/recyclable.rs":"8ea397d4d8d3f2cd5fbc8e0be94d136c2d6e0f0e8a4b5eb567dcc1be104c9ae5","src/back/spv/selection.rs":"aea4bb4da7c0fa4e907b8f1e185433a48f2f0eb7ded97fdd3225beb3f6c1f249","src/back/spv/subgroup.rs":"9003f0f653fd466f2568341e18583d49f639a3f4e6f30dbeb069c853f846ef33","src/back/spv/writer.rs":"dc614fc776859a8b51e09f1ab8f4758b57201a0dda0ec3f0a8559d8125ee5aae","src/back/wgsl/mod.rs":"1b04d66e8dba609513d43431d1f0ee9a209fbfd8453862d6e8a7aa41f8910997","src/back/wgsl/polyfill/inverse/inverse_2x2_f16.wgsl":"9e7635d04724822931c805a8b35e76d6d294d447e4ea8d57b308ce45609bf736","src/back/wgsl/polyfill/inverse/inverse_2x2_f32.wgsl":"340d491abde07f93996391796db65a5f88402663eaf6b9d2d894d11cb8cf8b6d","src/back/wgsl/polyfill/inverse/inverse_3x3_f16.wgsl":"4f13a1a4b3e1b51f0f992d13c55cf854a80917554a4d13c997819fa1fe776ba4","src/back/wgsl/polyfill/inverse/inverse_3x3_f32.wgsl":"9b16d2f4b9e433c8e03a0cb46ab48508f3bf7e185ce1b4e26106c47e81a677cb","src/back/wgsl/polyfill/inverse/inverse_4x4_f16.wgsl":"86d39d1db5d03995b404950279db7f1698ad9622982aa319fdedb7532673235b","src/back/wgsl/polyfill/inverse/inverse_4x4_f32.wgsl":"dc510525ac2dce66389a8c4bf8b2f31f0dedd9e6debdbe4ffd939a0a7fc533d3","src/back/wgsl/polyfill/mod.rs":"f4ab3c9b9cdc36d16dab00d0f7f07d6e6beda0e27a36053e9b5ffeeb7ca18edc","src/back/wgsl/writer.rs":"33884d5cab99f8122f558da85af356744c96b60aada585ecb6f8ea7f1a3a22e7","src/common/diagnostic_debug.rs":"8c73fe605e5b6162d0485e264287ac50c061cf581743feebbffe1474d1d3516d","src/common/diagnostic_display.rs":"46f1ff8a32179703ef0bcdb704db9f6e6e8b4eaad6cadf94577eeab3d8a16cd1","src/common/mod.rs":"289231637b08407fbe2cc976a1bab4eac4c9e66042c6618aff3af44baaff3e26","src/common/predeclared.rs":"a5f42d55f2e13d8f5a8213d4a881e9155c3994c4054d43edcf7bd7bb7c868ccf","src/common/wgsl/diagnostics.rs":"4fec985b4c5cc6dfae4dd78bd7c850adc88a1761d7b6691de0355ea49300e532","src/common/wgsl/mod.rs":"d944915ff692c96aecca67737bccc2d5d9eb68f475166a2744f29a025f4a4c93","src/common/wgsl/to_wgsl.rs":"62f3a83e7adf35adf5fb9023e842e3fac080aa898e3da7b6c8810fd0984b1b13","src/common/wgsl/types.rs":"9ccdd6676437ac7e282a508403eb24742dea654b380d6419ffe5aac9cd699996","src/compact/expressions.rs":"ecd5e2ff40198e2b7e24f2ca19abfa16167ec58e9be320c9b1dc3268a57d147f","src/compact/functions.rs":"9618539e9d3641d85c11573447d9773e7376cad23b1fd868ed5565b5eb93e05f","src/compact/handle_set_map.rs":"c190919a19f1f6b8d064459114937fdd1eaeb057963e4eab8f05a5219759cf34","src/compact/mod.rs":"834a6660504d9c3c1dab2433a91701440bb8141cca6974fb78dbe61d15ba6418","src/compact/statements.rs":"9d877ff561e2d5d45fef9a8f5e0147ad55bcbaca73898949b689b41e683fdb60","src/compact/types.rs":"a955ce5e336afa8d26f750c14d4a6638dcee6b0b5e0fcd7c446d8f88a35d8277","src/diagnostic_filter.rs":"7478de8ed51cca0ef57e29c8a0f981f2876f8ae6805bd244fc3846efea9cb3cc","src/error.rs":"009be12825fa9cb7bffc691c1d3907ae32064512f86dfa61984c65593dc265b3","src/front/atomic_upgrade.rs":"86ce9f9628d92a1a09802cb534bb4310236b83f2799c921b81c687f009c589be","src/front/glsl/ast.rs":"15a4f7c56aa44529373c7aa2a266d1582b7775833de6adc6b8f5bfd54d85a669","src/front/glsl/builtins.rs":"f38de43ada63181e5cf059fc3cfe52c302295b0eaad075b4aee1dfef6ef366b6","src/front/glsl/context.rs":"14fd933c79f49f4fb4ccabdc24ad31745777806f7464f111a4f7782662612a4b","src/front/glsl/error.rs":"74ab1a8e599d0e588d26e9066d2dbdea85bde0f229c42b8b786f14abc032794d","src/front/glsl/functions.rs":"1e8329c6de847336f5b196258d82f807f54021b6221da4d94326d071aeda25ba","src/front/glsl/lex.rs":"24706628b600b5ce435cef464c84196ac5d58013122a97e7b59d509cc25f85a2","src/front/glsl/mod.rs":"f4f1cce6911935b305c415afe3c15f84c7824a3bb828a5d15e6f9ae4b0316df0","src/front/glsl/offset.rs":"66bd524a2d17dc44f431430dcbbb74a771fdab43c9581e88bb1123e6cfec516b","src/front/glsl/parser.rs":"6a13b4737f53b09d5bbc0add01f8fc1b2633b7957f0318374edfe0b903939912","src/front/glsl/parser/declarations.rs":"9949649fba43636d03eaf7f7560d3bb3743b19c7204fb95859283ee84b5dd239","src/front/glsl/parser/expressions.rs":"e056fbdde3bc7c8473acbd485aecd14120d3dbefbabd813ddbc5cfedaf605889","src/front/glsl/parser/functions.rs":"302e24e06190aff555131c33f9a80b15df6a0390d6c776f888a44d5ef7df697e","src/front/glsl/parser/types.rs":"ee242048a65cd3709e16b70a3882e9296e615327480f2ad779e3d2523778181f","src/front/glsl/parser_tests.rs":"6834f0d595f4077266054e5da43e4f1b60e5c6780611ab0f530d9964cc62fad3","src/front/glsl/token.rs":"83780c0c1954ef216896c9d8a48e412b357783e00ccd4909a7a249935c742629","src/front/glsl/types.rs":"286395d82707a09d28b4c1a8bade917822478e53d8eb277ceec5fa9e71649ba2","src/front/glsl/variables.rs":"75d3e203a07befd011f5693ab8f2789e4f06821badb4974043cc4ee10bd5c6c9","src/front/interpolator.rs":"4d6c6639c01fba78ffb8d0af298094cc2d6bb33f8054dad4379fd9fe3af5a4c8","src/front/mod.rs":"e78e91bf1f17409c5e25fd360415e999bb69b159750d2c1673a3db9973f586e0","src/front/spv/convert.rs":"16b8281fc1ae75dc62a02893db2c5b6d8994166e78b3b6b8cac7a01e0da4eae2","src/front/spv/error.rs":"912b7d0348d4eaaddc0049ab789ed14874b1a7d77505db092dccc132e602ee84","src/front/spv/function.rs":"6da0d7dec521039a3c81669ff171c7f15673bb3e93402f2a0f1c8e6f92d7f004","src/front/spv/image.rs":"3631c8533e69673e1de3f7896be004f154b3151ae1cf7aa2ca105df689d24e43","src/front/spv/mod.rs":"767040d6b28319b73c49cf9d1314f937c96c1888da9d81e47be270483757905a","src/front/spv/null.rs":"ee20287365e025e8bcc91f29df930ff8b63cb6d7f26db0b1789d54de614a7353","src/front/type_gen.rs":"d7abef5dfc9e18ae549ebb87bd61f5c9cd1007bde3cf280745dbadb48667a248","src/front/wgsl/error.rs":"329fa5dae7402554eec946d79b28794cc89115effe0c9abd5e44dd28a094a5ad","src/front/wgsl/index.rs":"1db1bee7074a3fe9668d2c2ba0bd5053d6443f4ea19a56e4cccf2aa2bc8a33c9","src/front/wgsl/lower/construction.rs":"24e0eb2181974651ab9d13497cceaa126ee816c38848e9dbbd88f1e7b5f5c53c","src/front/wgsl/lower/conversion.rs":"c36cfc6822e662646c9e856a814d189b147ef07b6226d37916123dae62575f8c","src/front/wgsl/lower/mod.rs":"b751ca46525b298d1e9808cb6473eab6528d2029b4f9b88506f1bb7c8710ba8d","src/front/wgsl/mod.rs":"435d381a2224682d60bc40f716a12ab00f239355e400a0d0cce40c055377cd73","src/front/wgsl/parse/ast.rs":"19c7ebafbecd29a795ea11e0e0f3c1a64d406594037ece7c3dce3670d808897a","src/front/wgsl/parse/conv.rs":"4ca3282f2e3daa1750d268299e9f9deac00a70f7692e6bc727554e6b8cc89115","src/front/wgsl/parse/directive.rs":"c96f33cef2c1d8a374fe1b3827538f7db33d6b7811a6e0914d29de80b8963257","src/front/wgsl/parse/directive/enable_extension.rs":"519d7c3574c859a434d4b9febeccd1bc255d238ca1f76db68246e2ebe5a6eec4","src/front/wgsl/parse/directive/language_extension.rs":"eaf7a846ffdd102ebe4f7ed008df7ac4daedd87fda07f1a1e97d2b37d3286581","src/front/wgsl/parse/lexer.rs":"a43060f637965045aabe3d6498ecf4b0bbc40aee4bb0156ca542b09b3c08178f","src/front/wgsl/parse/mod.rs":"8a86ed10bf881823b69394e6ec5568b83f387a960df4eef8bd611d7b86edc18a","src/front/wgsl/parse/number.rs":"7af92c71031e4c4258e9d8d323f7ee99a2fd4be3b6975ab9b8b53b95431845d9","src/front/wgsl/tests.rs":"a50bd5d6d218fc0be8876d1f9db7936ff593d93805c5e85754ae6bf277beae32","src/ir/block.rs":"b562a83a4fa53002d2ca21b4553ed8e2fa77f61e687f24fd4bbd90f1597b2a9d","src/ir/mod.rs":"0a589baf24770e8eb0f873360ba7ec12e3a05313d6ea708d28bd08b9c68f9194","src/keywords/mod.rs":"47a6fde012bf7d1e70f0fac7762f6a8e7dca6b9bbb99e2cada773c61527cfbfe","src/keywords/wgsl.rs":"60e8b7082d9df8c89544ad08ef7fdd8f7b75c48906cffb285fe4f53de04bb263","src/lib.rs":"c62861b9e3133d560034cdb7af9dea448c4c0d0da7b6ee2f1b69050571302c12","src/non_max_u32.rs":"b2d81efda0e1e5ace9e2fad990a7adf628f1dec63273b069c93d5423eb78350d","src/proc/constant_evaluator.rs":"5dc9986a54f34313ed01cf1ac3b6de9a36ffe4ed9e21777678080cb3388c698f","src/proc/emitter.rs":"39ac886c651e2ad33c06a676a7e4826a0e93de0af660c01e8e4b1f7406742f88","src/proc/index.rs":"f1defc37588bb9ef8c097db8f7ebe4898a9aa182d8009d3c2e76b38b4144fb91","src/proc/layouter.rs":"bf50fed8cf4b15400218fa1cf897f04925795939b09c9ce658eb8bc7559a5705","src/proc/mod.rs":"8b79b860f32f27568b9e2a45845424deb89960bbcd32ef46e168bc4ab995457c","src/proc/namer.rs":"d706e30b34f3d2b3e292174acfce229a2579dbffc986ee81e5bb6219bf8bb76f","src/proc/overloads/any_overload_set.rs":"877cd637d979abc08caa021dabb9821a79fc9109eb97024a230bcfac82830388","src/proc/overloads/constructor_set.rs":"b702f866ac1472bcc075bd0bede450388123b5899431934fd60a29865498c68b","src/proc/overloads/list.rs":"7cfbf66a3619fdd66f9acf652d56cd2a9451f7905c5d4637cdb9f77f4ef2af51","src/proc/overloads/mathfunction.rs":"d5801d64d1a6fd10e0da30a7c0ac7368954654e5f3d0b022fa806ff9a2ab61b8","src/proc/overloads/mod.rs":"0e96479cbd0ec9fa8200a5e88c16a22ee7ed2021ecf6f80a7e4ded69cad5239f","src/proc/overloads/one_bits_iter.rs":"6b98769fdec777d311248084f13958c5cca44659d0928603ece8618387ea58b2","src/proc/overloads/regular.rs":"e272f1973c881f17ef23a0509edc0a1184b20778b1f03bdb33a4d6b15c4a25e1","src/proc/overloads/rule.rs":"b7f87d5ca0cffdaa8ee0db0110918f5a726359fd8a72bc638d8ce27a4b0ae3b2","src/proc/overloads/scalar_set.rs":"3729bc754dbf29a2337379ecb46568fdc3149a48074a354244da91e3d9cb5cef","src/proc/overloads/utils.rs":"4b5e02f20611bd24c6849e1f2c01aad4b271388407e8eb866d5a34983538ef8f","src/proc/terminator.rs":"66b0082dce3b29d6d20e9a891c66524d756c8e567ac844d61355248ac4623b07","src/proc/type_methods.rs":"f1b73b2507377d04ee873ace7971e1b4bc90ff520d3534df1cd29de56035366a","src/proc/typifier.rs":"3bea9c55fb9d6141072c6a17b6fc9d990de4bd5209bf5ea3eb3a5d72466aa2c4","src/span.rs":"fed0e579ee9aa9dc48d4f333cf376963f179441691d17cc20a454ee64d5479a9","src/valid/analyzer.rs":"7295b7fff5bc787cb2d48d93731b4b5d4ffe250429a5373364edc3bd8616dc5e","src/valid/compose.rs":"44f01ed290d49b9ffc5651c2edaf9a7aa3b969828790a732da39a908b54aee24","src/valid/expression.rs":"d5c5009591d8c38c4adf876a569b975bb1276f21148cbe04196cc2a5d385822c","src/valid/function.rs":"8533623f909fdabd07e547f1a354f3be4923197b0fd9136acc78facdd77f964d","src/valid/handles.rs":"2750068c629fcad7ed876c1fd4b117d2deba5d3c9e9d6ed686df2c1a79df1fa1","src/valid/interface.rs":"34d459c1e42c83acd95cdd06632dca5a5a16fa7f609d079f85cd2802725675b2","src/valid/mod.rs":"a0fe52cee7a4fe474b479ffec3fba583a3ef492a103a2f5c902bd0a8a203c914","src/valid/type.rs":"0947af787fcbd40ac74dc6fb35c1973879cbd548d1cb815eb0907c0a7bf7c362"},"package":null} \ No newline at end of file diff --git a/third_party/rust/naga/src/back/glsl/mod.rs b/third_party/rust/naga/src/back/glsl/mod.rs index 6b26d209373e..de9ca1793ccf 100644 --- a/third_party/rust/naga/src/back/glsl/mod.rs +++ b/third_party/rust/naga/src/back/glsl/mod.rs @@ -1392,6 +1392,8 @@ impl<'a, W: Write> Writer<'a, W> { } crate::MathFunction::Pack4xI8 | crate::MathFunction::Pack4xU8 + | crate::MathFunction::Pack4xI8Clamp + | crate::MathFunction::Pack4xU8Clamp | crate::MathFunction::Unpack4xI8 | crate::MathFunction::Unpack4xU8 | crate::MathFunction::QuantizeToF16 => { @@ -3879,24 +3881,35 @@ impl<'a, W: Write> Writer<'a, W> { } } - fun @ (Mf::Pack4xI8 | Mf::Pack4xU8) => { - let was_signed = match fun { - Mf::Pack4xI8 => true, - Mf::Pack4xU8 => false, - _ => unreachable!(), + fun @ (Mf::Pack4xI8 | Mf::Pack4xU8 | Mf::Pack4xI8Clamp | Mf::Pack4xU8Clamp) => { + let was_signed = matches!(fun, Mf::Pack4xI8 | Mf::Pack4xI8Clamp); + let clamp_bounds = match fun { + Mf::Pack4xI8Clamp => Some(("-128", "127")), + Mf::Pack4xU8Clamp => Some(("0", "255")), + _ => None, }; let const_suffix = if was_signed { "" } else { "u" }; if was_signed { write!(self.out, "uint(")?; } + let write_arg = |this: &mut Self| -> BackendResult { + if let Some((min, max)) = clamp_bounds { + write!(this.out, "clamp(")?; + this.write_expr(arg, ctx)?; + write!(this.out, ", {min}{const_suffix}, {max}{const_suffix})")?; + } else { + this.write_expr(arg, ctx)?; + } + Ok(()) + }; write!(self.out, "(")?; - self.write_expr(arg, ctx)?; + write_arg(self)?; write!(self.out, "[0] & 0xFF{const_suffix}) | ((")?; - self.write_expr(arg, ctx)?; + write_arg(self)?; write!(self.out, "[1] & 0xFF{const_suffix}) << 8) | ((")?; - self.write_expr(arg, ctx)?; + write_arg(self)?; write!(self.out, "[2] & 0xFF{const_suffix}) << 16) | ((")?; - self.write_expr(arg, ctx)?; + write_arg(self)?; write!(self.out, "[3] & 0xFF{const_suffix}) << 24)")?; if was_signed { write!(self.out, ")")?; diff --git a/third_party/rust/naga/src/back/hlsl/writer.rs b/third_party/rust/naga/src/back/hlsl/writer.rs index 791ea511f3b5..f11dcd7744b2 100644 --- a/third_party/rust/naga/src/back/hlsl/writer.rs +++ b/third_party/rust/naga/src/back/hlsl/writer.rs @@ -224,7 +224,9 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { | crate::MathFunction::Pack4x8snorm | crate::MathFunction::Pack4x8unorm | crate::MathFunction::Pack4xI8 - | crate::MathFunction::Pack4xU8 => { + | crate::MathFunction::Pack4xU8 + | crate::MathFunction::Pack4xI8Clamp + | crate::MathFunction::Pack4xU8Clamp => { self.need_bake_expressions.insert(arg); } crate::MathFunction::CountLeadingZeros => { @@ -966,6 +968,15 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { // Push constants need to be assigned a binding explicitly by the consumer // since naga has no way to know the binding from the shader alone if global.space == crate::AddressSpace::PushConstant { + match module.types[global.ty].inner { + TypeInner::Struct { .. } => {} + _ => { + return Err(Error::Unimplemented(format!( + "push-constant '{name}' has non-struct type; tracked by: https://github.com/gfx-rs/wgpu/issues/5683" + ))); + } + } + let target = self .options .push_constants_target @@ -3430,6 +3441,8 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { Pack4x8unorm, Pack4xI8, Pack4xU8, + Pack4xI8Clamp, + Pack4xU8Clamp, Unpack2x16float, Unpack2x16snorm, Unpack2x16unorm, @@ -3529,6 +3542,8 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { Mf::Pack4x8unorm => Function::Pack4x8unorm, Mf::Pack4xI8 => Function::Pack4xI8, Mf::Pack4xU8 => Function::Pack4xU8, + Mf::Pack4xI8Clamp => Function::Pack4xI8Clamp, + Mf::Pack4xU8Clamp => Function::Pack4xU8Clamp, // Data Unpacking Mf::Unpack2x16float => Function::Unpack2x16float, Mf::Unpack2x16snorm => Function::Unpack2x16snorm, @@ -3629,19 +3644,38 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { self.write_expr(module, arg, func_ctx)?; write!(self.out, "[3], 0.0, 1.0) * {scale}.0)) << 24)")?; } - fun @ (Function::Pack4xI8 | Function::Pack4xU8) => { - let was_signed = matches!(fun, Function::Pack4xI8); + fun @ (Function::Pack4xI8 + | Function::Pack4xU8 + | Function::Pack4xI8Clamp + | Function::Pack4xU8Clamp) => { + let was_signed = + matches!(fun, Function::Pack4xI8 | Function::Pack4xI8Clamp); + let clamp_bounds = match fun { + Function::Pack4xI8Clamp => Some(("-128", "127")), + Function::Pack4xU8Clamp => Some(("0", "255")), + _ => None, + }; if was_signed { write!(self.out, "uint(")?; } + let write_arg = |this: &mut Self| -> BackendResult { + if let Some((min, max)) = clamp_bounds { + write!(this.out, "clamp(")?; + this.write_expr(module, arg, func_ctx)?; + write!(this.out, ", {min}, {max})")?; + } else { + this.write_expr(module, arg, func_ctx)?; + } + Ok(()) + }; write!(self.out, "(")?; - self.write_expr(module, arg, func_ctx)?; + write_arg(self)?; write!(self.out, "[0] & 0xFF) | ((")?; - self.write_expr(module, arg, func_ctx)?; + write_arg(self)?; write!(self.out, "[1] & 0xFF) << 8) | ((")?; - self.write_expr(module, arg, func_ctx)?; + write_arg(self)?; write!(self.out, "[2] & 0xFF) << 16) | ((")?; - self.write_expr(module, arg, func_ctx)?; + write_arg(self)?; write!(self.out, "[3] & 0xFF) << 24)")?; if was_signed { write!(self.out, ")")?; diff --git a/third_party/rust/naga/src/back/msl/writer.rs b/third_party/rust/naga/src/back/msl/writer.rs index 2a98ce09895c..f1cef93db8f2 100644 --- a/third_party/rust/naga/src/back/msl/writer.rs +++ b/third_party/rust/naga/src/back/msl/writer.rs @@ -2271,6 +2271,8 @@ impl Writer { Mf::Pack2x16float => "", Mf::Pack4xI8 => "", Mf::Pack4xU8 => "", + Mf::Pack4xI8Clamp => "", + Mf::Pack4xU8Clamp => "", // data unpacking Mf::Unpack4x8snorm => "unpack_snorm4x8_to_float", Mf::Unpack4x8unorm => "unpack_unorm4x8_to_float", @@ -2435,19 +2437,34 @@ impl Writer { write!(self.out, "{fun_name}")?; self.put_call_parameters(iter::once(arg), context)?; } - fun @ (Mf::Pack4xI8 | Mf::Pack4xU8) => { - let was_signed = fun == Mf::Pack4xI8; + fun @ (Mf::Pack4xI8 | Mf::Pack4xU8 | Mf::Pack4xI8Clamp | Mf::Pack4xU8Clamp) => { + let was_signed = matches!(fun, Mf::Pack4xI8 | Mf::Pack4xI8Clamp); + let clamp_bounds = match fun { + Mf::Pack4xI8Clamp => Some(("-128", "127")), + Mf::Pack4xU8Clamp => Some(("0", "255")), + _ => None, + }; if was_signed { write!(self.out, "uint(")?; } + let write_arg = |this: &mut Self| -> BackendResult { + if let Some((min, max)) = clamp_bounds { + write!(this.out, "{NAMESPACE}::clamp(")?; + this.put_expression(arg, context, true)?; + write!(this.out, ", {min}, {max})")?; + } else { + this.put_expression(arg, context, true)?; + } + Ok(()) + }; write!(self.out, "(")?; - self.put_expression(arg, context, true)?; + write_arg(self)?; write!(self.out, "[0] & 0xFF) | ((")?; - self.put_expression(arg, context, true)?; + write_arg(self)?; write!(self.out, "[1] & 0xFF) << 8) | ((")?; - self.put_expression(arg, context, true)?; + write_arg(self)?; write!(self.out, "[2] & 0xFF) << 16) | ((")?; - self.put_expression(arg, context, true)?; + write_arg(self)?; write!(self.out, "[3] & 0xFF) << 24)")?; if was_signed { write!(self.out, ")")?; @@ -3212,6 +3229,8 @@ impl Writer { crate::MathFunction::FirstLeadingBit | crate::MathFunction::Pack4xI8 | crate::MathFunction::Pack4xU8 + | crate::MathFunction::Pack4xI8Clamp + | crate::MathFunction::Pack4xU8Clamp | crate::MathFunction::Unpack4xI8 | crate::MathFunction::Unpack4xU8 => { self.need_bake_expressions.insert(arg); diff --git a/third_party/rust/naga/src/back/spv/block.rs b/third_party/rust/naga/src/back/spv/block.rs index 231b0008eb0b..2e9cd3280167 100644 --- a/third_party/rust/naga/src/back/spv/block.rs +++ b/third_party/rust/naga/src/back/spv/block.rs @@ -1517,12 +1517,13 @@ impl BlockContext<'_> { Mf::Pack2x16float => MathOp::Ext(spirv::GLOp::PackHalf2x16), Mf::Pack2x16unorm => MathOp::Ext(spirv::GLOp::PackUnorm2x16), Mf::Pack2x16snorm => MathOp::Ext(spirv::GLOp::PackSnorm2x16), - fun @ (Mf::Pack4xI8 | Mf::Pack4xU8) => { + fun @ (Mf::Pack4xI8 | Mf::Pack4xU8 | Mf::Pack4xI8Clamp | Mf::Pack4xU8Clamp) => { let (int_type, is_signed) = match fun { - Mf::Pack4xI8 => (crate::ScalarKind::Sint, true), - Mf::Pack4xU8 => (crate::ScalarKind::Uint, false), + Mf::Pack4xI8 | Mf::Pack4xI8Clamp => (crate::ScalarKind::Sint, true), + Mf::Pack4xU8 | Mf::Pack4xU8Clamp => (crate::ScalarKind::Uint, false), _ => unreachable!(), }; + let should_clamp = matches!(fun, Mf::Pack4xI8Clamp | Mf::Pack4xU8Clamp); let uint_type_id = self.get_numeric_type_id(NumericType::Scalar(crate::Scalar::U32)); @@ -1563,6 +1564,34 @@ impl BlockContext<'_> { )); extracted = casted; } + if should_clamp { + let (min, max, clamp_op) = if is_signed { + ( + crate::Literal::I32(-128), + crate::Literal::I32(127), + spirv::GLOp::SClamp, + ) + } else { + ( + crate::Literal::U32(0), + crate::Literal::U32(255), + spirv::GLOp::UClamp, + ) + }; + let [min, max] = + [min, max].map(|lit| self.writer.get_constant_scalar(lit)); + + let clamp_id = self.gen_id(); + block.body.push(Instruction::ext_inst( + self.writer.gl450_ext_inst_id, + clamp_op, + result_type_id, + clamp_id, + &[extracted, min, max], + )); + + extracted = clamp_id; + } let is_last = i == u32::from(VEC_LENGTH - 1); if is_last { last_instruction = Instruction::quaternary( diff --git a/third_party/rust/naga/src/common/wgsl/to_wgsl.rs b/third_party/rust/naga/src/common/wgsl/to_wgsl.rs index 07bb21fa3d55..426d15c5c41f 100644 --- a/third_party/rust/naga/src/common/wgsl/to_wgsl.rs +++ b/third_party/rust/naga/src/common/wgsl/to_wgsl.rs @@ -139,6 +139,8 @@ impl TryToWgsl for crate::MathFunction { Mf::Pack2x16float => "pack2x16float", Mf::Pack4xI8 => "pack4xI8", Mf::Pack4xU8 => "pack4xU8", + Mf::Pack4xI8Clamp => "pack4xI8Clamp", + Mf::Pack4xU8Clamp => "pack4xU8Clamp", Mf::Unpack4x8snorm => "unpack4x8snorm", Mf::Unpack4x8unorm => "unpack4x8unorm", Mf::Unpack2x16snorm => "unpack2x16snorm", diff --git a/third_party/rust/naga/src/error.rs b/third_party/rust/naga/src/error.rs index 81aa99d9d7e5..f2e79adb6488 100644 --- a/third_party/rust/naga/src/error.rs +++ b/third_party/rust/naga/src/error.rs @@ -17,6 +17,7 @@ impl fmt::Display for ShaderError { write!(f, "\nShader '{label}' parsing {string}") } } + #[cfg(feature = "glsl-in")] impl fmt::Display for ShaderError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -25,6 +26,7 @@ impl fmt::Display for ShaderError { write!(f, "\nShader '{label}' parsing {string}") } } + #[cfg(feature = "spv-in")] impl fmt::Display for ShaderError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -33,6 +35,7 @@ impl fmt::Display for ShaderError { write!(f, "\nShader '{label}' parsing {string}") } } + impl fmt::Display for ShaderError> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { use codespan_reporting::{files::SimpleFile, term}; @@ -50,6 +53,7 @@ impl fmt::Display for ShaderError ) } } + impl Error for ShaderError where ShaderError: fmt::Display, diff --git a/third_party/rust/naga/src/front/wgsl/lower/mod.rs b/third_party/rust/naga/src/front/wgsl/lower/mod.rs index 53f7d0dc8467..a0e7cd30762a 100644 --- a/third_party/rust/naga/src/front/wgsl/lower/mod.rs +++ b/third_party/rust/naga/src/front/wgsl/lower/mod.rs @@ -14,9 +14,7 @@ use crate::front::wgsl::parse::number::Number; use crate::front::wgsl::parse::{ast, conv}; use crate::front::wgsl::Result; use crate::front::Typifier; -use crate::proc::{ - ensure_block_returns, Alignment, ConstantEvaluator, Emitter, Layouter, ResolveContext, -}; +use crate::{ir, proc}; use crate::{Arena, FastHashMap, FastIndexMap, Handle, Span}; mod construction; @@ -26,7 +24,7 @@ mod conversion; /// /// Expects a &mut [`ExpressionContext`] and a [`Handle`]. /// -/// Returns a &[`crate::TypeInner`]. +/// Returns a &[`ir::TypeInner`]. /// /// Ideally, we would simply have a function that takes a `&mut ExpressionContext` /// and returns a `&TypeResolution`. Unfortunately, this leads the borrow checker @@ -47,7 +45,7 @@ pub(super) use resolve_inner; /// /// Expects a &mut [`ExpressionContext`] and two [`Handle`]s. /// -/// Returns a tuple containing two &[`crate::TypeInner`]. +/// Returns a tuple containing two &[`ir::TypeInner`]. /// /// See the documentation of [`resolve_inner!`] for why this macro is necessary. macro_rules! resolve_inner_binary { @@ -69,7 +67,7 @@ macro_rules! resolve_inner_binary { /// /// See the documentation of [`resolve_inner!`] for why this macro is necessary. /// -/// [`TypeResolution`]: crate::proc::TypeResolution +/// [`TypeResolution`]: proc::TypeResolution macro_rules! resolve { ($ctx:ident, $expr:expr) => {{ $ctx.grow_types($expr)?; @@ -78,7 +76,7 @@ macro_rules! resolve { } pub(super) use resolve; -/// State for constructing a `crate::Module`. +/// State for constructing a `ir::Module`. pub struct GlobalContext<'source, 'temp, 'out> { /// The `TranslationUnit`'s expressions arena. ast_expressions: &'temp Arena>, @@ -92,13 +90,13 @@ pub struct GlobalContext<'source, 'temp, 'out> { globals: &'temp mut FastHashMap<&'source str, LoweredGlobalDecl>, /// The module we're constructing. - module: &'out mut crate::Module, + module: &'out mut ir::Module, const_typifier: &'temp mut Typifier, - layouter: &'temp mut Layouter, + layouter: &'temp mut proc::Layouter, - global_expression_kind_tracker: &'temp mut crate::proc::ExpressionKindTracker, + global_expression_kind_tracker: &'temp mut proc::ExpressionKindTracker, } impl<'source> GlobalContext<'source, '_, '_> { @@ -131,11 +129,11 @@ impl<'source> GlobalContext<'source, '_, '_> { fn ensure_type_exists( &mut self, name: Option, - inner: crate::TypeInner, - ) -> Handle { + inner: ir::TypeInner, + ) -> Handle { self.module .types - .insert(crate::Type { inner, name }, Span::UNDEFINED) + .insert(ir::Type { inner, name }, Span::UNDEFINED) } } @@ -171,19 +169,19 @@ pub struct StatementContext<'source, 'temp, 'out> { /// This always borrows the `local_table` local variable in /// [`Lowerer::function`]. /// - /// [`LocalVariable`]: crate::Expression::LocalVariable - /// [`FunctionArgument`]: crate::Expression::FunctionArgument + /// [`LocalVariable`]: ir::Expression::LocalVariable + /// [`FunctionArgument`]: ir::Expression::FunctionArgument local_table: - &'temp mut FastHashMap, Declared>>>, + &'temp mut FastHashMap, Declared>>>, const_typifier: &'temp mut Typifier, typifier: &'temp mut Typifier, - layouter: &'temp mut Layouter, - function: &'out mut crate::Function, + layouter: &'temp mut proc::Layouter, + function: &'out mut ir::Function, /// Stores the names of expressions that are assigned in `let` statement /// Also stores the spans of the names, for use in errors. - named_expressions: &'out mut FastIndexMap, (String, Span)>, - module: &'out mut crate::Module, + named_expressions: &'out mut FastIndexMap, (String, Span)>, + module: &'out mut ir::Module, /// Which `Expression`s in `self.naga_expressions` are const expressions, in /// the WGSL sense. @@ -194,15 +192,15 @@ pub struct StatementContext<'source, 'temp, 'out> { /// with the form of the expressions; it is also tracking whether WGSL says /// we should consider them to be const. See the use of `force_non_const` in /// the code for lowering `let` bindings. - local_expression_kind_tracker: &'temp mut crate::proc::ExpressionKindTracker, - global_expression_kind_tracker: &'temp mut crate::proc::ExpressionKindTracker, + local_expression_kind_tracker: &'temp mut proc::ExpressionKindTracker, + global_expression_kind_tracker: &'temp mut proc::ExpressionKindTracker, } impl<'a, 'temp> StatementContext<'a, 'temp, '_> { fn as_const<'t>( &'t mut self, - block: &'t mut crate::Block, - emitter: &'t mut Emitter, + block: &'t mut ir::Block, + emitter: &'t mut proc::Emitter, ) -> ExpressionContext<'a, 't, 't> where 'temp: 't, @@ -228,8 +226,8 @@ impl<'a, 'temp> StatementContext<'a, 'temp, '_> { fn as_expression<'t>( &'t mut self, - block: &'t mut crate::Block, - emitter: &'t mut Emitter, + block: &'t mut ir::Block, + emitter: &'t mut proc::Emitter, ) -> ExpressionContext<'a, 't, 't> where 'temp: 't, @@ -266,14 +264,14 @@ impl<'a, 'temp> StatementContext<'a, 'temp, '_> { } } - fn invalid_assignment_type(&self, expr: Handle) -> InvalidAssignmentType { + fn invalid_assignment_type(&self, expr: Handle) -> InvalidAssignmentType { if let Some(&(_, span)) = self.named_expressions.get(&expr) { InvalidAssignmentType::ImmutableBinding(span) } else { match self.function.expressions[expr] { - crate::Expression::Swizzle { .. } => InvalidAssignmentType::Swizzle, - crate::Expression::Access { base, .. } => self.invalid_assignment_type(base), - crate::Expression::AccessIndex { base, .. } => self.invalid_assignment_type(base), + ir::Expression::Swizzle { .. } => InvalidAssignmentType::Swizzle, + ir::Expression::Access { base, .. } => self.invalid_assignment_type(base), + ir::Expression::AccessIndex { base, .. } => self.invalid_assignment_type(base), _ => InvalidAssignmentType::Other, } } @@ -285,18 +283,18 @@ pub struct LocalExpressionContext<'temp, 'out> { /// /// This is always [`StatementContext::local_table`] for the /// enclosing statement; see that documentation for details. - local_table: &'temp FastHashMap, Declared>>>, + local_table: &'temp FastHashMap, Declared>>>, - function: &'out mut crate::Function, - block: &'temp mut crate::Block, - emitter: &'temp mut Emitter, + function: &'out mut ir::Function, + block: &'temp mut ir::Block, + emitter: &'temp mut proc::Emitter, typifier: &'temp mut Typifier, /// Which `Expression`s in `self.naga_expressions` are const expressions, in /// the WGSL sense. /// /// See [`StatementContext::local_expression_kind_tracker`] for details. - local_expression_kind_tracker: &'temp mut crate::proc::ExpressionKindTracker, + local_expression_kind_tracker: &'temp mut proc::ExpressionKindTracker, } /// The type of Naga IR expression we are lowering an [`ast::Expression`] to. @@ -357,12 +355,12 @@ pub enum ExpressionContextType<'temp, 'out> { /// /// [`expr_type`]: ExpressionContext::expr_type /// [`Runtime`]: ExpressionContextType::Runtime -/// [`naga::Expression`]: crate::Expression -/// [`naga::Function`]: crate::Function +/// [`naga::Expression`]: ir::Expression +/// [`naga::Function`]: ir::Function /// [`Constant`]: ExpressionContextType::Constant -/// [`naga::Module`]: crate::Module +/// [`naga::Module`]: ir::Module /// [`as_const`]: ExpressionContext::as_const -/// [`Expression::Constant`]: crate::Expression::Constant +/// [`Expression::Constant`]: ir::Expression::Constant pub struct ExpressionContext<'source, 'temp, 'out> { // WGSL AST values. ast_expressions: &'temp Arena>, @@ -375,15 +373,15 @@ pub struct ExpressionContext<'source, 'temp, 'out> { /// The IR [`Module`] we're constructing. /// - /// [`Module`]: crate::Module - module: &'out mut crate::Module, + /// [`Module`]: ir::Module + module: &'out mut ir::Module, /// Type judgments for [`module::global_expressions`]. /// - /// [`module::global_expressions`]: crate::Module::global_expressions + /// [`module::global_expressions`]: ir::Module::global_expressions const_typifier: &'temp mut Typifier, - layouter: &'temp mut Layouter, - global_expression_kind_tracker: &'temp mut crate::proc::ExpressionKindTracker, + layouter: &'temp mut proc::Layouter, + global_expression_kind_tracker: &'temp mut proc::ExpressionKindTracker, /// Whether we are lowering a constant expression or a general /// runtime expression, and the data needed in each case. @@ -391,11 +389,11 @@ pub struct ExpressionContext<'source, 'temp, 'out> { } impl TypeContext for ExpressionContext<'_, '_, '_> { - fn lookup_type(&self, handle: Handle) -> &crate::Type { + fn lookup_type(&self, handle: Handle) -> &ir::Type { &self.module.types[handle] } - fn type_name(&self, handle: Handle) -> &str { + fn type_name(&self, handle: Handle) -> &str { self.module.types[handle] .name .as_deref() @@ -404,7 +402,7 @@ impl TypeContext for ExpressionContext<'_, '_, '_> { fn write_override( &self, - handle: Handle, + handle: Handle, out: &mut W, ) -> core::fmt::Result { match self.module.overrides[handle].name { @@ -415,7 +413,7 @@ impl TypeContext for ExpressionContext<'_, '_, '_> { fn write_unnamed_struct( &self, - _: &crate::TypeInner, + _: &ir::TypeInner, _: &mut W, ) -> core::fmt::Result { unreachable!("the WGSL front end should always know the type name"); @@ -463,19 +461,21 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { } } - fn as_const_evaluator(&mut self) -> ConstantEvaluator { + fn as_const_evaluator(&mut self) -> proc::ConstantEvaluator { match self.expr_type { - ExpressionContextType::Runtime(ref mut rctx) => ConstantEvaluator::for_wgsl_function( - self.module, - &mut rctx.function.expressions, - rctx.local_expression_kind_tracker, - self.layouter, - rctx.emitter, - rctx.block, - false, - ), + ExpressionContextType::Runtime(ref mut rctx) => { + proc::ConstantEvaluator::for_wgsl_function( + self.module, + &mut rctx.function.expressions, + rctx.local_expression_kind_tracker, + self.layouter, + rctx.emitter, + rctx.block, + false, + ) + } ExpressionContextType::Constant(Some(ref mut rctx)) => { - ConstantEvaluator::for_wgsl_function( + proc::ConstantEvaluator::for_wgsl_function( self.module, &mut rctx.function.expressions, rctx.local_expression_kind_tracker, @@ -485,13 +485,13 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { true, ) } - ExpressionContextType::Constant(None) => ConstantEvaluator::for_wgsl_module( + ExpressionContextType::Constant(None) => proc::ConstantEvaluator::for_wgsl_module( self.module, self.global_expression_kind_tracker, self.layouter, false, ), - ExpressionContextType::Override => ConstantEvaluator::for_wgsl_module( + ExpressionContextType::Override => proc::ConstantEvaluator::for_wgsl_module( self.module, self.global_expression_kind_tracker, self.layouter, @@ -508,16 +508,16 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { fn as_diagnostic_display( &self, value: T, - ) -> crate::common::DiagnosticDisplay<(T, crate::proc::GlobalCtx)> { + ) -> crate::common::DiagnosticDisplay<(T, proc::GlobalCtx)> { let ctx = self.module.to_ctx(); crate::common::DiagnosticDisplay((value, ctx)) } fn append_expression( &mut self, - expr: crate::Expression, + expr: ir::Expression, span: Span, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let mut eval = self.as_const_evaluator(); eval.try_eval_and_append(expr, span) .map_err(|e| Box::new(Error::ConstantEvaluatorError(e.into(), span))) @@ -525,12 +525,12 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { fn const_eval_expr_to_u32( &self, - handle: Handle, - ) -> core::result::Result { + handle: Handle, + ) -> core::result::Result { match self.expr_type { ExpressionContextType::Runtime(ref ctx) => { if !ctx.local_expression_kind_tracker.is_const(handle) { - return Err(crate::proc::U32EvalError::NonConst); + return Err(proc::U32EvalError::NonConst); } self.module @@ -544,12 +544,12 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { .eval_expr_to_u32_from(handle, &ctx.function.expressions) } ExpressionContextType::Constant(None) => self.module.to_ctx().eval_expr_to_u32(handle), - ExpressionContextType::Override => Err(crate::proc::U32EvalError::NonConst), + ExpressionContextType::Override => Err(proc::U32EvalError::NonConst), } } /// Return `true` if `handle` is a constant expression. - fn is_const(&self, handle: Handle) -> bool { + fn is_const(&self, handle: Handle) -> bool { use ExpressionContextType as Ect; match self.expr_type { Ect::Runtime(ref ctx) | Ect::Constant(Some(ref ctx)) => { @@ -561,7 +561,7 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { } } - fn get_expression_span(&self, handle: Handle) -> Span { + fn get_expression_span(&self, handle: Handle) -> Span { match self.expr_type { ExpressionContextType::Runtime(ref ctx) | ExpressionContextType::Constant(Some(ref ctx)) => { @@ -587,7 +587,7 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { &mut self, local: &Handle, span: Span, - ) -> Result<'source, Typed>> { + ) -> Result<'source, Typed>> { match self.expr_type { ExpressionContextType::Runtime(ref ctx) => Ok(ctx.local_table[local].runtime()), ExpressionContextType::Constant(Some(ref ctx)) => ctx.local_table[local] @@ -611,10 +611,10 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { fn gather_component( &mut self, - expr: Handle, + expr: Handle, component_span: Span, gather_span: Span, - ) -> Result<'source, crate::SwizzleComponent> { + ) -> Result<'source, ir::SwizzleComponent> { match self.expr_type { ExpressionContextType::Runtime(ref rctx) => { if !rctx.local_expression_kind_tracker.is_const(expr) { @@ -628,14 +628,12 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { .to_ctx() .eval_expr_to_u32_from(expr, &rctx.function.expressions) .map_err(|err| match err { - crate::proc::U32EvalError::NonConst => { + proc::U32EvalError::NonConst => { Error::ExpectedConstExprConcreteIntegerScalar(component_span) } - crate::proc::U32EvalError::Negative => { - Error::ExpectedNonNegative(component_span) - } + proc::U32EvalError::Negative => Error::ExpectedNonNegative(component_span), })?; - crate::SwizzleComponent::XYZW + ir::SwizzleComponent::XYZW .get(index as usize) .copied() .ok_or(Box::new(Error::InvalidGatherComponent(component_span))) @@ -657,11 +655,11 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { /// creating a [`LocalVariable`] whose type is inferred from its /// initializer. /// - /// [`LocalVariable`]: crate::LocalVariable + /// [`LocalVariable`]: ir::LocalVariable fn register_type( &mut self, - handle: Handle, - ) -> Result<'source, Handle> { + handle: Handle, + ) -> Result<'source, Handle> { self.grow_types(handle)?; // This is equivalent to calling ExpressionContext::typifier(), // except that this lets the borrow checker see that it's okay @@ -693,10 +691,10 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { /// [`resolve_inner!`] or [`resolve_inner_binary!`]. /// /// [`self.typifier`]: ExpressionContext::typifier - /// [`TypeResolution`]: crate::proc::TypeResolution + /// [`TypeResolution`]: proc::TypeResolution /// [`register_type`]: Self::register_type /// [`Typifier`]: Typifier - fn grow_types(&mut self, handle: Handle) -> Result<'source, &mut Self> { + fn grow_types(&mut self, handle: Handle) -> Result<'source, &mut Self> { let empty_arena = Arena::new(); let resolve_ctx; let typifier; @@ -704,7 +702,7 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { match self.expr_type { ExpressionContextType::Runtime(ref mut ctx) | ExpressionContextType::Constant(Some(ref mut ctx)) => { - resolve_ctx = ResolveContext::with_locals( + resolve_ctx = proc::ResolveContext::with_locals( self.module, &ctx.function.local_variables, &ctx.function.arguments, @@ -713,7 +711,7 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { expressions = &ctx.function.expressions; } ExpressionContextType::Constant(None) | ExpressionContextType::Override => { - resolve_ctx = ResolveContext::with_locals(self.module, &empty_arena, &[]); + resolve_ctx = proc::ResolveContext::with_locals(self.module, &empty_arena, &[]); typifier = self.const_typifier; expressions = &self.module.global_expressions; } @@ -727,11 +725,11 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { fn image_data( &mut self, - image: Handle, + image: Handle, span: Span, - ) -> Result<'source, (crate::ImageClass, bool)> { + ) -> Result<'source, (ir::ImageClass, bool)> { match *resolve_inner!(self, image) { - crate::TypeInner::Image { class, arrayed, .. } => Ok((class, arrayed)), + ir::TypeInner::Image { class, arrayed, .. } => Ok((class, arrayed)), _ => Err(Box::new(Error::BadTexture(span))), } } @@ -760,30 +758,30 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { /// operations, so inserting splats into the IR increases size needlessly. fn binary_op_splat( &mut self, - op: crate::BinaryOperator, - left: &mut Handle, - right: &mut Handle, + op: ir::BinaryOperator, + left: &mut Handle, + right: &mut Handle, ) -> Result<'source, ()> { if matches!( op, - crate::BinaryOperator::Add - | crate::BinaryOperator::Subtract - | crate::BinaryOperator::Divide - | crate::BinaryOperator::Modulo + ir::BinaryOperator::Add + | ir::BinaryOperator::Subtract + | ir::BinaryOperator::Divide + | ir::BinaryOperator::Modulo ) { match resolve_inner_binary!(self, *left, *right) { - (&crate::TypeInner::Vector { size, .. }, &crate::TypeInner::Scalar { .. }) => { + (&ir::TypeInner::Vector { size, .. }, &ir::TypeInner::Scalar { .. }) => { *right = self.append_expression( - crate::Expression::Splat { + ir::Expression::Splat { size, value: *right, }, self.get_expression_span(*right), )?; } - (&crate::TypeInner::Scalar { .. }, &crate::TypeInner::Vector { size, .. }) => { + (&ir::TypeInner::Scalar { .. }, &ir::TypeInner::Vector { size, .. }) => { *left = self.append_expression( - crate::Expression::Splat { size, value: *left }, + ir::Expression::Splat { size, value: *left }, self.get_expression_span(*left), )?; } @@ -800,9 +798,9 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { /// `Emit` statements. fn interrupt_emitter( &mut self, - expression: crate::Expression, + expression: ir::Expression, span: Span, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { match self.expr_type { ExpressionContextType::Runtime(ref mut rctx) | ExpressionContextType::Constant(Some(ref mut rctx)) => { @@ -828,11 +826,11 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { /// `T`. Otherwise, return `expr` unchanged. fn apply_load_rule( &mut self, - expr: Typed>, - ) -> Result<'source, Handle> { + expr: Typed>, + ) -> Result<'source, Handle> { match expr { Typed::Reference(pointer) => { - let load = crate::Expression::Load { pointer }; + let load = ir::Expression::Load { pointer }; let span = self.get_expression_span(pointer); self.append_expression(load, span) } @@ -840,7 +838,7 @@ impl<'source, 'temp, 'out> ExpressionContext<'source, 'temp, 'out> { } } - fn ensure_type_exists(&mut self, inner: crate::TypeInner) -> Handle { + fn ensure_type_exists(&mut self, inner: ir::TypeInner) -> Handle { self.as_global().ensure_type_exists(None, inner) } } @@ -914,18 +912,18 @@ impl Declared { /// /// The `T` type parameter can be any expression-like thing: /// -/// - `Typed>` can represent a full WGSL type. For example, +/// - `Typed>` can represent a full WGSL type. For example, /// given some Naga `Pointer` type `ptr`, a WGSL reference type is a /// `Typed::Reference(ptr)` whereas a WGSL pointer type is a /// `Typed::Plain(ptr)`. /// -/// - `Typed` or `Typed>` can +/// - `Typed` or `Typed>` can /// represent references similarly. /// /// Use the `map` and `try_map` methods to convert from one expression /// representation to another. /// -/// [`Expression`]: crate::Expression +/// [`Expression`]: ir::Expression #[derive(Debug, Copy, Clone)] enum Typed { /// A WGSL reference. @@ -962,14 +960,14 @@ impl Typed { enum Components { Single(u32), Swizzle { - size: crate::VectorSize, - pattern: [crate::SwizzleComponent; 4], + size: ir::VectorSize, + pattern: [ir::SwizzleComponent; 4], }, } impl Components { - const fn letter_component(letter: char) -> Option { - use crate::SwizzleComponent as Sc; + const fn letter_component(letter: char) -> Option { + use ir::SwizzleComponent as Sc; match letter { 'x' | 'r' => Some(Sc::X), 'y' | 'g' => Some(Sc::Y), @@ -993,13 +991,13 @@ impl Components { fn new(name: &str, name_span: Span) -> Result { let size = match name.len() { 1 => return Ok(Components::Single(Self::single_component(name, name_span)?)), - 2 => crate::VectorSize::Bi, - 3 => crate::VectorSize::Tri, - 4 => crate::VectorSize::Quad, + 2 => ir::VectorSize::Bi, + 3 => ir::VectorSize::Tri, + 4 => ir::VectorSize::Quad, _ => return Err(Box::new(Error::BadAccessor(name_span))), }; - let mut pattern = [crate::SwizzleComponent::X; 4]; + let mut pattern = [ir::SwizzleComponent::X; 4]; for (comp, ch) in pattern.iter_mut().zip(name.chars()) { *comp = Self::letter_component(ch).ok_or(Error::BadAccessor(name_span))?; } @@ -1017,13 +1015,13 @@ impl Components { /// An `ast::GlobalDecl` for which we have built the Naga IR equivalent. enum LoweredGlobalDecl { Function { - handle: Handle, + handle: Handle, must_use: bool, }, - Var(Handle), - Const(Handle), - Override(Handle), - Type(Handle), + Var(Handle), + Const(Handle), + Override(Handle), + Type(Handle), EntryPoint, } @@ -1114,8 +1112,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { Self { index } } - pub fn lower(&mut self, tu: ast::TranslationUnit<'source>) -> Result<'source, crate::Module> { - let mut module = crate::Module { + pub fn lower(&mut self, tu: ast::TranslationUnit<'source>) -> Result<'source, ir::Module> { + let mut module = ir::Module { diagnostic_filters: tu.diagnostic_filters, diagnostic_filter_leaf: tu.diagnostic_filter_leaf, ..Default::default() @@ -1127,8 +1125,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { types: &tu.types, module: &mut module, const_typifier: &mut Typifier::new(), - layouter: &mut Layouter::default(), - global_expression_kind_tracker: &mut crate::proc::ExpressionKindTracker::new(), + layouter: &mut proc::Layouter::default(), + global_expression_kind_tracker: &mut proc::ExpressionKindTracker::new(), }; for decl_handle in self.index.visit_ordered() { @@ -1154,7 +1152,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { )?; let binding = if let Some(ref binding) = v.binding { - Some(crate::ResourceBinding { + Some(ir::ResourceBinding { group: self.const_u32(binding.group, &mut ctx.as_const())?.0, binding: self.const_u32(binding.binding, &mut ctx.as_const())?.0, }) @@ -1163,7 +1161,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let handle = ctx.module.global_variables.append( - crate::GlobalVariable { + ir::GlobalVariable { name: Some(v.name.name.to_string()), space: v.space, binding, @@ -1193,7 +1191,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let init = init.expect("Global const must have init"); let handle = ctx.module.constants.append( - crate::Constant { + ir::Constant { name: Some(c.name.name.to_string()), ty, init, @@ -1233,7 +1231,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let handle = ctx.module.overrides.append( - crate::Override { + ir::Override { name: Some(o.name.name.to_string()), id, ty, @@ -1289,16 +1287,16 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, name: ast::Ident<'source>, init: Option>>, - explicit_ty: Option>, + explicit_ty: Option>, abstract_rule: AbstractRule, ectx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, (Handle, Option>)> { + ) -> Result<'source, (Handle, Option>)> { let ty; let initializer; match (init, explicit_ty) { (Some(init), Some(explicit_ty)) => { let init = self.expression_for_abstract(init, ectx)?; - let ty_res = crate::proc::TypeResolution::Handle(explicit_ty); + let ty_res = proc::TypeResolution::Handle(explicit_ty); let init = ectx .try_automatic_conversions(init, &ty_res, name.span) .map_err(|error| match *error { @@ -1312,8 +1310,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let init_ty = ectx.register_type(init)?; if !ectx.module.compare_types( - &crate::proc::TypeResolution::Handle(explicit_ty), - &crate::proc::TypeResolution::Handle(init_ty), + &proc::TypeResolution::Handle(explicit_ty), + &proc::TypeResolution::Handle(init_ty), ) { return Err(Box::new(Error::InitializationTypeMismatch { name: name.span, @@ -1350,7 +1348,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let mut local_table = FastHashMap::default(); let mut expressions = Arena::new(); let mut named_expressions = FastIndexMap::default(); - let mut local_expression_kind_tracker = crate::proc::ExpressionKindTracker::new(); + let mut local_expression_kind_tracker = proc::ExpressionKindTracker::new(); let arguments = f .arguments @@ -1358,13 +1356,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .enumerate() .map(|(i, arg)| -> Result<'_, _> { let ty = self.resolve_ast_type(arg.ty, &mut ctx.as_const())?; - let expr = expressions - .append(crate::Expression::FunctionArgument(i as u32), arg.name.span); + let expr = + expressions.append(ir::Expression::FunctionArgument(i as u32), arg.name.span); local_table.insert(arg.handle, Declared::Runtime(Typed::Plain(expr))); named_expressions.insert(expr, (arg.name.name.to_string(), arg.name.span)); - local_expression_kind_tracker.insert(expr, crate::proc::ExpressionKind::Runtime); + local_expression_kind_tracker.insert(expr, proc::ExpressionKind::Runtime); - Ok(crate::FunctionArgument { + Ok(ir::FunctionArgument { name: Some(arg.name.name.to_string()), ty, binding: self.binding(&arg.binding, ty, ctx)?, @@ -1377,21 +1375,21 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .as_ref() .map(|res| -> Result<'_, _> { let ty = self.resolve_ast_type(res.ty, &mut ctx.as_const())?; - Ok(crate::FunctionResult { + Ok(ir::FunctionResult { ty, binding: self.binding(&res.binding, ty, ctx)?, }) }) .transpose()?; - let mut function = crate::Function { + let mut function = ir::Function { name: Some(f.name.name.to_string()), arguments, result, local_variables: Arena::new(), expressions, named_expressions: crate::NamedExpressions::default(), - body: crate::Block::default(), + body: ir::Block::default(), diagnostic_filter_leaf: f.diagnostic_filter_leaf, }; @@ -1411,7 +1409,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { global_expression_kind_tracker: ctx.global_expression_kind_tracker, }; let mut body = self.block(&f.body, false, &mut stmt_ctx)?; - ensure_block_returns(&mut body); + proc::ensure_block_returns(&mut body); function.body = body; function.named_expressions = named_expressions @@ -1433,7 +1431,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { Err(err) => { if let Error::ConstantEvaluatorError(ref ty, _) = *err { match **ty { - crate::proc::ConstantEvaluatorError::OverrideExpr => { + proc::ConstantEvaluatorError::OverrideExpr => { workgroup_size_overrides_out[i] = Some(self.workgroup_size_override( size_expr, @@ -1461,7 +1459,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let (workgroup_size, workgroup_size_overrides) = workgroup_size_info; - ctx.module.entry_points.push(crate::EntryPoint { + ctx.module.entry_points.push(ir::EntryPoint { name: f.name.name.to_string(), stage: entry.stage, early_depth_test: entry.early_depth_test, @@ -1483,11 +1481,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, size_expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let span = ctx.ast_expressions.get_span(size_expr); let expr = self.expression(size_expr, ctx)?; match resolve_inner!(ctx, expr).scalar_kind().ok_or(0) { - Ok(crate::ScalarKind::Sint) | Ok(crate::ScalarKind::Uint) => Ok(expr), + Ok(ir::ScalarKind::Sint) | Ok(ir::ScalarKind::Uint) => Ok(expr), _ => Err(Box::new(Error::ExpectedConstExprConcreteIntegerScalar( span, ))), @@ -1499,8 +1497,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { b: &ast::Block<'source>, is_inside_loop: bool, ctx: &mut StatementContext<'source, '_, '_>, - ) -> Result<'source, crate::Block> { - let mut block = crate::Block::default(); + ) -> Result<'source, ir::Block> { + let mut block = ir::Block::default(); for stmt in b.stmts.iter() { self.statement(stmt, &mut block, is_inside_loop, ctx)?; @@ -1512,18 +1510,18 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { fn statement( &mut self, stmt: &ast::Statement<'source>, - block: &mut crate::Block, + block: &mut ir::Block, is_inside_loop: bool, ctx: &mut StatementContext<'source, '_, '_>, ) -> Result<'source, ()> { let out = match stmt.kind { ast::StatementKind::Block(ref block) => { let block = self.block(block, is_inside_loop, ctx)?; - crate::Statement::Block(block) + ir::Statement::Block(block) } ast::StatementKind::LocalDecl(ref decl) => match *decl { ast::LocalDecl::Let(ref l) => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let explicit_ty = l @@ -1563,7 +1561,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { return Ok(()); } ast::LocalDecl::Var(ref v) => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let explicit_ty = @@ -1604,7 +1602,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let var = ctx.function.local_variables.append( - crate::LocalVariable { + ir::LocalVariable { name: Some(v.name.name.to_string()), ty, init: const_initializer, @@ -1612,16 +1610,15 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { stmt.span, ); - let handle = ctx.as_expression(block, &mut emitter).interrupt_emitter( - crate::Expression::LocalVariable(var), - Span::UNDEFINED, - )?; + let handle = ctx + .as_expression(block, &mut emitter) + .interrupt_emitter(ir::Expression::LocalVariable(var), Span::UNDEFINED)?; block.extend(emitter.finish(&ctx.function.expressions)); ctx.local_table .insert(v.handle, Declared::Runtime(Typed::Reference(handle))); match initializer { - Some(initializer) => crate::Statement::Store { + Some(initializer) => ir::Statement::Store { pointer: handle, value: initializer, }, @@ -1629,7 +1626,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } } ast::LocalDecl::Const(ref c) => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let ectx = &mut ctx.as_const(block, &mut emitter); @@ -1658,7 +1655,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { ref accept, ref reject, } => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let condition = @@ -1668,7 +1665,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let accept = self.block(accept, is_inside_loop, ctx)?; let reject = self.block(reject, is_inside_loop, ctx)?; - crate::Statement::If { + ir::Statement::If { condition, accept, reject, @@ -1678,7 +1675,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { selector, ref cases, } => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let mut ectx = ctx.as_expression(block, &mut emitter); @@ -1696,10 +1693,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let expr = self.expression_for_abstract(expr, &mut ectx)?; let ty = resolve_inner!(ectx, expr); match *ty { - crate::TypeInner::Scalar( - crate::Scalar::I32 - | crate::Scalar::U32 - | crate::Scalar::ABSTRACT_INT, + ir::TypeInner::Scalar( + ir::Scalar::I32 | ir::Scalar::U32 | ir::Scalar::ABSTRACT_INT, ) => Ok((expr, span)), _ => match i { 0 => Err(Box::new(Error::InvalidSwitchSelector { span })), @@ -1715,8 +1710,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { span: spans[span_idx], })?; // Concretize to I32 if the selector and all cases were abstract - if consensus == crate::Scalar::ABSTRACT_INT { - consensus = crate::Scalar::I32; + if consensus == ir::Scalar::ABSTRACT_INT { + consensus = ir::Scalar::I32; } for expr in &mut exprs { ectx.convert_to_leaf_scalar(expr, consensus)?; @@ -1732,7 +1727,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let cases = cases .iter() .map(|case| { - Ok(crate::SwitchCase { + Ok(ir::SwitchCase { value: match case.value { ast::SwitchValue::Expr(expr) => { let span = ctx.ast_expressions.get_span(expr); @@ -1744,11 +1739,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .to_ctx() .eval_expr_to_literal_from(expr, &ctx.function.expressions) { - Some(crate::Literal::I32(value)) => { - crate::SwitchValue::I32(value) + Some(ir::Literal::I32(value)) => { + ir::SwitchValue::I32(value) } - Some(crate::Literal::U32(value)) => { - crate::SwitchValue::U32(value) + Some(ir::Literal::U32(value)) => { + ir::SwitchValue::U32(value) } _ => { return Err(Box::new(Error::InvalidSwitchCase { @@ -1757,7 +1752,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } } } - ast::SwitchValue::Default => crate::SwitchValue::Default, + ast::SwitchValue::Default => ir::SwitchValue::Default, }, body: self.block(&case.body, is_inside_loop, ctx)?, fall_through: case.fall_through, @@ -1765,7 +1760,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }) .collect::>()?; - crate::Statement::Switch { selector, cases } + ir::Statement::Switch { selector, cases } } ast::StatementKind::Loop { ref body, @@ -1775,7 +1770,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let body = self.block(body, true, ctx)?; let mut continuing = self.block(continuing, true, ctx)?; - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let break_if = break_if .map(|expr| { @@ -1784,16 +1779,16 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .transpose()?; continuing.extend(emitter.finish(&ctx.function.expressions)); - crate::Statement::Loop { + ir::Statement::Loop { body, continuing, break_if, } } - ast::StatementKind::Break => crate::Statement::Break, - ast::StatementKind::Continue => crate::Statement::Continue, + ast::StatementKind::Break => ir::Statement::Break, + ast::StatementKind::Continue => ir::Statement::Continue, ast::StatementKind::Return { value: ast_value } => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let value; @@ -1804,7 +1799,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { if let Some(result_ty) = result_ty { let mut ectx = ctx.as_expression(block, &mut emitter); - let resolution = crate::proc::TypeResolution::Handle(result_ty); + let resolution = proc::TypeResolution::Handle(result_ty); let converted = ectx.try_automatic_conversions(expr, &resolution, Span::default())?; value = Some(converted); @@ -1816,14 +1811,14 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } block.extend(emitter.finish(&ctx.function.expressions)); - crate::Statement::Return { value } + ir::Statement::Return { value } } - ast::StatementKind::Kill => crate::Statement::Kill, + ast::StatementKind::Kill => ir::Statement::Kill, ast::StatementKind::Call { ref function, ref arguments, } => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let _ = self.call( @@ -1841,7 +1836,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { op, value, } => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let target_span = ctx.ast_expressions.get_span(ast_target); @@ -1863,8 +1858,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // operators are exceptions, in that the right operand is always // a `u32` or `vecN`. let target_scalar = match op { - Some(crate::BinaryOperator::ShiftLeft | crate::BinaryOperator::ShiftRight) => { - Some(crate::Scalar::U32) + Some(ir::BinaryOperator::ShiftLeft | ir::BinaryOperator::ShiftRight) => { + Some(ir::Scalar::U32) } _ => resolve_inner!(ectx, target_handle) .pointer_automatically_convertible_scalar(&ectx.module.types), @@ -1885,7 +1880,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let mut left = ectx.apply_load_rule(target)?; ectx.binary_op_splat(op, &mut left, &mut value)?; ectx.append_expression( - crate::Expression::Binary { + ir::Expression::Binary { op, left, right: value, @@ -1897,18 +1892,18 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; block.extend(emitter.finish(&ctx.function.expressions)); - crate::Statement::Store { + ir::Statement::Store { pointer: target_handle, value, } } ast::StatementKind::Increment(value) | ast::StatementKind::Decrement(value) => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let op = match stmt.kind { - ast::StatementKind::Increment(_) => crate::BinaryOperator::Add, - ast::StatementKind::Decrement(_) => crate::BinaryOperator::Subtract, + ast::StatementKind::Increment(_) => ir::BinaryOperator::Add, + ast::StatementKind::Decrement(_) => ir::BinaryOperator::Subtract, _ => unreachable!(), }; @@ -1924,28 +1919,26 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let mut ectx = ctx.as_expression(block, &mut emitter); let scalar = match *resolve_inner!(ectx, target_handle) { - crate::TypeInner::ValuePointer { + ir::TypeInner::ValuePointer { size: None, scalar, .. } => scalar, - crate::TypeInner::Pointer { base, .. } => match ectx.module.types[base].inner { - crate::TypeInner::Scalar(scalar) => scalar, + ir::TypeInner::Pointer { base, .. } => match ectx.module.types[base].inner { + ir::TypeInner::Scalar(scalar) => scalar, _ => return Err(Box::new(Error::BadIncrDecrReferenceType(value_span))), }, _ => return Err(Box::new(Error::BadIncrDecrReferenceType(value_span))), }; let literal = match scalar.kind { - crate::ScalarKind::Sint | crate::ScalarKind::Uint => { - crate::Literal::one(scalar) - .ok_or(Error::BadIncrDecrReferenceType(value_span))? - } + ir::ScalarKind::Sint | ir::ScalarKind::Uint => ir::Literal::one(scalar) + .ok_or(Error::BadIncrDecrReferenceType(value_span))?, _ => return Err(Box::new(Error::BadIncrDecrReferenceType(value_span))), }; let right = - ectx.interrupt_emitter(crate::Expression::Literal(literal), Span::UNDEFINED)?; + ectx.interrupt_emitter(ir::Expression::Literal(literal), Span::UNDEFINED)?; let rctx = ectx.runtime_expression_ctx(stmt.span)?; let left = rctx.function.expressions.append( - crate::Expression::Load { + ir::Expression::Load { pointer: target_handle, }, value_span, @@ -1953,20 +1946,20 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let value = rctx .function .expressions - .append(crate::Expression::Binary { op, left, right }, stmt.span); + .append(ir::Expression::Binary { op, left, right }, stmt.span); rctx.local_expression_kind_tracker - .insert(left, crate::proc::ExpressionKind::Runtime); + .insert(left, proc::ExpressionKind::Runtime); rctx.local_expression_kind_tracker - .insert(value, crate::proc::ExpressionKind::Runtime); + .insert(value, proc::ExpressionKind::Runtime); block.extend(emitter.finish(&ctx.function.expressions)); - crate::Statement::Store { + ir::Statement::Store { pointer: target_handle, value, } } ast::StatementKind::ConstAssert(condition) => { - let mut emitter = Emitter::default(); + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let condition = @@ -1988,7 +1981,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { return Ok(()); } ast::StatementKind::Phony(expr) => { - let mut emitter = Emitter::default(); + // Remembered the RHS of the phony assignment as a named expression. This + // is important (1) to preserve the RHS for validation, (2) to track any + // referenced globals. + let mut emitter = proc::Emitter::default(); emitter.start(&ctx.function.expressions); let value = self.expression(expr, &mut ctx.as_expression(block, &mut emitter))?; @@ -2015,7 +2011,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let expr = self.expression_for_abstract(expr, ctx)?; ctx.concretize(expr) } @@ -2024,36 +2020,44 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let expr = self.expression_for_reference(expr, ctx)?; ctx.apply_load_rule(expr) } + fn expression_with_leaf_scalar( + &mut self, + expr: Handle>, + scalar: ir::Scalar, + ctx: &mut ExpressionContext<'source, '_, '_>, + ) -> Result<'source, Handle> { + let unconverted = self.expression_for_abstract(expr, ctx)?; + ctx.try_automatic_conversion_for_leaf_scalar(unconverted, scalar, Span::default()) + } + fn expression_for_reference( &mut self, expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Typed>> { + ) -> Result<'source, Typed>> { let span = ctx.ast_expressions.get_span(expr); let expr = &ctx.ast_expressions[expr]; - let expr: Typed = match *expr { + let expr: Typed = match *expr { ast::Expression::Literal(literal) => { let literal = match literal { - ast::Literal::Number(Number::F16(f)) => crate::Literal::F16(f), - ast::Literal::Number(Number::F32(f)) => crate::Literal::F32(f), - ast::Literal::Number(Number::I32(i)) => crate::Literal::I32(i), - ast::Literal::Number(Number::U32(u)) => crate::Literal::U32(u), - ast::Literal::Number(Number::I64(i)) => crate::Literal::I64(i), - ast::Literal::Number(Number::U64(u)) => crate::Literal::U64(u), - ast::Literal::Number(Number::F64(f)) => crate::Literal::F64(f), - ast::Literal::Number(Number::AbstractInt(i)) => crate::Literal::AbstractInt(i), - ast::Literal::Number(Number::AbstractFloat(f)) => { - crate::Literal::AbstractFloat(f) - } - ast::Literal::Bool(b) => crate::Literal::Bool(b), + ast::Literal::Number(Number::F16(f)) => ir::Literal::F16(f), + ast::Literal::Number(Number::F32(f)) => ir::Literal::F32(f), + ast::Literal::Number(Number::I32(i)) => ir::Literal::I32(i), + ast::Literal::Number(Number::U32(u)) => ir::Literal::U32(u), + ast::Literal::Number(Number::I64(i)) => ir::Literal::I64(i), + ast::Literal::Number(Number::U64(u)) => ir::Literal::U64(u), + ast::Literal::Number(Number::F64(f)) => ir::Literal::F64(f), + ast::Literal::Number(Number::AbstractInt(i)) => ir::Literal::AbstractInt(i), + ast::Literal::Number(Number::AbstractFloat(f)) => ir::Literal::AbstractFloat(f), + ast::Literal::Bool(b) => ir::Literal::Bool(b), }; - let handle = ctx.interrupt_emitter(crate::Expression::Literal(literal), span)?; + let handle = ctx.interrupt_emitter(ir::Expression::Literal(literal), span)?; return Ok(Typed::Plain(handle)); } ast::Expression::Ident(ast::IdentExpr::Local(local)) => { @@ -2066,17 +2070,17 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .ok_or(Error::UnknownIdent(span, name))?; let expr = match *global { LoweredGlobalDecl::Var(handle) => { - let expr = crate::Expression::GlobalVariable(handle); + let expr = ir::Expression::GlobalVariable(handle); match ctx.module.global_variables[handle].space { - crate::AddressSpace::Handle => Typed::Plain(expr), + ir::AddressSpace::Handle => Typed::Plain(expr), _ => Typed::Reference(expr), } } LoweredGlobalDecl::Const(handle) => { - Typed::Plain(crate::Expression::Constant(handle)) + Typed::Plain(ir::Expression::Constant(handle)) } LoweredGlobalDecl::Override(handle) => { - Typed::Plain(crate::Expression::Override(handle)) + Typed::Plain(ir::Expression::Override(handle)) } LoweredGlobalDecl::Function { .. } | LoweredGlobalDecl::Type(_) @@ -2097,7 +2101,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } ast::Expression::Unary { op, expr } => { let expr = self.expression_for_abstract(expr, ctx)?; - Typed::Plain(crate::Expression::Unary { op, expr }) + Typed::Plain(ir::Expression::Unary { op, expr }) } ast::Expression::AddrOf(expr) => { // The `&` operator simply converts a reference to a pointer. And since a @@ -2105,13 +2109,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { match self.expression_for_reference(expr, ctx)? { Typed::Reference(handle) => { let expr = &ctx.runtime_expression_ctx(span)?.function.expressions[handle]; - if let &crate::Expression::Access { base, .. } - | &crate::Expression::AccessIndex { base, .. } = expr + if let &ir::Expression::Access { base, .. } + | &ir::Expression::AccessIndex { base, .. } = expr { if let Some(ty) = resolve_inner!(ctx, base).pointer_base_type() { if matches!( *ty.inner_with(&ctx.module.types), - crate::TypeInner::Vector { .. }, + ir::TypeInner::Vector { .. }, ) { return Err(Box::new(Error::InvalidAddrOfOperand( ctx.get_expression_span(handle), @@ -2166,9 +2170,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } lowered_base.try_map(|base| match ctx.const_eval_expr_to_u32(index).ok() { - Some(index) => { - Ok::<_, Box>(crate::Expression::AccessIndex { base, index }) - } + Some(index) => Ok::<_, Box>(ir::Expression::AccessIndex { base, index }), None => { // When an abstract array value e is indexed by an expression // that is not a const-expression, then the array is concretized @@ -2176,7 +2178,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // https://www.w3.org/TR/WGSL/#array-access-expr // Also applies to vectors and matrices. let base = ctx.concretize(base)?; - Ok(crate::Expression::Access { base, index }) + Ok(ir::Expression::Access { base, index }) } })? } @@ -2192,7 +2194,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } let temp_ty; - let composite_type: &crate::TypeInner = match lowered_base { + let composite_type: &ir::TypeInner = match lowered_base { Typed::Reference(handle) => { temp_ty = resolve_inner!(ctx, handle) .pointer_base_type() @@ -2206,26 +2208,27 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let access = match *composite_type { - crate::TypeInner::Struct { ref members, .. } => { + ir::TypeInner::Struct { ref members, .. } => { let index = members .iter() .position(|m| m.name.as_deref() == Some(field.name)) .ok_or(Error::BadAccessor(field.span))? as u32; - lowered_base.map(|base| crate::Expression::AccessIndex { base, index }) + lowered_base.map(|base| ir::Expression::AccessIndex { base, index }) } - crate::TypeInner::Vector { .. } => { + ir::TypeInner::Vector { .. } => { match Components::new(field.name, field.span)? { Components::Swizzle { size, pattern } => { - Typed::Plain(crate::Expression::Swizzle { + Typed::Plain(ir::Expression::Swizzle { size, vector: ctx.apply_load_rule(lowered_base)?, pattern, }) } - Components::Single(index) => lowered_base - .map(|base| crate::Expression::AccessIndex { base, index }), + Components::Single(index) => { + lowered_base.map(|base| ir::Expression::AccessIndex { base, index }) + } } } _ => return Err(Box::new(Error::BadAccessor(field.span))), @@ -2238,8 +2241,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let to_resolved = self.resolve_ast_type(to, &mut ctx.as_const())?; let element_scalar = match ctx.module.types[to_resolved].inner { - crate::TypeInner::Scalar(scalar) => scalar, - crate::TypeInner::Vector { scalar, .. } => scalar, + ir::TypeInner::Scalar(scalar) => scalar, + ir::TypeInner::Vector { scalar, .. } => scalar, _ => { let ty = resolve!(ctx, expr); return Err(Box::new(Error::BadTypeCast { @@ -2250,7 +2253,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } }; - Typed::Plain(crate::Expression::As { + Typed::Plain(ir::Expression::As { expr, kind: element_scalar.kind, convert: None, @@ -2263,12 +2266,12 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { fn binary( &mut self, - op: crate::BinaryOperator, + op: ir::BinaryOperator, left: Handle>, right: Handle>, span: Span, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Typed> { + ) -> Result<'source, Typed> { // Load both operands. let mut left = self.expression_for_abstract(left, ctx)?; let mut right = self.expression_for_abstract(right, ctx)?; @@ -2279,13 +2282,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // Apply automatic conversions. match op { - crate::BinaryOperator::ShiftLeft | crate::BinaryOperator::ShiftRight => { + ir::BinaryOperator::ShiftLeft | ir::BinaryOperator::ShiftRight => { // Shift operators require the right operand to be `u32` or // `vecN`. We can let the validator sort out vector length // issues, but the right operand must be, or convert to, a u32 leaf // scalar. right = - ctx.try_automatic_conversion_for_leaf_scalar(right, crate::Scalar::U32, span)?; + ctx.try_automatic_conversion_for_leaf_scalar(right, ir::Scalar::U32, span)?; // Additionally, we must concretize the left operand if the right operand // is not a const-expression. @@ -2319,7 +2322,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } } - Ok(Typed::Plain(crate::Expression::Binary { op, left, right })) + Ok(Typed::Plain(ir::Expression::Binary { op, left, right })) } /// Generate Naga IR for call expressions and statements, and type @@ -2339,7 +2342,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { /// `Call` statement to the current block, and then resume generating /// expressions. /// - /// [`Call`]: crate::Statement::Call + /// [`Call`]: ir::Statement::Call fn call( &mut self, span: Span, @@ -2347,7 +2350,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { arguments: &[Handle>], ctx: &mut ExpressionContext<'source, '_, '_>, is_statement: bool, - ) -> Result<'source, Option>> { + ) -> Result<'source, Option>> { let function_span = function.span; match ctx.globals.get(function.name) { Some(&LoweredGlobalDecl::Type(ty)) => { @@ -2380,7 +2383,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .enumerate() .map(|(i, &arg)| { // Try to convert abstract values to the known argument types - let Some(&crate::FunctionArgument { + let Some(&ir::FunctionArgument { ty: parameter_ty, .. }) = ctx.module.functions[function].arguments.get(i) else { @@ -2392,7 +2395,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let expr = self.expression_for_abstract(arg, ctx)?; ctx.try_automatic_conversions( expr, - &crate::proc::TypeResolution::Handle(parameter_ty), + &proc::TypeResolution::Handle(parameter_ty), ctx.ast_expressions.get_span(arg), ) }) @@ -2412,14 +2415,14 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let result = rctx .function .expressions - .append(crate::Expression::CallResult(function), span); + .append(ir::Expression::CallResult(function), span); rctx.local_expression_kind_tracker - .insert(result, crate::proc::ExpressionKind::Runtime); + .insert(result, proc::ExpressionKind::Runtime); result }); rctx.emitter.start(&rctx.function.expressions); rctx.block.push( - crate::Statement::Call { + ir::Statement::Call { function, arguments, result, @@ -2439,12 +2442,12 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // Check for no-op all(bool) and any(bool): let argument_unmodified = matches!( fun, - crate::RelationalFunction::All | crate::RelationalFunction::Any + ir::RelationalFunction::All | ir::RelationalFunction::Any ) && { matches!( resolve_inner!(ctx, argument), - &crate::TypeInner::Scalar(crate::Scalar { - kind: crate::ScalarKind::Bool, + &ir::TypeInner::Scalar(ir::Scalar { + kind: ir::ScalarKind::Bool, .. }) ) @@ -2453,14 +2456,14 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { if argument_unmodified { return Ok(Some(argument)); } else { - crate::Expression::Relational { fun, argument } + ir::Expression::Relational { fun, argument } } } else if let Some((axis, ctrl)) = conv::map_derivative(function.name) { let mut args = ctx.prepare_args(arguments, 1, span); let expr = self.expression(args.next()?, ctx)?; args.finish()?; - crate::Expression::Derivative { axis, ctrl, expr } + ir::Expression::Derivative { axis, ctrl, expr } } else if let Some(fun) = conv::map_standard_fun(function.name) { self.math_function_helper(span, fun, arguments, ctx)? } else if let Some(fun) = Texture::map(function.name) { @@ -2473,7 +2476,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { return Ok(Some( self.subgroup_gather_helper(span, mode, arguments, ctx)?, )); - } else if let Some(fun) = crate::AtomicFunction::map(function.name) { + } else if let Some(fun) = ir::AtomicFunction::map(function.name) { return self.atomic_helper(span, fun, arguments, is_statement, ctx); } else { match function.name { @@ -2486,7 +2489,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; - crate::Expression::Select { + ir::Expression::Select { reject, accept, condition, @@ -2497,14 +2500,14 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let expr = self.expression(args.next()?, ctx)?; args.finish()?; - crate::Expression::ArrayLength(expr) + ir::Expression::ArrayLength(expr) } "atomicLoad" => { let mut args = ctx.prepare_args(arguments, 1, span); let pointer = self.atomic_pointer(args.next()?, ctx)?; args.finish()?; - crate::Expression::Load { pointer } + ir::Expression::Load { pointer } } "atomicStore" => { let mut args = ctx.prepare_args(arguments, 2, span); @@ -2517,7 +2520,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .extend(rctx.emitter.finish(&rctx.function.expressions)); rctx.emitter.start(&rctx.function.expressions); rctx.block - .push(crate::Statement::Store { pointer, value }, span); + .push(ir::Statement::Store { pointer, value }, span); return Ok(None); } "atomicCompareExchangeWeak" => { @@ -2534,16 +2537,14 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; let expression = match *resolve_inner!(ctx, value) { - crate::TypeInner::Scalar(scalar) => { - crate::Expression::AtomicResult { - ty: ctx.module.generate_predeclared_type( - crate::PredeclaredType::AtomicCompareExchangeWeakResult( - scalar, - ), + ir::TypeInner::Scalar(scalar) => ir::Expression::AtomicResult { + ty: ctx.module.generate_predeclared_type( + ir::PredeclaredType::AtomicCompareExchangeWeakResult( + scalar, ), - comparison: true, - } - } + ), + comparison: true, + }, _ => { return Err(Box::new(Error::InvalidAtomicOperandType( value_span, @@ -2554,9 +2555,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let result = ctx.interrupt_emitter(expression, span)?; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block.push( - crate::Statement::Atomic { + ir::Statement::Atomic { pointer, - fun: crate::AtomicFunction::Exchange { + fun: ir::AtomicFunction::Exchange { compare: Some(compare), }, value, @@ -2592,17 +2593,17 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { rctx.block .extend(rctx.emitter.finish(&rctx.function.expressions)); rctx.emitter.start(&rctx.function.expressions); - let stmt = crate::Statement::ImageAtomic { + let stmt = ir::Statement::ImageAtomic { image, coordinate, array_index, fun: match function.name { - "textureAtomicMin" => crate::AtomicFunction::Min, - "textureAtomicMax" => crate::AtomicFunction::Max, - "textureAtomicAdd" => crate::AtomicFunction::Add, - "textureAtomicAnd" => crate::AtomicFunction::And, - "textureAtomicOr" => crate::AtomicFunction::InclusiveOr, - "textureAtomicXor" => crate::AtomicFunction::ExclusiveOr, + "textureAtomicMin" => ir::AtomicFunction::Min, + "textureAtomicMax" => ir::AtomicFunction::Max, + "textureAtomicAdd" => ir::AtomicFunction::Add, + "textureAtomicAnd" => ir::AtomicFunction::And, + "textureAtomicOr" => ir::AtomicFunction::InclusiveOr, + "textureAtomicXor" => ir::AtomicFunction::ExclusiveOr, _ => unreachable!(), }, value, @@ -2615,7 +2616,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::Barrier(crate::Barrier::STORAGE), span); + .push(ir::Statement::Barrier(ir::Barrier::STORAGE), span); return Ok(None); } "workgroupBarrier" => { @@ -2623,7 +2624,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::Barrier(crate::Barrier::WORK_GROUP), span); + .push(ir::Statement::Barrier(ir::Barrier::WORK_GROUP), span); return Ok(None); } "subgroupBarrier" => { @@ -2631,7 +2632,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::Barrier(crate::Barrier::SUB_GROUP), span); + .push(ir::Statement::Barrier(ir::Barrier::SUB_GROUP), span); return Ok(None); } "textureBarrier" => { @@ -2639,7 +2640,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::Barrier(crate::Barrier::TEXTURE), span); + .push(ir::Statement::Barrier(ir::Barrier::TEXTURE), span); return Ok(None); } "workgroupUniformLoad" => { @@ -2649,9 +2650,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let pointer = self.expression(expr, ctx)?; let result_ty = match *resolve_inner!(ctx, pointer) { - crate::TypeInner::Pointer { + ir::TypeInner::Pointer { base, - space: crate::AddressSpace::WorkGroup, + space: ir::AddressSpace::WorkGroup, } => base, ref other => { log::error!("Type {other:?} passed to workgroupUniformLoad"); @@ -2660,12 +2661,12 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } }; let result = ctx.interrupt_emitter( - crate::Expression::WorkGroupUniformLoadResult { ty: result_ty }, + ir::Expression::WorkGroupUniformLoadResult { ty: result_ty }, span, )?; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block.push( - crate::Statement::WorkGroupUniformLoad { pointer, result }, + ir::Statement::WorkGroupUniformLoad { pointer, result }, span, ); @@ -2696,7 +2697,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { rctx.block .extend(rctx.emitter.finish(&rctx.function.expressions)); rctx.emitter.start(&rctx.function.expressions); - let stmt = crate::Statement::ImageStore { + let stmt = ir::Statement::ImageStore { image, coordinate, array_index, @@ -2737,7 +2738,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; - crate::Expression::ImageLoad { + ir::Expression::ImageLoad { image, coordinate, array_index, @@ -2755,9 +2756,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .transpose()?; args.finish()?; - crate::Expression::ImageQuery { + ir::Expression::ImageQuery { image, - query: crate::ImageQuery::Size { level }, + query: ir::ImageQuery::Size { level }, } } "textureNumLevels" => { @@ -2765,9 +2766,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let image = self.expression(args.next()?, ctx)?; args.finish()?; - crate::Expression::ImageQuery { + ir::Expression::ImageQuery { image, - query: crate::ImageQuery::NumLevels, + query: ir::ImageQuery::NumLevels, } } "textureNumLayers" => { @@ -2775,9 +2776,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let image = self.expression(args.next()?, ctx)?; args.finish()?; - crate::Expression::ImageQuery { + ir::Expression::ImageQuery { image, - query: crate::ImageQuery::NumLayers, + query: ir::ImageQuery::NumLayers, } } "textureNumSamples" => { @@ -2785,9 +2786,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let image = self.expression(args.next()?, ctx)?; args.finish()?; - crate::Expression::ImageQuery { + ir::Expression::ImageQuery { image, - query: crate::ImageQuery::NumSamples, + query: ir::ImageQuery::NumSamples, } } "rayQueryInitialize" => { @@ -2798,7 +2799,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; let _ = ctx.module.generate_ray_desc_type(); - let fun = crate::RayQueryFunction::Initialize { + let fun = ir::RayQueryFunction::Initialize { acceleration_structure, descriptor, }; @@ -2808,7 +2809,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .extend(rctx.emitter.finish(&rctx.function.expressions)); rctx.emitter.start(&rctx.function.expressions); rctx.block - .push(crate::Statement::RayQuery { query, fun }, span); + .push(ir::Statement::RayQuery { query, fun }, span); return Ok(None); } "getCommittedHitVertexPositions" => { @@ -2818,7 +2819,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let _ = ctx.module.generate_vertex_return_type(); - crate::Expression::RayQueryVertexPositions { + ir::Expression::RayQueryVertexPositions { query, committed: true, } @@ -2830,7 +2831,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let _ = ctx.module.generate_vertex_return_type(); - crate::Expression::RayQueryVertexPositions { + ir::Expression::RayQueryVertexPositions { query, committed: false, } @@ -2840,14 +2841,12 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let query = self.ray_query_pointer(args.next()?, ctx)?; args.finish()?; - let result = ctx.interrupt_emitter( - crate::Expression::RayQueryProceedResult, - span, - )?; - let fun = crate::RayQueryFunction::Proceed { result }; + let result = + ctx.interrupt_emitter(ir::Expression::RayQueryProceedResult, span)?; + let fun = ir::RayQueryFunction::Proceed { result }; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::RayQuery { query, fun }, span); + .push(ir::Statement::RayQuery { query, fun }, span); return Ok(Some(result)); } "rayQueryGenerateIntersection" => { @@ -2856,10 +2855,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let hit_t = self.expression(args.next()?, ctx)?; args.finish()?; - let fun = crate::RayQueryFunction::GenerateIntersection { hit_t }; + let fun = ir::RayQueryFunction::GenerateIntersection { hit_t }; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::RayQuery { query, fun }, span); + .push(ir::Statement::RayQuery { query, fun }, span); return Ok(None); } "rayQueryConfirmIntersection" => { @@ -2867,10 +2866,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let query = self.ray_query_pointer(args.next()?, ctx)?; args.finish()?; - let fun = crate::RayQueryFunction::ConfirmIntersection; + let fun = ir::RayQueryFunction::ConfirmIntersection; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::RayQuery { query, fun }, span); + .push(ir::Statement::RayQuery { query, fun }, span); return Ok(None); } "rayQueryTerminate" => { @@ -2878,10 +2877,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let query = self.ray_query_pointer(args.next()?, ctx)?; args.finish()?; - let fun = crate::RayQueryFunction::Terminate; + let fun = ir::RayQueryFunction::Terminate; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::RayQuery { query, fun }, span); + .push(ir::Statement::RayQuery { query, fun }, span); return Ok(None); } "rayQueryGetCommittedIntersection" => { @@ -2890,7 +2889,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; let _ = ctx.module.generate_ray_intersection_type(); - crate::Expression::RayQueryGetIntersection { + ir::Expression::RayQueryGetIntersection { query, committed: true, } @@ -2901,7 +2900,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args.finish()?; let _ = ctx.module.generate_ray_intersection_type(); - crate::Expression::RayQueryGetIntersection { + ir::Expression::RayQueryGetIntersection { query, committed: false, } @@ -2926,11 +2925,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; args.finish()?; - let result = ctx - .interrupt_emitter(crate::Expression::SubgroupBallotResult, span)?; + let result = + ctx.interrupt_emitter(ir::Expression::SubgroupBallotResult, span)?; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block - .push(crate::Statement::SubgroupBallot { result, predicate }, span); + .push(ir::Statement::SubgroupBallot { result, predicate }, span); return Ok(Some(result)); } _ => { @@ -2953,15 +2952,15 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { /// The `span` argument should give the span of the function name in the /// call expression. /// - /// [`Math`]: crate::ir::Expression::Math - /// [`MathFunction`]: crate::ir::MathFunction + /// [`Math`]: ir::Expression::Math + /// [`MathFunction`]: ir::MathFunction fn math_function_helper( &mut self, span: Span, - fun: crate::ir::MathFunction, + fun: ir::MathFunction, ast_arguments: &[Handle>], ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, crate::ir::Expression> { + ) -> Result<'source, ir::Expression> { let mut lowered_arguments = Vec::with_capacity(ast_arguments.len()); for &arg in ast_arguments { let lowered = self.expression_for_abstract(arg, ctx)?; @@ -2976,11 +2975,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // If this function returns a predeclared type, register it // in `Module::special_types`. The typifier will expect to // be able to find it there. - if let crate::proc::Conclusion::Predeclared(predeclared) = rule.conclusion { + if let proc::Conclusion::Predeclared(predeclared) = rule.conclusion { ctx.module.generate_predeclared_type(predeclared); } - Ok(crate::Expression::Math { + Ok(ir::Expression::Math { fun, arg: lowered_arguments[0], arg1: lowered_arguments.get(1).cloned(), @@ -2998,17 +2997,17 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { /// Use `fun` to identify the function being called in error messages; /// `span` should be the span of the function name in the call expression. /// - /// [`Rule`]: crate::proc::Rule + /// [`Rule`]: proc::Rule fn resolve_overloads( &self, span: Span, fun: F, overloads: O, - arguments: &[Handle], + arguments: &[Handle], ctx: &ExpressionContext<'source, '_, '_>, - ) -> Result<'source, crate::proc::Rule> + ) -> Result<'source, proc::Rule> where - O: crate::proc::OverloadSet, + O: proc::OverloadSet, F: TryToWgsl + core::fmt::Debug + Copy, { let mut remaining_overloads = overloads.clone(); @@ -3170,8 +3169,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { /// to the converted arguments. fn apply_automatic_conversions_for_call( &self, - rule: &crate::proc::Rule, - arguments: &mut [Handle], + rule: &proc::Rule, + arguments: &mut [Handle], ctx: &mut ExpressionContext<'source, '_, '_>, ) -> Result<'source, ()> { for (i, argument) in arguments.iter_mut().enumerate() { @@ -3195,13 +3194,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let span = ctx.ast_expressions.get_span(expr); let pointer = self.expression(expr, ctx)?; match *resolve_inner!(ctx, pointer) { - crate::TypeInner::Pointer { base, .. } => match ctx.module.types[base].inner { - crate::TypeInner::Atomic { .. } => Ok(pointer), + ir::TypeInner::Pointer { base, .. } => match ctx.module.types[base].inner { + ir::TypeInner::Atomic { .. } => Ok(pointer), ref other => { log::error!("Pointer type to {:?} passed to atomic op", other); Err(Box::new(Error::InvalidAtomicPointer(span))) @@ -3217,11 +3216,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { fn atomic_helper( &mut self, span: Span, - fun: crate::AtomicFunction, + fun: ir::AtomicFunction, args: &[Handle>], is_statement: bool, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Option>> { + ) -> Result<'source, Option>> { let mut args = ctx.prepare_args(args, 2, span); let pointer = self.atomic_pointer(args.next()?, ctx)?; @@ -3233,12 +3232,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { // operation, generate a no-result form of the `Atomic` statement, so // that we can pass validation with only `SHADER_INT64_ATOMIC_MIN_MAX` // whenever possible. - let is_64_bit_min_max = - matches!(fun, crate::AtomicFunction::Min | crate::AtomicFunction::Max) - && matches!( - *value_inner, - crate::TypeInner::Scalar(crate::Scalar { width: 8, .. }) - ); + let is_64_bit_min_max = matches!(fun, ir::AtomicFunction::Min | ir::AtomicFunction::Max) + && matches!( + *value_inner, + ir::TypeInner::Scalar(ir::Scalar { width: 8, .. }) + ); let result = if is_64_bit_min_max && is_statement { let rctx = ctx.runtime_expression_ctx(span)?; rctx.block @@ -3248,7 +3246,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } else { let ty = ctx.register_type(value)?; Some(ctx.interrupt_emitter( - crate::Expression::AtomicResult { + ir::Expression::AtomicResult { ty, comparison: false, }, @@ -3257,7 +3255,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { }; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block.push( - crate::Statement::Atomic { + ir::Statement::Atomic { pointer, fun, value, @@ -3274,21 +3272,24 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { args: &[Handle>], span: Span, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, crate::Expression> { + ) -> Result<'source, ir::Expression> { let mut args = ctx.prepare_args(args, fun.min_argument_count(), span); fn get_image_and_span<'source>( lowerer: &mut Lowerer<'source, '_>, args: &mut ArgumentContext<'_, 'source>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, (Handle, Span)> { + ) -> Result<'source, (Handle, Span)> { let image = args.next()?; let image_span = ctx.ast_expressions.get_span(image); - let image = lowerer.expression(image, ctx)?; + let image = lowerer.expression_for_abstract(image, ctx)?; Ok((image, image_span)) } - let (image, image_span, gather) = match fun { + let image; + let image_span; + let gather; + match fun { Texture::Gather => { let image_or_component = args.next()?; let image_or_component_span = ctx.ast_expressions.get_span(image_or_component); @@ -3296,88 +3297,115 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let lowered_image_or_component = self.expression(image_or_component, ctx)?; match *resolve_inner!(ctx, lowered_image_or_component) { - crate::TypeInner::Image { - class: crate::ImageClass::Depth { .. }, + ir::TypeInner::Image { + class: ir::ImageClass::Depth { .. }, .. - } => ( - lowered_image_or_component, - image_or_component_span, - Some(crate::SwizzleComponent::X), - ), + } => { + image = lowered_image_or_component; + image_span = image_or_component_span; + gather = Some(ir::SwizzleComponent::X); + } _ => { - let (image, image_span) = get_image_and_span(self, &mut args, ctx)?; - ( - image, - image_span, - Some(ctx.gather_component( - lowered_image_or_component, - image_or_component_span, - span, - )?), - ) + (image, image_span) = get_image_and_span(self, &mut args, ctx)?; + gather = Some(ctx.gather_component( + lowered_image_or_component, + image_or_component_span, + span, + )?); } } } Texture::GatherCompare => { - let (image, image_span) = get_image_and_span(self, &mut args, ctx)?; - (image, image_span, Some(crate::SwizzleComponent::X)) + (image, image_span) = get_image_and_span(self, &mut args, ctx)?; + gather = Some(ir::SwizzleComponent::X); } _ => { - let (image, image_span) = get_image_and_span(self, &mut args, ctx)?; - (image, image_span, None) + (image, image_span) = get_image_and_span(self, &mut args, ctx)?; + gather = None; } }; - let sampler = self.expression(args.next()?, ctx)?; + let sampler = self.expression_for_abstract(args.next()?, ctx)?; - let coordinate = self.expression(args.next()?, ctx)?; + let coordinate = self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; - let (_, arrayed) = ctx.image_data(image, image_span)?; + let (class, arrayed) = ctx.image_data(image, image_span)?; let array_index = arrayed .then(|| self.expression(args.next()?, ctx)) .transpose()?; - let (level, depth_ref) = match fun { - Texture::Gather => (crate::SampleLevel::Zero, None), + let level; + let depth_ref; + match fun { + Texture::Gather => { + level = ir::SampleLevel::Zero; + depth_ref = None; + } Texture::GatherCompare => { - let reference = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Zero, Some(reference)) + let reference = + self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + level = ir::SampleLevel::Zero; + depth_ref = Some(reference); } - Texture::Sample => (crate::SampleLevel::Auto, None), + Texture::Sample => { + level = ir::SampleLevel::Auto; + depth_ref = None; + } Texture::SampleBias => { - let bias = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Bias(bias), None) + let bias = self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + level = ir::SampleLevel::Bias(bias); + depth_ref = None; } Texture::SampleCompare => { - let reference = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Auto, Some(reference)) + let reference = + self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + level = ir::SampleLevel::Auto; + depth_ref = Some(reference); } Texture::SampleCompareLevel => { - let reference = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Zero, Some(reference)) + let reference = + self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + level = ir::SampleLevel::Zero; + depth_ref = Some(reference); } Texture::SampleGrad => { - let x = self.expression(args.next()?, ctx)?; - let y = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Gradient { x, y }, None) + let x = self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + let y = self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)?; + level = ir::SampleLevel::Gradient { x, y }; + depth_ref = None; } Texture::SampleLevel => { - let level = self.expression(args.next()?, ctx)?; - (crate::SampleLevel::Exact(level), None) + let exact = match class { + // When applied to depth textures, `textureSampleLevel`'s + // `level` argument is an `i32` or `u32`. + ir::ImageClass::Depth { .. } => self.expression(args.next()?, ctx)?, + + // When applied to other sampled types, its `level` argument + // is an `f32`. + ir::ImageClass::Sampled { .. } => { + self.expression_with_leaf_scalar(args.next()?, ir::Scalar::F32, ctx)? + } + + // Sampling `Storage` textures isn't allowed at all. Let the + // validator report the error. + ir::ImageClass::Storage { .. } => self.expression(args.next()?, ctx)?, + }; + level = ir::SampleLevel::Exact(exact); + depth_ref = None; } }; let offset = args .next() - .map(|arg| self.expression(arg, &mut ctx.as_const())) + .map(|arg| self.expression_with_leaf_scalar(arg, ir::Scalar::I32, &mut ctx.as_const())) .ok() .transpose()?; args.finish()?; - Ok(crate::Expression::ImageSample { + Ok(ir::Expression::ImageSample { image, sampler, gather, @@ -3392,11 +3420,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { fn subgroup_operation_helper( &mut self, span: Span, - op: crate::SubgroupOperation, - collective_op: crate::CollectiveOperation, + op: ir::SubgroupOperation, + collective_op: ir::CollectiveOperation, arguments: &[Handle>], ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let mut args = ctx.prepare_args(arguments, 1, span); let argument = self.expression(args.next()?, ctx)?; @@ -3404,11 +3432,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let ty = ctx.register_type(argument)?; - let result = - ctx.interrupt_emitter(crate::Expression::SubgroupOperationResult { ty }, span)?; + let result = ctx.interrupt_emitter(ir::Expression::SubgroupOperationResult { ty }, span)?; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block.push( - crate::Statement::SubgroupCollectiveOperation { + ir::Statement::SubgroupCollectiveOperation { op, collective_op, argument, @@ -3425,22 +3452,22 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { mode: SubgroupGather, arguments: &[Handle>], ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let mut args = ctx.prepare_args(arguments, 2, span); let argument = self.expression(args.next()?, ctx)?; use SubgroupGather as Sg; let mode = if let Sg::BroadcastFirst = mode { - crate::GatherMode::BroadcastFirst + ir::GatherMode::BroadcastFirst } else { let index = self.expression(args.next()?, ctx)?; match mode { - Sg::Broadcast => crate::GatherMode::Broadcast(index), - Sg::Shuffle => crate::GatherMode::Shuffle(index), - Sg::ShuffleDown => crate::GatherMode::ShuffleDown(index), - Sg::ShuffleUp => crate::GatherMode::ShuffleUp(index), - Sg::ShuffleXor => crate::GatherMode::ShuffleXor(index), + Sg::Broadcast => ir::GatherMode::Broadcast(index), + Sg::Shuffle => ir::GatherMode::Shuffle(index), + Sg::ShuffleDown => ir::GatherMode::ShuffleDown(index), + Sg::ShuffleUp => ir::GatherMode::ShuffleUp(index), + Sg::ShuffleXor => ir::GatherMode::ShuffleXor(index), Sg::BroadcastFirst => unreachable!(), } }; @@ -3449,11 +3476,10 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let ty = ctx.register_type(argument)?; - let result = - ctx.interrupt_emitter(crate::Expression::SubgroupOperationResult { ty }, span)?; + let result = ctx.interrupt_emitter(ir::Expression::SubgroupOperationResult { ty }, span)?; let rctx = ctx.runtime_expression_ctx(span)?; rctx.block.push( - crate::Statement::SubgroupGather { + ir::Statement::SubgroupGather { mode, argument, result, @@ -3468,9 +3494,9 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { s: &ast::Struct<'source>, span: Span, ctx: &mut GlobalContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let mut offset = 0; - let mut struct_alignment = Alignment::ONE; + let mut struct_alignment = proc::Alignment::ONE; let mut members = Vec::with_capacity(s.members.len()); for member in s.members.iter() { @@ -3494,7 +3520,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let member_alignment = if let Some(align_expr) = member.align { let (align, span) = self.const_u32(align_expr, &mut ctx.as_const())?; - if let Some(alignment) = Alignment::new(align) { + if let Some(alignment) = proc::Alignment::new(align) { if alignment < member_min_alignment { return Err(Box::new(Error::AlignAttributeTooLow( span, @@ -3515,7 +3541,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { offset = member_alignment.round_up(offset); struct_alignment = struct_alignment.max(member_alignment); - members.push(crate::StructMember { + members.push(ir::StructMember { name: Some(member.name.name.to_owned()), ty, binding, @@ -3526,13 +3552,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } let size = struct_alignment.round_up(offset); - let inner = crate::TypeInner::Struct { + let inner = ir::TypeInner::Struct { members, span: size, }; let handle = ctx.module.types.insert( - crate::Type { + ir::Type { name: Some(s.name.name.to_string()), inner, }, @@ -3553,10 +3579,8 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .to_ctx() .eval_expr_to_u32(expr) .map_err(|err| match err { - crate::proc::U32EvalError::NonConst => { - Error::ExpectedConstExprConcreteIntegerScalar(span) - } - crate::proc::U32EvalError::Negative => Error::ExpectedNonNegative(span), + proc::U32EvalError::NonConst => Error::ExpectedConstExprConcreteIntegerScalar(span), + proc::U32EvalError::Negative => Error::ExpectedNonNegative(span), })?; Ok((value, span)) } @@ -3565,7 +3589,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, size: ast::ArraySize<'source>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, crate::ArraySize> { + ) -> Result<'source, ir::ArraySize> { Ok(match size { ast::ArraySize::Constant(expr) => { let span = ctx.ast_expressions.get_span(expr); @@ -3574,23 +3598,23 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { Ok(value) => { let len = ctx.const_eval_expr_to_u32(value).map_err(|err| { Box::new(match err { - crate::proc::U32EvalError::NonConst => { + proc::U32EvalError::NonConst => { Error::ExpectedConstExprConcreteIntegerScalar(span) } - crate::proc::U32EvalError::Negative => { + proc::U32EvalError::Negative => { Error::ExpectedPositiveArrayLength(span) } }) })?; let size = NonZeroU32::new(len).ok_or(Error::ExpectedPositiveArrayLength(span))?; - crate::ArraySize::Constant(size) + ir::ArraySize::Constant(size) } Err(err) => { if let Error::ConstantEvaluatorError(ref ty, _) = *err { match **ty { - crate::proc::ConstantEvaluatorError::OverrideExpr => { - crate::ArraySize::Pending(self.array_size_override( + proc::ConstantEvaluatorError::OverrideExpr => { + ir::ArraySize::Pending(self.array_size_override( expr, &mut ctx.as_global().as_override(), span, @@ -3606,7 +3630,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } } } - ast::ArraySize::Dynamic => crate::ArraySize::Dynamic, + ast::ArraySize::Dynamic => ir::ArraySize::Dynamic, }) } @@ -3615,16 +3639,16 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { size_expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, span: Span, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let expr = self.expression(size_expr, ctx)?; match resolve_inner!(ctx, expr).scalar_kind().ok_or(0) { - Ok(crate::ScalarKind::Sint) | Ok(crate::ScalarKind::Uint) => Ok({ - if let crate::Expression::Override(handle) = ctx.module.global_expressions[expr] { + Ok(ir::ScalarKind::Sint) | Ok(ir::ScalarKind::Uint) => Ok({ + if let ir::Expression::Override(handle) = ctx.module.global_expressions[expr] { handle } else { let ty = ctx.register_type(expr)?; ctx.module.overrides.append( - crate::Override { + ir::Override { name: None, id: None, ty, @@ -3648,22 +3672,22 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { /// If `handle` refers to a type cached in [`SpecialTypes`], /// `name` may be ignored. /// - /// [`SpecialTypes`]: crate::SpecialTypes + /// [`SpecialTypes`]: ir::SpecialTypes fn resolve_named_ast_type( &mut self, handle: Handle>, name: Option, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let inner = match ctx.types[handle] { ast::Type::Scalar(scalar) => scalar.to_inner_scalar(), ast::Type::Vector { size, ty, ty_span } => { let ty = self.resolve_ast_type(ty, ctx)?; let scalar = match ctx.module.types[ty].inner { - crate::TypeInner::Scalar(sc) => sc, + ir::TypeInner::Scalar(sc) => sc, _ => return Err(Box::new(Error::UnknownScalarType(ty_span))), }; - crate::TypeInner::Vector { size, scalar } + ir::TypeInner::Vector { size, scalar } } ast::Type::Matrix { rows, @@ -3673,11 +3697,11 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } => { let ty = self.resolve_ast_type(ty, ctx)?; let scalar = match ctx.module.types[ty].inner { - crate::TypeInner::Scalar(sc) => sc, + ir::TypeInner::Scalar(sc) => sc, _ => return Err(Box::new(Error::UnknownScalarType(ty_span))), }; match scalar.kind { - crate::ScalarKind::Float => crate::TypeInner::Matrix { + ir::ScalarKind::Float => ir::TypeInner::Matrix { columns, rows, scalar, @@ -3688,7 +3712,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { ast::Type::Atomic(scalar) => scalar.to_inner_atomic(), ast::Type::Pointer { base, space } => { let base = self.resolve_ast_type(base, ctx)?; - crate::TypeInner::Pointer { base, space } + ir::TypeInner::Pointer { base, space } } ast::Type::Array { base, size } => { let base = self.resolve_ast_type(base, &mut ctx.as_const())?; @@ -3697,26 +3721,26 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { ctx.layouter.update(ctx.module.to_ctx()).unwrap(); let stride = ctx.layouter[base].to_stride(); - crate::TypeInner::Array { base, size, stride } + ir::TypeInner::Array { base, size, stride } } ast::Type::Image { dim, arrayed, class, - } => crate::TypeInner::Image { + } => ir::TypeInner::Image { dim, arrayed, class, }, - ast::Type::Sampler { comparison } => crate::TypeInner::Sampler { comparison }, + ast::Type::Sampler { comparison } => ir::TypeInner::Sampler { comparison }, ast::Type::AccelerationStructure { vertex_return } => { - crate::TypeInner::AccelerationStructure { vertex_return } + ir::TypeInner::AccelerationStructure { vertex_return } } - ast::Type::RayQuery { vertex_return } => crate::TypeInner::RayQuery { vertex_return }, + ast::Type::RayQuery { vertex_return } => ir::TypeInner::RayQuery { vertex_return }, ast::Type::BindingArray { base, size } => { let base = self.resolve_ast_type(base, ctx)?; let size = self.array_size(size, ctx)?; - crate::TypeInner::BindingArray { base, size } + ir::TypeInner::BindingArray { base, size } } ast::Type::RayDesc => { return Ok(ctx.module.generate_ray_desc_type()); @@ -3741,18 +3765,18 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, handle: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { self.resolve_named_ast_type(handle, None, ctx) } fn binding( &mut self, binding: &Option>, - ty: Handle, + ty: Handle, ctx: &mut GlobalContext<'source, '_, '_>, - ) -> Result<'source, Option> { + ) -> Result<'source, Option> { Ok(match *binding { - Some(ast::Binding::BuiltIn(b)) => Some(crate::Binding::BuiltIn(b)), + Some(ast::Binding::BuiltIn(b)) => Some(ir::Binding::BuiltIn(b)), Some(ast::Binding::Location { location, interpolation, @@ -3765,7 +3789,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { None }; - let mut binding = crate::Binding::Location { + let mut binding = ir::Binding::Location { location: self.const_u32(location, &mut ctx.as_const())?.0, interpolation, sampling, @@ -3782,13 +3806,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { &mut self, expr: Handle>, ctx: &mut ExpressionContext<'source, '_, '_>, - ) -> Result<'source, Handle> { + ) -> Result<'source, Handle> { let span = ctx.ast_expressions.get_span(expr); let pointer = self.expression(expr, ctx)?; match *resolve_inner!(ctx, pointer) { - crate::TypeInner::Pointer { base, .. } => match ctx.module.types[base].inner { - crate::TypeInner::RayQuery { .. } => Ok(pointer), + ir::TypeInner::Pointer { base, .. } => match ctx.module.types[base].inner { + ir::TypeInner::RayQuery { .. } => Ok(pointer), ref other => { log::error!("Pointer type to {:?} passed to ray query op", other); Err(Box::new(Error::InvalidRayQueryPointer(span))) @@ -3802,17 +3826,17 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { } } -impl crate::AtomicFunction { +impl ir::AtomicFunction { pub fn map(word: &str) -> Option { Some(match word { - "atomicAdd" => crate::AtomicFunction::Add, - "atomicSub" => crate::AtomicFunction::Subtract, - "atomicAnd" => crate::AtomicFunction::And, - "atomicOr" => crate::AtomicFunction::InclusiveOr, - "atomicXor" => crate::AtomicFunction::ExclusiveOr, - "atomicMin" => crate::AtomicFunction::Min, - "atomicMax" => crate::AtomicFunction::Max, - "atomicExchange" => crate::AtomicFunction::Exchange { compare: None }, + "atomicAdd" => ir::AtomicFunction::Add, + "atomicSub" => ir::AtomicFunction::Subtract, + "atomicAnd" => ir::AtomicFunction::And, + "atomicOr" => ir::AtomicFunction::InclusiveOr, + "atomicXor" => ir::AtomicFunction::ExclusiveOr, + "atomicMin" => ir::AtomicFunction::Min, + "atomicMax" => ir::AtomicFunction::Max, + "atomicExchange" => ir::AtomicFunction::Exchange { compare: None }, _ => return None, }) } diff --git a/third_party/rust/naga/src/front/wgsl/parse/conv.rs b/third_party/rust/naga/src/front/wgsl/parse/conv.rs index bfc1a39bb856..d3b6e77e8d03 100644 --- a/third_party/rust/naga/src/front/wgsl/parse/conv.rs +++ b/third_party/rust/naga/src/front/wgsl/parse/conv.rs @@ -273,6 +273,8 @@ pub fn map_standard_fun(word: &str) -> Option { "pack2x16float" => Mf::Pack2x16float, "pack4xI8" => Mf::Pack4xI8, "pack4xU8" => Mf::Pack4xU8, + "pack4xI8Clamp" => Mf::Pack4xI8Clamp, + "pack4xU8Clamp" => Mf::Pack4xU8Clamp, // data unpacking "unpack4x8snorm" => Mf::Unpack4x8snorm, "unpack4x8unorm" => Mf::Unpack4x8unorm, diff --git a/third_party/rust/naga/src/front/wgsl/parse/directive/language_extension.rs b/third_party/rust/naga/src/front/wgsl/parse/directive/language_extension.rs index 4a48ccd919c0..7e098bd60979 100644 --- a/third_party/rust/naga/src/front/wgsl/parse/directive/language_extension.rs +++ b/third_party/rust/naga/src/front/wgsl/parse/directive/language_extension.rs @@ -24,11 +24,11 @@ impl LanguageExtension { /// Convert from a sentinel word in WGSL into its associated [`LanguageExtension`], if possible. pub fn from_ident(s: &str) -> Option { Some(match s { - Self::READONLY_AND_READWRITE_STORAGE_TEXTURES => Self::Unimplemented( - UnimplementedLanguageExtension::ReadOnlyAndReadWriteStorageTextures, - ), + Self::READONLY_AND_READWRITE_STORAGE_TEXTURES => { + Self::Implemented(ImplementedLanguageExtension::ReadOnlyAndReadWriteStorageTextures) + } Self::PACKED4X8_INTEGER_DOT_PRODUCT => { - Self::Unimplemented(UnimplementedLanguageExtension::Packed4x8IntegerDotProduct) + Self::Implemented(ImplementedLanguageExtension::Packed4x8IntegerDotProduct) } Self::UNRESTRICTED_POINTER_PARAMETERS => { Self::Unimplemented(UnimplementedLanguageExtension::UnrestrictedPointerParameters) @@ -45,12 +45,6 @@ impl LanguageExtension { match self { Self::Implemented(kind) => kind.to_ident(), Self::Unimplemented(kind) => match kind { - UnimplementedLanguageExtension::ReadOnlyAndReadWriteStorageTextures => { - Self::READONLY_AND_READWRITE_STORAGE_TEXTURES - } - UnimplementedLanguageExtension::Packed4x8IntegerDotProduct => { - Self::PACKED4X8_INTEGER_DOT_PRODUCT - } UnimplementedLanguageExtension::UnrestrictedPointerParameters => { Self::UNRESTRICTED_POINTER_PARAMETERS } @@ -62,6 +56,8 @@ impl LanguageExtension { /// A variant of [`LanguageExtension::Implemented`]. #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, VariantArray)] pub enum ImplementedLanguageExtension { + ReadOnlyAndReadWriteStorageTextures, + Packed4x8IntegerDotProduct, PointerCompositeAccess, } @@ -74,6 +70,12 @@ impl ImplementedLanguageExtension { /// Maps this [`ImplementedLanguageExtension`] into the sentinel word associated with it in WGSL. pub const fn to_ident(self) -> &'static str { match self { + ImplementedLanguageExtension::ReadOnlyAndReadWriteStorageTextures => { + LanguageExtension::READONLY_AND_READWRITE_STORAGE_TEXTURES + } + ImplementedLanguageExtension::Packed4x8IntegerDotProduct => { + LanguageExtension::PACKED4X8_INTEGER_DOT_PRODUCT + } ImplementedLanguageExtension::PointerCompositeAccess => { LanguageExtension::POINTER_COMPOSITE_ACCESS } @@ -84,16 +86,12 @@ impl ImplementedLanguageExtension { /// A variant of [`LanguageExtension::Unimplemented`]. #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub enum UnimplementedLanguageExtension { - ReadOnlyAndReadWriteStorageTextures, - Packed4x8IntegerDotProduct, UnrestrictedPointerParameters, } impl UnimplementedLanguageExtension { pub(crate) const fn tracking_issue_num(self) -> u16 { match self { - Self::ReadOnlyAndReadWriteStorageTextures => 6204, - Self::Packed4x8IntegerDotProduct => 6445, Self::UnrestrictedPointerParameters => 5158, } } diff --git a/third_party/rust/naga/src/ir/mod.rs b/third_party/rust/naga/src/ir/mod.rs index e41bed54a05c..5f0b19b7dc27 100644 --- a/third_party/rust/naga/src/ir/mod.rs +++ b/third_party/rust/naga/src/ir/mod.rs @@ -1187,6 +1187,8 @@ pub enum MathFunction { Pack2x16float, Pack4xI8, Pack4xU8, + Pack4xI8Clamp, + Pack4xU8Clamp, // data unpacking Unpack4x8snorm, Unpack4x8unorm, diff --git a/third_party/rust/naga/src/proc/constant_evaluator.rs b/third_party/rust/naga/src/proc/constant_evaluator.rs index 2ee07753870a..27d6addc8269 100644 --- a/third_party/rust/naga/src/proc/constant_evaluator.rs +++ b/third_party/rust/naga/src/proc/constant_evaluator.rs @@ -1342,6 +1342,8 @@ impl<'a> ConstantEvaluator<'a> { | crate::MathFunction::Pack2x16float | crate::MathFunction::Pack4xI8 | crate::MathFunction::Pack4xU8 + | crate::MathFunction::Pack4xI8Clamp + | crate::MathFunction::Pack4xU8Clamp | crate::MathFunction::Unpack4x8snorm | crate::MathFunction::Unpack4x8unorm | crate::MathFunction::Unpack2x16snorm diff --git a/third_party/rust/naga/src/proc/mod.rs b/third_party/rust/naga/src/proc/mod.rs index 59c6451c66dd..0843e709b5d4 100644 --- a/third_party/rust/naga/src/proc/mod.rs +++ b/third_party/rust/naga/src/proc/mod.rs @@ -262,6 +262,8 @@ impl super::MathFunction { Self::Pack2x16float => 1, Self::Pack4xI8 => 1, Self::Pack4xU8 => 1, + Self::Pack4xI8Clamp => 1, + Self::Pack4xU8Clamp => 1, // data unpacking Self::Unpack4x8snorm => 1, Self::Unpack4x8unorm => 1, diff --git a/third_party/rust/naga/src/proc/overloads/mathfunction.rs b/third_party/rust/naga/src/proc/overloads/mathfunction.rs index da6e594b701f..132f99aec420 100644 --- a/third_party/rust/naga/src/proc/overloads/mathfunction.rs +++ b/third_party/rust/naga/src/proc/overloads/mathfunction.rs @@ -74,6 +74,8 @@ impl ir::MathFunction { } Mf::Pack4xI8 => regular!(1, VEC4 of I32 -> U32).into(), Mf::Pack4xU8 => regular!(1, VEC4 of U32 -> U32).into(), + Mf::Pack4xI8Clamp => regular!(1, VEC4 of I32 -> U32).into(), + Mf::Pack4xU8Clamp => regular!(1, VEC4 of U32 -> U32).into(), // Unpacking functions Mf::Unpack4x8snorm | Mf::Unpack4x8unorm => regular!(1, SCALAR of U32 -> Vec4F).into(), @@ -92,7 +94,9 @@ impl ir::MathFunction { Mf::Ldexp => ldexp().into(), Mf::Outer => outer().into(), Mf::Cross => regular!(2, VEC3 of FLOAT).into(), - Mf::Distance => regular!(2, VECN of FLOAT_ABSTRACT_UNIMPLEMENTED -> Scalar).into(), + Mf::Distance => { + regular!(2, SCALAR|VECN of FLOAT_ABSTRACT_UNIMPLEMENTED -> Scalar).into() + } Mf::Length => regular!(1, SCALAR|VECN of FLOAT_ABSTRACT_UNIMPLEMENTED -> Scalar).into(), Mf::Normalize => regular!(1, VECN of FLOAT_ABSTRACT_UNIMPLEMENTED).into(), Mf::FaceForward => regular!(3, VECN of FLOAT_ABSTRACT_UNIMPLEMENTED).into(), diff --git a/third_party/rust/naga/src/valid/analyzer.rs b/third_party/rust/naga/src/valid/analyzer.rs index 335a5b8a4eaa..cf7fec2060ee 100644 --- a/third_party/rust/naga/src/valid/analyzer.rs +++ b/third_party/rust/naga/src/valid/analyzer.rs @@ -158,8 +158,11 @@ pub struct ExpressionInfo { /// originates. Otherwise, this is `None`. pub uniformity: Uniformity, - /// The number of statements and other expressions using this - /// expression's value. + /// The number of direct references to this expression in statements and + /// other expressions. + /// + /// This is a _local_ reference count only, it may be non-zero for + /// expressions that are ultimately unused. pub ref_count: usize, /// The global variable into which this expression produces a pointer. @@ -362,7 +365,7 @@ impl FunctionInfo { ) -> NonUniformResult { let info = &mut self.expressions[expr.index()]; info.ref_count += 1; - // mark the used global as read + // Record usage if this expression may access a global if let Some(global) = info.assignable_global { self.global_uses[global.index()] |= global_use; } @@ -1220,6 +1223,19 @@ impl ModuleInfo { info.uniformity = uniformity.result; info.may_kill = uniformity.exit.contains(ExitFlags::MAY_KILL); + // If there are any globals referenced directly by a named expression, + // ensure they are marked as used even if they are not referenced + // anywhere else. An important case where this matters is phony + // assignments used to include a global in the shader's resource + // interface. https://www.w3.org/TR/WGSL/#phony-assignment-section + for &handle in fun.named_expressions.keys() { + if let Some(global) = info[handle].assignable_global { + if info.global_uses[global.index()].is_empty() { + info.global_uses[global.index()] = GlobalUse::QUERY; + } + } + } + Ok(info) } diff --git a/third_party/rust/wgpu-core/.cargo-checksum.json b/third_party/rust/wgpu-core/.cargo-checksum.json index abdf4d35a55b..5294484fa512 100644 --- a/third_party/rust/wgpu-core/.cargo-checksum.json +++ b/third_party/rust/wgpu-core/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"ff0d2fe9f9a851f607f0bff7817732d9af64a86e967028bf8f825caeb19c6ef4","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"c67295643e006849b11d2d4bf64142e6485280e19887523785c3c03cb5fe1f32","src/binding_model.rs":"29351db199a1f8e475489fb663122c39f04c1e4f9a73ec6a996b1903b7291c7e","src/command/allocator.rs":"386cb6e60bd332a881dbbe57ff66a0fa83f35e3ee924559f1689418ac6c7273a","src/command/bind.rs":"c88aa87bf3052fe0993b79ff047339fac4557ead85973f4a37bf236fba401222","src/command/bundle.rs":"03ecff7ad679938242cf0b4a16ea273c129e0805e6c462233d80d3767b25bd42","src/command/clear.rs":"4522488370bd90b5264e1ddfcacd6d8c48256b5305fa89403e518401ec6970e3","src/command/compute.rs":"58dd38d740c0dc405c030c0a32db46b4e20a68a5dc7090938c80f44001161c1c","src/command/compute_command.rs":"18aa0b8e389a5d345243b876b1abbacfc998a19d23069e092183fa7be10fa0ab","src/command/draw.rs":"fe23039c3918eb4e61b9c1ac12715eee448277bb4d3537caa4f11287c04687af","src/command/memory_init.rs":"f25554cff06f96e37afd81153a351e9d8482c855318b86b4db29231926d265b5","src/command/mod.rs":"532a99f298768e688a3412161afaa48f174169a29fca6987b1d46ab1bda26f5d","src/command/query.rs":"ef955247330feff6131cee92e693e551c93861ba56de6ccfe3f38d4551d16f72","src/command/ray_tracing.rs":"ecc57044b0cf221c9e852983d4d9e0c73387c6b70f42b5c943ee6b2f77780c6e","src/command/render.rs":"ed12998e63578cc56a115fcd77e063a58edb53a9ac5267db0404be9083e48acb","src/command/render_command.rs":"209242e9ab30e23044840f89efed62e4d0dbadf832fcaf5a861d2487af4358ad","src/command/timestamp_writes.rs":"da06fb07b8d0917be3e7fb9212d0ffc6b16526e1c1df617213ef354c3e1fb446","src/command/transfer.rs":"cbc0cbbeaf7f59913ca72cb01bebcd5987674b1b0e58022fba207afde9342547","src/command/transition_resources.rs":"1824f6155047af4b19aeceaa72ac53f1289270eb2732c9f7f3574d806d62f206","src/conv.rs":"02722149d21bcdba6ee5101b3c0625a9de8ef607523a0eebb1f4088e82b3608b","src/device/bgl.rs":"fcb1d53b692970912781748379df675268981c97352872abf2e7bb0b1ebdd533","src/device/global.rs":"f1bc835295422d5934609581d42afd59ded1b9d9d2b54224bbd978b14e45a9e2","src/device/life.rs":"bc1899dbf8d2b0389cba39775cc47d5dd0e2ae3a250b5e9db3dd79d613e4fd18","src/device/mod.rs":"4e4e50cae954a5240a8e3cad8644f9cd9be90db81eb1ea635f218adf12f23e6c","src/device/queue.rs":"ba766a0c1c517ce7aa14f953fdc130d624b3bae15ced679e378b50b40e131afd","src/device/ray_tracing.rs":"72dab8c0998ef92cad3a0a8ba62675dbdee2feb2044a78079510f9ab1c2a9742","src/device/resource.rs":"23f9eb4bb6bd71b260bf6cf75ba0134305abd90564f35b7a19dd270be06f1c55","src/device/trace.rs":"fc817998af3a0da99820ef9d58c3e9f70c8456c0c472f95ea780789cff6964c8","src/error.rs":"4f07a0b09b30b2d6cbc855d0091d724000f492018af3b41e80befbeccf2a6f4e","src/global.rs":"7bb7dc795d01607fd5d6f4477b55255c71fe4b1f8621a004b0a4305d6641fc20","src/hal_api.rs":"7962c119456602e9c2ba958712660532290cabe0b8c4c67ef7595de73cdf8b57","src/hash_utils.rs":"9f57a627fe3f00659391670141df62f68d67922c7b186f2a9a5958ab16fb576f","src/hub.rs":"ce0a14d5a3314df318bbc7c4d8c40ea2b3197dbddb2227e828ceb5127db7d37d","src/id.rs":"207f262558388147b484c51cf07d2554c26a3e19243058939e63a7f8e5c7ea75","src/identity.rs":"0a92302fc5b483ea1a8750b1672971af1cf2abfd4c0325bb02488b43e85073e2","src/indirect_validation/dispatch.rs":"1d732bb0e0716c6e5505871ea0dcc9de128fb9c9e2813769f359088d8f1573f9","src/indirect_validation/draw.rs":"6a53ad1ce321792f8d8d57df00797daa062f3b2b319ed8e4a69039adc266e698","src/indirect_validation/mod.rs":"1efb1efcdee323a22946f4886ae4c6b308894a99a253bd73f8430f59bab4f06f","src/indirect_validation/utils.rs":"e6a3b636dd71ff6b01d5abd5a589a0136fb30aa1d517a43f45cf2e5ad54da245","src/indirect_validation/validate_draw.wgsl":"87bc9419c87109d716414eab76d86ea25cf6bf6c08d40bcebfc4c5a3a9c0d67c","src/init_tracker/buffer.rs":"6167a400ab271ba857f1c507e60a46fbd318c185aff87eecf7eb05f7f09b6963","src/init_tracker/mod.rs":"3895c4a2284631b6d6247c0d96c5fc9cfd024d358e09cad8752b2505700138a3","src/init_tracker/texture.rs":"ffdc67d4be23bcd48b22945de94ac0ea8ee571f91eb6d00323b9afe6fa91eef3","src/instance.rs":"308babceb3a34b0ab058bfdc62ce167e49366da4803029e966f65bc9495af40d","src/lib.rs":"5686a1fd2149f1ef352e5f5bacd3322d7721040cc5fed5b67f45163cf5730736","src/lock/mod.rs":"7343aa3ee73a0e6d41f0c28c658f22a2af0ff3e558a2c3437764ebc038816c0f","src/lock/observing.rs":"890356f2a8cc1fc085a7ddff75486b66024aa09d6b0d6029f011ec9b4fbe70a8","src/lock/rank.rs":"e2183e9b37491fa21b7dff8dac29ef0c49d570bd81387b56251b3ec5e373ffe9","src/lock/ranked.rs":"7f44776bc7d71a25e23c97ab80e2fdab3576bb3f912bc8a0b4fcc28a64ef5c6e","src/lock/vanilla.rs":"3a772dfc1f8d8d4047669962beaa15542f771d2dcbe4e1755cd2cfed5cbacca0","src/pipeline.rs":"06bc55a6b67fe6b3c73fff82413b09a7754fc8c60811f9f52942470a0f777bfc","src/pipeline_cache.rs":"41d0b8faa0ae834f7b1c6a012574d0c4b380e4446bc26f272502ef1455a15e3a","src/pool.rs":"e11bfdc73a66321d26715465fa74657dcd26a9b856b80b8369b4aac2132a4295","src/present.rs":"165c9e0f81c87e6b5c0500915e8f9db0448208a953d2e9468bd270ed2f2948ce","src/ray_tracing.rs":"9ae78db0bd0a2fd542e3b8192e732f0ef50e704c2c74fb5a4b59b3c1e1c4160c","src/registry.rs":"779d8c277193537edd2b883b72cdcc07161b7231c8d2c80be726bd800cd327b6","src/resource.rs":"54f0eb53f95e317cfea8c03353ae482ef5a7cb41253cd74925e47690f1aac05a","src/scratch.rs":"05f2032fa6d6f589c2507f4028755769b9524029e5ad59cc500cab7940e40d42","src/snatch.rs":"d75583fa0504b60554b14a865e1b1062b6b1dea7d99903cf09d03608f3a78a4c","src/storage.rs":"2ea3695b77ea540fee05149650005043fcc0abb3eb405738b5dea53efa60903d","src/timestamp_normalization/common.wgsl":"9f65aef0526ff9dde945fae70cef064ad961b0aee4291759ae82974cd2ead0a7","src/timestamp_normalization/mod.rs":"a1aab50a03ae283e86db0885ad00239278da8b3a40647f2d93fa15b2f23e51dc","src/timestamp_normalization/timestamp_normalization.wgsl":"4b2202b965e4c67482d03a546ac38c72a602d79ed9a60e6f7217393c49afad49","src/track/buffer.rs":"1ab5310367606fc74f0791733ea5ba2e09acc92ff7f4f4773f66bcfb3138c52f","src/track/metadata.rs":"04b8bcf8ded7c7c805d9336cfc874da9d8de7d12d99f7525f0540780a1dffc45","src/track/mod.rs":"6af2b831b3a0c91a60a8fd6f141db67695218e0af1735a31b9dee39053703b27","src/track/range.rs":"2688b05a0c6e8510ff6ba3a9623e8b83f433a05ba743129928c56c93d9a9c233","src/track/stateless.rs":"3db699f5f48a319fa07fb16cdf51e1623d6ecac7a476467ee366e014ea665b89","src/track/texture.rs":"fbd5f3cde5161404048131dbea014806cfc210ab1497bfd638f0064969c004f9","src/validation.rs":"a4ec78a9dcc893fdbcb9217102f5e79e85eaba1a5065892d983ed49014da488a","src/weak_vec.rs":"a4193add5912b91226a3155cc613365b7fafdf2e7929d21d68bc19d149696e85"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"591bc8e25581c30955fbe7d54d7bfc5accc6553ddef2885e5189e1dacaaf9f4f","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"c67295643e006849b11d2d4bf64142e6485280e19887523785c3c03cb5fe1f32","src/binding_model.rs":"29351db199a1f8e475489fb663122c39f04c1e4f9a73ec6a996b1903b7291c7e","src/command/allocator.rs":"386cb6e60bd332a881dbbe57ff66a0fa83f35e3ee924559f1689418ac6c7273a","src/command/bind.rs":"c88aa87bf3052fe0993b79ff047339fac4557ead85973f4a37bf236fba401222","src/command/bundle.rs":"03ecff7ad679938242cf0b4a16ea273c129e0805e6c462233d80d3767b25bd42","src/command/clear.rs":"4522488370bd90b5264e1ddfcacd6d8c48256b5305fa89403e518401ec6970e3","src/command/compute.rs":"8f38cfef2c148257329414f77384cab294d5f81dbd9e7c0ef97be1675f84c3e9","src/command/compute_command.rs":"18aa0b8e389a5d345243b876b1abbacfc998a19d23069e092183fa7be10fa0ab","src/command/draw.rs":"7da413d08d862629bea958b032f3a0fe12d1b3fcabe3aa10cc04f004daf79bc7","src/command/memory_init.rs":"f25554cff06f96e37afd81153a351e9d8482c855318b86b4db29231926d265b5","src/command/mod.rs":"532a99f298768e688a3412161afaa48f174169a29fca6987b1d46ab1bda26f5d","src/command/query.rs":"ef955247330feff6131cee92e693e551c93861ba56de6ccfe3f38d4551d16f72","src/command/ray_tracing.rs":"ecc57044b0cf221c9e852983d4d9e0c73387c6b70f42b5c943ee6b2f77780c6e","src/command/render.rs":"91173bb55e898659aa3be0c1b4c7aaebfd99a867c296d29d4cd34728920a6939","src/command/render_command.rs":"209242e9ab30e23044840f89efed62e4d0dbadf832fcaf5a861d2487af4358ad","src/command/timestamp_writes.rs":"da06fb07b8d0917be3e7fb9212d0ffc6b16526e1c1df617213ef354c3e1fb446","src/command/transfer.rs":"cbc0cbbeaf7f59913ca72cb01bebcd5987674b1b0e58022fba207afde9342547","src/command/transition_resources.rs":"1824f6155047af4b19aeceaa72ac53f1289270eb2732c9f7f3574d806d62f206","src/conv.rs":"02722149d21bcdba6ee5101b3c0625a9de8ef607523a0eebb1f4088e82b3608b","src/device/bgl.rs":"fcb1d53b692970912781748379df675268981c97352872abf2e7bb0b1ebdd533","src/device/global.rs":"f1bc835295422d5934609581d42afd59ded1b9d9d2b54224bbd978b14e45a9e2","src/device/life.rs":"bc1899dbf8d2b0389cba39775cc47d5dd0e2ae3a250b5e9db3dd79d613e4fd18","src/device/mod.rs":"4e4e50cae954a5240a8e3cad8644f9cd9be90db81eb1ea635f218adf12f23e6c","src/device/queue.rs":"ba766a0c1c517ce7aa14f953fdc130d624b3bae15ced679e378b50b40e131afd","src/device/ray_tracing.rs":"72dab8c0998ef92cad3a0a8ba62675dbdee2feb2044a78079510f9ab1c2a9742","src/device/resource.rs":"f46aee2afc85826fa107bf2095567d2a18c0f362d8fbfbe2b0c60e3595c373cd","src/device/trace.rs":"fc817998af3a0da99820ef9d58c3e9f70c8456c0c472f95ea780789cff6964c8","src/error.rs":"4f07a0b09b30b2d6cbc855d0091d724000f492018af3b41e80befbeccf2a6f4e","src/global.rs":"7bb7dc795d01607fd5d6f4477b55255c71fe4b1f8621a004b0a4305d6641fc20","src/hal_api.rs":"7962c119456602e9c2ba958712660532290cabe0b8c4c67ef7595de73cdf8b57","src/hash_utils.rs":"9f57a627fe3f00659391670141df62f68d67922c7b186f2a9a5958ab16fb576f","src/hub.rs":"ce0a14d5a3314df318bbc7c4d8c40ea2b3197dbddb2227e828ceb5127db7d37d","src/id.rs":"207f262558388147b484c51cf07d2554c26a3e19243058939e63a7f8e5c7ea75","src/identity.rs":"0a92302fc5b483ea1a8750b1672971af1cf2abfd4c0325bb02488b43e85073e2","src/indirect_validation/dispatch.rs":"1d732bb0e0716c6e5505871ea0dcc9de128fb9c9e2813769f359088d8f1573f9","src/indirect_validation/draw.rs":"a2f6d25318e0a679ce12f9ef439e96867ffb1ef57119810f78dd59e5a4804150","src/indirect_validation/mod.rs":"79466e4f9a59386e833958b3537beed6ffb6a7ee62aaabcf35382c2683998e43","src/indirect_validation/utils.rs":"e6a3b636dd71ff6b01d5abd5a589a0136fb30aa1d517a43f45cf2e5ad54da245","src/indirect_validation/validate_draw.wgsl":"fa7bba5f28c6c181f2d55ecfe386a5e5cd276bcb3c36aa7f963f43c535a9bf9a","src/init_tracker/buffer.rs":"6167a400ab271ba857f1c507e60a46fbd318c185aff87eecf7eb05f7f09b6963","src/init_tracker/mod.rs":"3895c4a2284631b6d6247c0d96c5fc9cfd024d358e09cad8752b2505700138a3","src/init_tracker/texture.rs":"ffdc67d4be23bcd48b22945de94ac0ea8ee571f91eb6d00323b9afe6fa91eef3","src/instance.rs":"308babceb3a34b0ab058bfdc62ce167e49366da4803029e966f65bc9495af40d","src/lib.rs":"5686a1fd2149f1ef352e5f5bacd3322d7721040cc5fed5b67f45163cf5730736","src/lock/mod.rs":"7343aa3ee73a0e6d41f0c28c658f22a2af0ff3e558a2c3437764ebc038816c0f","src/lock/observing.rs":"890356f2a8cc1fc085a7ddff75486b66024aa09d6b0d6029f011ec9b4fbe70a8","src/lock/rank.rs":"e2183e9b37491fa21b7dff8dac29ef0c49d570bd81387b56251b3ec5e373ffe9","src/lock/ranked.rs":"7f44776bc7d71a25e23c97ab80e2fdab3576bb3f912bc8a0b4fcc28a64ef5c6e","src/lock/vanilla.rs":"3a772dfc1f8d8d4047669962beaa15542f771d2dcbe4e1755cd2cfed5cbacca0","src/pipeline.rs":"06bc55a6b67fe6b3c73fff82413b09a7754fc8c60811f9f52942470a0f777bfc","src/pipeline_cache.rs":"41d0b8faa0ae834f7b1c6a012574d0c4b380e4446bc26f272502ef1455a15e3a","src/pool.rs":"e11bfdc73a66321d26715465fa74657dcd26a9b856b80b8369b4aac2132a4295","src/present.rs":"165c9e0f81c87e6b5c0500915e8f9db0448208a953d2e9468bd270ed2f2948ce","src/ray_tracing.rs":"9ae78db0bd0a2fd542e3b8192e732f0ef50e704c2c74fb5a4b59b3c1e1c4160c","src/registry.rs":"779d8c277193537edd2b883b72cdcc07161b7231c8d2c80be726bd800cd327b6","src/resource.rs":"54f0eb53f95e317cfea8c03353ae482ef5a7cb41253cd74925e47690f1aac05a","src/scratch.rs":"05f2032fa6d6f589c2507f4028755769b9524029e5ad59cc500cab7940e40d42","src/snatch.rs":"d75583fa0504b60554b14a865e1b1062b6b1dea7d99903cf09d03608f3a78a4c","src/storage.rs":"2ea3695b77ea540fee05149650005043fcc0abb3eb405738b5dea53efa60903d","src/timestamp_normalization/common.wgsl":"9f65aef0526ff9dde945fae70cef064ad961b0aee4291759ae82974cd2ead0a7","src/timestamp_normalization/mod.rs":"a1aab50a03ae283e86db0885ad00239278da8b3a40647f2d93fa15b2f23e51dc","src/timestamp_normalization/timestamp_normalization.wgsl":"4b2202b965e4c67482d03a546ac38c72a602d79ed9a60e6f7217393c49afad49","src/track/buffer.rs":"1ab5310367606fc74f0791733ea5ba2e09acc92ff7f4f4773f66bcfb3138c52f","src/track/metadata.rs":"04b8bcf8ded7c7c805d9336cfc874da9d8de7d12d99f7525f0540780a1dffc45","src/track/mod.rs":"6af2b831b3a0c91a60a8fd6f141db67695218e0af1735a31b9dee39053703b27","src/track/range.rs":"2688b05a0c6e8510ff6ba3a9623e8b83f433a05ba743129928c56c93d9a9c233","src/track/stateless.rs":"3db699f5f48a319fa07fb16cdf51e1623d6ecac7a476467ee366e014ea665b89","src/track/texture.rs":"fbd5f3cde5161404048131dbea014806cfc210ab1497bfd638f0064969c004f9","src/validation.rs":"a4ec78a9dcc893fdbcb9217102f5e79e85eaba1a5065892d983ed49014da488a","src/weak_vec.rs":"a4193add5912b91226a3155cc613365b7fafdf2e7929d21d68bc19d149696e85"},"package":null} \ No newline at end of file diff --git a/third_party/rust/wgpu-core/Cargo.toml b/third_party/rust/wgpu-core/Cargo.toml index 639c8f6fb81e..974f169bca89 100644 --- a/third_party/rust/wgpu-core/Cargo.toml +++ b/third_party/rust/wgpu-core/Cargo.toml @@ -162,7 +162,7 @@ version = "1" default-features = false [dependencies.raw-window-handle] -version = "0.6" +version = "0.6.2" optional = true default-features = false diff --git a/third_party/rust/wgpu-core/src/command/compute.rs b/third_party/rust/wgpu-core/src/command/compute.rs index f0111b7b96cf..7fa1596e657b 100644 --- a/third_party/rust/wgpu-core/src/command/compute.rs +++ b/third_party/rust/wgpu-core/src/command/compute.rs @@ -865,6 +865,7 @@ fn dispatch_indirect( .require_downlevel_flags(wgt::DownlevelFlags::INDIRECT_EXECUTION)?; buffer.check_usage(wgt::BufferUsages::INDIRECT)?; + buffer.check_destroyed(&state.snatch_guard)?; if offset % 4 != 0 { return Err(ComputePassErrorInner::UnalignedIndirectBufferOffset(offset)); diff --git a/third_party/rust/wgpu-core/src/command/draw.rs b/third_party/rust/wgpu-core/src/command/draw.rs index d2bdd19038bd..3b32b21e0e5d 100644 --- a/third_party/rust/wgpu-core/src/command/draw.rs +++ b/third_party/rust/wgpu-core/src/command/draw.rs @@ -81,8 +81,10 @@ pub enum RenderCommandError { MissingTextureUsage(#[from] MissingTextureUsageError), #[error(transparent)] PushConstants(#[from] PushConstantUploadError), - #[error("Viewport has invalid rect {0:?}; origin and/or size is less than or equal to 0, and/or is not contained in the render target {1:?}")] - InvalidViewportRect(Rect, wgt::Extent3d), + #[error("Viewport size {{ w: {w}, h: {h} }} greater than device's requested `max_texture_dimension_2d` limit {max}, or less than zero")] + InvalidViewportRectSize { w: f32, h: f32, max: u32 }, + #[error("Viewport has invalid rect {rect:?} for device's requested `max_texture_dimension_2d` limit; Origin less than -2 * `max_texture_dimension_2d` ({min}), or rect extends past 2 * `max_texture_dimension_2d` - 1 ({max})")] + InvalidViewportRectPosition { rect: Rect, min: f32, max: f32 }, #[error("Viewport minDepth {0} and/or maxDepth {1} are not in [0, 1]")] InvalidViewportDepth(f32, f32), #[error("Scissor {0:?} is not contained in the render target {1:?}")] diff --git a/third_party/rust/wgpu-core/src/command/render.rs b/third_party/rust/wgpu-core/src/command/render.rs index 67f3dd487c35..46d84773c749 100644 --- a/third_party/rust/wgpu-core/src/command/render.rs +++ b/third_party/rust/wgpu-core/src/command/render.rs @@ -2347,14 +2347,33 @@ fn set_viewport( depth_max: f32, ) -> Result<(), RenderPassErrorInner> { api_log!("RenderPass::set_viewport {rect:?}"); - if rect.x < 0.0 - || rect.y < 0.0 - || rect.w <= 0.0 - || rect.h <= 0.0 - || rect.x + rect.w > state.info.extent.width as f32 - || rect.y + rect.h > state.info.extent.height as f32 + + if rect.w < 0.0 + || rect.h < 0.0 + || rect.w > state.device.limits.max_texture_dimension_2d as f32 + || rect.h > state.device.limits.max_texture_dimension_2d as f32 { - return Err(RenderCommandError::InvalidViewportRect(rect, state.info.extent).into()); + return Err(RenderCommandError::InvalidViewportRectSize { + w: rect.w, + h: rect.h, + max: state.device.limits.max_texture_dimension_2d, + } + .into()); + } + + let max_viewport_range = state.device.limits.max_texture_dimension_2d as f32 * 2.0; + + if rect.x < -max_viewport_range + || rect.y < -max_viewport_range + || rect.x + rect.w > max_viewport_range - 1.0 + || rect.y + rect.h > max_viewport_range - 1.0 + { + return Err(RenderCommandError::InvalidViewportRectPosition { + rect, + min: -max_viewport_range, + max: max_viewport_range - 1.0, + } + .into()); } if !(0.0..=1.0).contains(&depth_min) || !(0.0..=1.0).contains(&depth_max) { return Err(RenderCommandError::InvalidViewportDepth(depth_min, depth_max).into()); @@ -2523,6 +2542,7 @@ fn multi_draw_indirect( indirect_buffer.same_device_as(cmd_buf.as_ref())?; indirect_buffer.check_usage(BufferUsages::INDIRECT)?; + indirect_buffer.check_destroyed(state.snatch_guard)?; if offset % 4 != 0 { return Err(RenderPassErrorInner::UnalignedIndirectBufferOffset(offset)); diff --git a/third_party/rust/wgpu-core/src/device/resource.rs b/third_party/rust/wgpu-core/src/device/resource.rs index 563714e8144f..7b54a78809a2 100644 --- a/third_party/rust/wgpu-core/src/device/resource.rs +++ b/third_party/rust/wgpu-core/src/device/resource.rs @@ -268,6 +268,7 @@ impl Device { raw_device.as_ref(), &desc.required_limits, &desc.required_features, + adapter.backend(), )?) } else { None diff --git a/third_party/rust/wgpu-core/src/indirect_validation/draw.rs b/third_party/rust/wgpu-core/src/indirect_validation/draw.rs index 4685db39b432..d88acb8d60d3 100644 --- a/third_party/rust/wgpu-core/src/indirect_validation/draw.rs +++ b/third_party/rust/wgpu-core/src/indirect_validation/draw.rs @@ -62,6 +62,7 @@ impl Draw { pub(super) fn new( device: &dyn hal::DynDevice, required_features: &wgt::Features, + backend: wgt::Backend, ) -> Result { let module = create_validation_module(device)?; @@ -92,11 +93,13 @@ impl Draw { let supports_indirect_first_instance = required_features.contains(wgt::Features::INDIRECT_FIRST_INSTANCE); + let write_d3d12_special_constants = backend == wgt::Backend::Dx12; let pipeline = create_validation_pipeline( device, module.as_ref(), pipeline_layout.as_ref(), supports_indirect_first_instance, + write_d3d12_special_constants, )?; Ok(Self { @@ -523,6 +526,7 @@ fn create_validation_pipeline( module: &dyn hal::DynShaderModule, pipeline_layout: &dyn hal::DynPipelineLayout, supports_indirect_first_instance: bool, + write_d3d12_special_constants: bool, ) -> Result, CreateIndirectValidationPipelineError> { let pipeline_desc = hal::ComputePipelineDescriptor { label: None, @@ -530,10 +534,16 @@ fn create_validation_pipeline( stage: hal::ProgrammableStage { module, entry_point: "main", - constants: &hashbrown::HashMap::from([( - "supports_indirect_first_instance".to_string(), - f64::from(supports_indirect_first_instance), - )]), + constants: &hashbrown::HashMap::from([ + ( + "supports_indirect_first_instance".to_string(), + f64::from(supports_indirect_first_instance), + ), + ( + "write_d3d12_special_constants".to_string(), + f64::from(write_d3d12_special_constants), + ), + ]), zero_initialize_workgroup_memory: false, }, cache: None, @@ -913,7 +923,13 @@ impl DrawBatcher { vertex_or_index_limit: u64, instance_limit: u64, ) -> Result<(usize, u64), DeviceError> { - let stride = crate::command::get_stride_of_indirect_args(indexed); + // space for D3D12 special constants + let extra = if device.backend() == wgt::Backend::Dx12 { + 3 * size_of::() as u64 + } else { + 0 + }; + let stride = extra + crate::command::get_stride_of_indirect_args(indexed); let (dst_resource_index, dst_offset) = indirect_draw_validation_resources .get_dst_subrange(stride, &mut self.current_dst_entry)?; diff --git a/third_party/rust/wgpu-core/src/indirect_validation/mod.rs b/third_party/rust/wgpu-core/src/indirect_validation/mod.rs index c4977aa90d6c..8ce365e9951c 100644 --- a/third_party/rust/wgpu-core/src/indirect_validation/mod.rs +++ b/third_party/rust/wgpu-core/src/indirect_validation/mod.rs @@ -33,6 +33,7 @@ impl IndirectValidation { device: &dyn hal::DynDevice, required_limits: &wgt::Limits, required_features: &wgt::Features, + backend: wgt::Backend, ) -> Result { let dispatch = match Dispatch::new(device, required_limits) { Ok(dispatch) => dispatch, @@ -41,7 +42,7 @@ impl IndirectValidation { return Err(DeviceError::Lost); } }; - let draw = match Draw::new(device, required_features) { + let draw = match Draw::new(device, required_features, backend) { Ok(draw) => draw, Err(e) => { log::error!("indirect-draw-validation error: {e:?}"); diff --git a/third_party/rust/wgpu-core/src/indirect_validation/validate_draw.wgsl b/third_party/rust/wgpu-core/src/indirect_validation/validate_draw.wgsl index 53a9bb8d7289..945315a60bc0 100644 --- a/third_party/rust/wgpu-core/src/indirect_validation/validate_draw.wgsl +++ b/third_party/rust/wgpu-core/src/indirect_validation/validate_draw.wgsl @@ -1,4 +1,5 @@ override supports_indirect_first_instance: bool; +override write_d3d12_special_constants: bool; struct MetadataEntry { // bits 0..30 are an offset into `src` @@ -66,21 +67,32 @@ fn main(@builtin(global_invocation_id) global_invocation_id: vec3u) { failed |= first_instance != 0u; } + let dst_offset = select(0u, 3u, write_d3d12_special_constants); if failed { - dst[dst_base_offset + 0] = 0u; - dst[dst_base_offset + 1] = 0u; - dst[dst_base_offset + 2] = 0u; - dst[dst_base_offset + 3] = 0u; + if write_d3d12_special_constants { + dst[dst_base_offset + 0] = 0u; + dst[dst_base_offset + 1] = 0u; + dst[dst_base_offset + 2] = 0u; + } + dst[dst_base_offset + dst_offset + 0] = 0u; + dst[dst_base_offset + dst_offset + 1] = 0u; + dst[dst_base_offset + dst_offset + 2] = 0u; + dst[dst_base_offset + dst_offset + 3] = 0u; if (is_indexed) { - dst[dst_base_offset + 4] = 0u; + dst[dst_base_offset + dst_offset + 4] = 0u; } } else { - dst[dst_base_offset + 0] = src[src_base_offset + 0]; - dst[dst_base_offset + 1] = src[src_base_offset + 1]; - dst[dst_base_offset + 2] = src[src_base_offset + 2]; - dst[dst_base_offset + 3] = src[src_base_offset + 3]; + if write_d3d12_special_constants { + dst[dst_base_offset + 0] = src[src_base_offset + 2 + u32(is_indexed)]; + dst[dst_base_offset + 1] = src[src_base_offset + 3 + u32(is_indexed)]; + dst[dst_base_offset + 2] = 0u; + } + dst[dst_base_offset + dst_offset + 0] = src[src_base_offset + 0]; + dst[dst_base_offset + dst_offset + 1] = src[src_base_offset + 1]; + dst[dst_base_offset + dst_offset + 2] = src[src_base_offset + 2]; + dst[dst_base_offset + dst_offset + 3] = src[src_base_offset + 3]; if (is_indexed) { - dst[dst_base_offset + 4] = src[src_base_offset + 4]; + dst[dst_base_offset + dst_offset + 4] = src[src_base_offset + 4]; } } } \ No newline at end of file diff --git a/third_party/rust/wgpu-hal/.cargo-checksum.json b/third_party/rust/wgpu-hal/.cargo-checksum.json index 6080a74b35a4..9fb9f15ab67a 100644 --- a/third_party/rust/wgpu-hal/.cargo-checksum.json +++ b/third_party/rust/wgpu-hal/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"a7a854a981db41a4dc136f62e39fc62da7a8aab116bee26b1886f97139726b2e","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","README.md":"cf9e84804a635e4a8a9fefc596be9da6bf7354dde0d105e27d56a12cb20dd8e3","build.rs":"40c99bddda32846afd639d84b9a160ddab338092560b5cb3402112ff37ab4fba","examples/halmark/main.rs":"a16c6902b2ad1a4d8db8d057091b47259d5f59e63058b07a4bada6c7defd9312","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"288dae4c701aa7e5ba498fdd03ea42e1046a27db0914d93c88a43a7953cb9064","examples/ray-traced-triangle/main.rs":"3d702095bd8295a0f762fded0e123845beb4d2c25bda2cf05c2de94a9420023c","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"c7564baf7142ebcc1135e14f0c2600580edde8903279372bd25767fe532d20d3","src/auxil/dxgi/exception.rs":"60fe0a6dbae2c3b133b75e268739a501ad1d207acfa5981532f1f704b1b8c47f","src/auxil/dxgi/factory.rs":"fbae1cf83f4ac8cd356557fb3caa0da92c3968d68a36f5c8ea18b90b3bcaeeaa","src/auxil/dxgi/mod.rs":"08b919774b5ec2bad4aaa48e682e526f7c897fe91ccc6adfa32850adba822f9b","src/auxil/dxgi/name.rs":"ff942da0da1a497ee4d2be21604f7ba9fae963588105b3d1f63aae1a0c536e82","src/auxil/dxgi/result.rs":"a14b8b0dd052e7dde11220043f180d2e8ce7ae522dea6e96536c82db13fc7abc","src/auxil/dxgi/time.rs":"1414a57363adf8381d89d9c1efdf9eee471081e1a2a583ae90f0310fd8902fd4","src/auxil/mod.rs":"540b9250d9f0e0af709245ce1e284eaca15b27d47550b0ebba2a512da1666c48","src/auxil/renderdoc.rs":"e687710ea0c9e88c9be0e2acd39d136635b835ffb941886b875811b3ec945080","src/dx12/adapter.rs":"ffcd8f8f429334c85a66c74795f2adbf2b03d4538af8fd70e480bd42fd9e6292","src/dx12/command.rs":"4c90a89ae2202d2bfd671d025eba71bbbb7cacbc879ef13ad8713a67e33d30e4","src/dx12/conv.rs":"fa0b9936f391662390aa453c169b26aaf65ed3c7a00087c0f8a6b99de22614e7","src/dx12/descriptor.rs":"fa523bb069b775065367a71edad7fbbfa2bad6f952a4781b048ecec0d35b70fb","src/dx12/device.rs":"e949ff1178460fdafad42a8eacae57dad0e8560089228630399142af9de8ce70","src/dx12/instance.rs":"626ff3377fae82a356da3ebc66b6c453a6c9bfb0bb0cce51c4c3f20b2d9df964","src/dx12/mod.rs":"c53f7cf910b27f01d2eccc9fc2ee8973425a9a19ba0fc83a6b292dc60598bc76","src/dx12/sampler.rs":"402b5850dc64ab23b760fa9ab44c229ed808bc4ab58f78de0b889b68a0e207c0","src/dx12/shader_compilation.rs":"56708724f8be37f48050e28ff54ffd1504245b1de36f4750e5fabcbe2e64d992","src/dx12/suballocation.rs":"ac92899a7a8a06c040ba42d8c21f25fe49f3f0fcc0e382a6c6623bd6df2744eb","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"3f4c23a34b86e3bfbcb11169a9dec5e1c21425e7ecad846b36c159ced0138cee","src/dynamic/adapter.rs":"e93f7d082a3950c9e8ccff8a631d251c7598b4b25dda9fe6347dadfa3ba07829","src/dynamic/command.rs":"a67394c333b2f0773717d64d7ca9a900868e7ce46dac832ec09a17a5a84bfa43","src/dynamic/device.rs":"cd4aabfc3f009eac660debbb7349a6f338b845d6fa807c6d0338068ae5464f57","src/dynamic/instance.rs":"7b515c201e1ca24f24439544dbfa1d19ea1412a4f89bd803e009aed13b021e55","src/dynamic/mod.rs":"b02a3c11b22c896cf66ef206f5d4bb4e24988ecadc29972c572baf347f54aa04","src/dynamic/queue.rs":"d76abb4797e90253386d24584f186dbe1909e772560156b2e891fa043cfefbdc","src/dynamic/surface.rs":"4328c2fe86931f50aa00ac3d6982d0879b774eebf7a507903d1b1898c891fb4d","src/gles/adapter.rs":"c84db856bc9d6adac2806d03487c7e7ccfa9235548b9d1583f11468bea1e3b75","src/gles/command.rs":"b4e0df28700b9709c24b14cec734cce7f256f6ade6220715e9bd71d4601daf77","src/gles/conv.rs":"7f885dd2bc72641d22f8f2e688ebdd857663bfe315f1b5364ea302f99a05adbf","src/gles/device.rs":"20e73080152f936f656eed9e4f48e25a3265b0a49f4648ec0ad2605a949edb9c","src/gles/egl.rs":"c9737871f276c81f1994ebd55dabf8817cb46bdb4ecd495b1c28b52aba8f74fd","src/gles/emscripten.rs":"316d2bb6f2a4bb126dbe68a223f7393399080d116b61c39504454acdf4f9cfaf","src/gles/fence.rs":"083cd49747aba6272002aba0b0c37e5768cdbc2a1b8bacd1a244ee905d3f7b0f","src/gles/mod.rs":"346cbbe8bd070b24f36aefd3c425d8c255716a675a3ce182f12c39f580f6a077","src/gles/queue.rs":"b4747ce2c1471a176d3b5205331735f0dd8a430572a3708e7e089bba32e10033","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"cb5940bf7b2381811675011b640040274f407a7d1908d0f82c813d6a9d3b00f7","src/gles/wgl.rs":"4242466a745e2263204e61b7de011c4a9a4c559ab06ae4df063685762b0cd042","src/lib.rs":"37a0708531627fe30efd92e6c6e32627231c6c69e9ceac9872f5659ae9115947","src/metal/adapter.rs":"610f19cfaf6533d0f21af6d0db223dbad6c3dee3d9536eb0c1883046a8c9c85c","src/metal/command.rs":"e8af9260abc9852fce35d4dda981750c8f4c4d970ca9959e48442a036414aa8a","src/metal/conv.rs":"17f37cf5fea93b437e5ec9cfff9ae96e2c6a7f23fb2d3890616fb8dbeb5f13c4","src/metal/device.rs":"9aed6db37355b3304a53d47c6025728baf3df4ebfb1ad66c0ad485e601af0d31","src/metal/layer_observer.rs":"8370a6e443d01739b951b8538ee719a03b69fc0cbac92c748db418fbcc8837b5","src/metal/mod.rs":"e491add5ee78620811e86a9fb7adb63de989365cee25041d06a088e35afa136a","src/metal/surface.rs":"828cf6f22bb5038afbd471d4164ecc256e832d51b0a845a12be839289f8bded8","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/noop/buffer.rs":"89a938411204b33082200a1306fe589587de15142392d7ec591676512e4cfeb2","src/noop/command.rs":"917b70ac315101633094b3f92744310a60940747a2cc8a9368141200ce0ed1fd","src/noop/mod.rs":"f5d39130724559599a43344e0c711101aaebeb42599050732149fadb0f90407d","src/vulkan/adapter.rs":"db66ff6030749dc7960a5f8a224a6131bbb14c44f3ae238d6cb3b717a00c0c4d","src/vulkan/command.rs":"73877c483de8d5e37ac56bcba6d8a8ffd7fe6a9fd85ae82be886794d0d99b50c","src/vulkan/conv.rs":"6a613c190e22fdbc7b895c243add16f8445742be49c0deadd24cb0503cc31b9c","src/vulkan/device.rs":"b30176c4d08471fc433ba930d670f7f9b72c4cc263191b4e98a0cbd5a8e2ff20","src/vulkan/drm.rs":"22aaa0644cf7e90840bce0377e8f990c0a839f46a054497dbb96105d59999022","src/vulkan/instance.rs":"0880893f69bc348cd1d5bcc00509d09e84e84960fe0c4ac2f9a2e4b0090d83a7","src/vulkan/mod.rs":"60698c92f34552dadea242f34767e9ad6f17dd8527c7a9305595ad10945db323","src/vulkan/sampler.rs":"77a91ec2e61481256eddcff7c4081d72b5cda09e2824333d77945da9eada8933"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"6a2c7dbc68a68c116af72a435fb57fdef1d4bcae7f91acdf56258e80784bf972","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","README.md":"cf9e84804a635e4a8a9fefc596be9da6bf7354dde0d105e27d56a12cb20dd8e3","build.rs":"40c99bddda32846afd639d84b9a160ddab338092560b5cb3402112ff37ab4fba","examples/halmark/main.rs":"a16c6902b2ad1a4d8db8d057091b47259d5f59e63058b07a4bada6c7defd9312","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"288dae4c701aa7e5ba498fdd03ea42e1046a27db0914d93c88a43a7953cb9064","examples/ray-traced-triangle/main.rs":"3d702095bd8295a0f762fded0e123845beb4d2c25bda2cf05c2de94a9420023c","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"c7564baf7142ebcc1135e14f0c2600580edde8903279372bd25767fe532d20d3","src/auxil/dxgi/exception.rs":"60fe0a6dbae2c3b133b75e268739a501ad1d207acfa5981532f1f704b1b8c47f","src/auxil/dxgi/factory.rs":"fbae1cf83f4ac8cd356557fb3caa0da92c3968d68a36f5c8ea18b90b3bcaeeaa","src/auxil/dxgi/mod.rs":"08b919774b5ec2bad4aaa48e682e526f7c897fe91ccc6adfa32850adba822f9b","src/auxil/dxgi/name.rs":"ff942da0da1a497ee4d2be21604f7ba9fae963588105b3d1f63aae1a0c536e82","src/auxil/dxgi/result.rs":"a14b8b0dd052e7dde11220043f180d2e8ce7ae522dea6e96536c82db13fc7abc","src/auxil/dxgi/time.rs":"1414a57363adf8381d89d9c1efdf9eee471081e1a2a583ae90f0310fd8902fd4","src/auxil/mod.rs":"540b9250d9f0e0af709245ce1e284eaca15b27d47550b0ebba2a512da1666c48","src/auxil/renderdoc.rs":"e687710ea0c9e88c9be0e2acd39d136635b835ffb941886b875811b3ec945080","src/dx12/adapter.rs":"8c0cab328aa3b9084d2cf2c26a000c42ed5473ebed9786c02170af7ed34651a7","src/dx12/command.rs":"d7765d51f6c7ac30d6f47d347953d86e99859213318e8a3726ced315a3b08021","src/dx12/conv.rs":"fa0b9936f391662390aa453c169b26aaf65ed3c7a00087c0f8a6b99de22614e7","src/dx12/descriptor.rs":"fa523bb069b775065367a71edad7fbbfa2bad6f952a4781b048ecec0d35b70fb","src/dx12/device.rs":"e949ff1178460fdafad42a8eacae57dad0e8560089228630399142af9de8ce70","src/dx12/instance.rs":"764a558e0de9d2cdac1f5f8639700f570f1d18f5da36fce817187af9d5b279a7","src/dx12/mod.rs":"c53f7cf910b27f01d2eccc9fc2ee8973425a9a19ba0fc83a6b292dc60598bc76","src/dx12/sampler.rs":"402b5850dc64ab23b760fa9ab44c229ed808bc4ab58f78de0b889b68a0e207c0","src/dx12/shader_compilation.rs":"3cf50951718e2d17d416e2d3fc43bd791cb3d61e0dcf244ddf288c190f0b25dc","src/dx12/suballocation.rs":"ac92899a7a8a06c040ba42d8c21f25fe49f3f0fcc0e382a6c6623bd6df2744eb","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"3f4c23a34b86e3bfbcb11169a9dec5e1c21425e7ecad846b36c159ced0138cee","src/dynamic/adapter.rs":"e93f7d082a3950c9e8ccff8a631d251c7598b4b25dda9fe6347dadfa3ba07829","src/dynamic/command.rs":"a67394c333b2f0773717d64d7ca9a900868e7ce46dac832ec09a17a5a84bfa43","src/dynamic/device.rs":"cd4aabfc3f009eac660debbb7349a6f338b845d6fa807c6d0338068ae5464f57","src/dynamic/instance.rs":"7b515c201e1ca24f24439544dbfa1d19ea1412a4f89bd803e009aed13b021e55","src/dynamic/mod.rs":"b02a3c11b22c896cf66ef206f5d4bb4e24988ecadc29972c572baf347f54aa04","src/dynamic/queue.rs":"d76abb4797e90253386d24584f186dbe1909e772560156b2e891fa043cfefbdc","src/dynamic/surface.rs":"4328c2fe86931f50aa00ac3d6982d0879b774eebf7a507903d1b1898c891fb4d","src/gles/adapter.rs":"5c92a2a4e46ba098ee9a2ce2e158d29b6b1ee6c72293a665df2664b04f2f6b12","src/gles/command.rs":"b4e0df28700b9709c24b14cec734cce7f256f6ade6220715e9bd71d4601daf77","src/gles/conv.rs":"7f885dd2bc72641d22f8f2e688ebdd857663bfe315f1b5364ea302f99a05adbf","src/gles/device.rs":"20e73080152f936f656eed9e4f48e25a3265b0a49f4648ec0ad2605a949edb9c","src/gles/egl.rs":"c9737871f276c81f1994ebd55dabf8817cb46bdb4ecd495b1c28b52aba8f74fd","src/gles/emscripten.rs":"316d2bb6f2a4bb126dbe68a223f7393399080d116b61c39504454acdf4f9cfaf","src/gles/fence.rs":"083cd49747aba6272002aba0b0c37e5768cdbc2a1b8bacd1a244ee905d3f7b0f","src/gles/mod.rs":"ebfb44300a16e9dbf373bed4b768d8336e345cf12f3d0f496c2e33c65fec6230","src/gles/queue.rs":"b4747ce2c1471a176d3b5205331735f0dd8a430572a3708e7e089bba32e10033","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"cb5940bf7b2381811675011b640040274f407a7d1908d0f82c813d6a9d3b00f7","src/gles/wgl.rs":"4242466a745e2263204e61b7de011c4a9a4c559ab06ae4df063685762b0cd042","src/lib.rs":"37a0708531627fe30efd92e6c6e32627231c6c69e9ceac9872f5659ae9115947","src/metal/adapter.rs":"610f19cfaf6533d0f21af6d0db223dbad6c3dee3d9536eb0c1883046a8c9c85c","src/metal/command.rs":"e8af9260abc9852fce35d4dda981750c8f4c4d970ca9959e48442a036414aa8a","src/metal/conv.rs":"17f37cf5fea93b437e5ec9cfff9ae96e2c6a7f23fb2d3890616fb8dbeb5f13c4","src/metal/device.rs":"9aed6db37355b3304a53d47c6025728baf3df4ebfb1ad66c0ad485e601af0d31","src/metal/layer_observer.rs":"8370a6e443d01739b951b8538ee719a03b69fc0cbac92c748db418fbcc8837b5","src/metal/mod.rs":"e491add5ee78620811e86a9fb7adb63de989365cee25041d06a088e35afa136a","src/metal/surface.rs":"828cf6f22bb5038afbd471d4164ecc256e832d51b0a845a12be839289f8bded8","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/noop/buffer.rs":"89a938411204b33082200a1306fe589587de15142392d7ec591676512e4cfeb2","src/noop/command.rs":"917b70ac315101633094b3f92744310a60940747a2cc8a9368141200ce0ed1fd","src/noop/mod.rs":"f5d39130724559599a43344e0c711101aaebeb42599050732149fadb0f90407d","src/vulkan/adapter.rs":"b7c9acfbd9af85920d6dfba2786c5d8a5557df12f3a43584ca365f7c66f16fd1","src/vulkan/command.rs":"73877c483de8d5e37ac56bcba6d8a8ffd7fe6a9fd85ae82be886794d0d99b50c","src/vulkan/conv.rs":"6a613c190e22fdbc7b895c243add16f8445742be49c0deadd24cb0503cc31b9c","src/vulkan/device.rs":"b30176c4d08471fc433ba930d670f7f9b72c4cc263191b4e98a0cbd5a8e2ff20","src/vulkan/drm.rs":"22aaa0644cf7e90840bce0377e8f990c0a839f46a054497dbb96105d59999022","src/vulkan/instance.rs":"0880893f69bc348cd1d5bcc00509d09e84e84960fe0c4ac2f9a2e4b0090d83a7","src/vulkan/mod.rs":"60698c92f34552dadea242f34767e9ad6f17dd8527c7a9305595ad10945db323","src/vulkan/sampler.rs":"77a91ec2e61481256eddcff7c4081d72b5cda09e2824333d77945da9eada8933"},"package":null} \ No newline at end of file diff --git a/third_party/rust/wgpu-hal/Cargo.toml b/third_party/rust/wgpu-hal/Cargo.toml index 5f170658b59a..0c3d2ae7001d 100644 --- a/third_party/rust/wgpu-hal/Cargo.toml +++ b/third_party/rust/wgpu-hal/Cargo.toml @@ -218,7 +218,7 @@ optional = true default-features = false [dependencies.raw-window-handle] -version = "0.6" +version = "0.6.2" default-features = false [dependencies.rustc-hash] diff --git a/third_party/rust/wgpu-hal/src/dx12/adapter.rs b/third_party/rust/wgpu-hal/src/dx12/adapter.rs index 50aa80ad28cc..4d214e77059f 100644 --- a/third_party/rust/wgpu-hal/src/dx12/adapter.rs +++ b/third_party/rust/wgpu-hal/src/dx12/adapter.rs @@ -500,10 +500,7 @@ impl super::Adapter { let base = wgt::Limits::default(); - let mut downlevel = wgt::DownlevelCapabilities::default(); - // https://github.com/gfx-rs/wgpu/issues/2471 - downlevel.flags -= - wgt::DownlevelFlags::VERTEX_AND_INSTANCE_INDEX_RESPECTS_RESPECTIVE_FIRST_VALUE_IN_INDIRECT_DRAW; + let downlevel = wgt::DownlevelCapabilities::default(); // See https://learn.microsoft.com/en-us/windows/win32/direct3d12/hardware-feature-levels#feature-level-support let max_color_attachments = 8; diff --git a/third_party/rust/wgpu-hal/src/dx12/command.rs b/third_party/rust/wgpu-hal/src/dx12/command.rs index a14cada4f0f2..839d445982fb 100644 --- a/third_party/rust/wgpu-hal/src/dx12/command.rs +++ b/third_party/rust/wgpu-hal/src/dx12/command.rs @@ -104,7 +104,7 @@ impl super::CommandEncoder { self.pass.clear(); } - unsafe fn prepare_draw(&mut self, first_vertex: i32, first_instance: u32) { + unsafe fn prepare_vertex_buffers(&mut self) { while self.pass.dirty_vertex_buffers != 0 { let list = self.list.as_ref().unwrap(); let index = self.pass.dirty_vertex_buffers.trailing_zeros(); @@ -116,6 +116,12 @@ impl super::CommandEncoder { ); } } + } + + unsafe fn prepare_draw(&mut self, first_vertex: i32, first_instance: u32) { + unsafe { + self.prepare_vertex_buffers(); + } if let Some(root_index) = self .pass .layout @@ -1195,10 +1201,31 @@ impl crate::CommandEncoder for super::CommandEncoder { offset: wgt::BufferAddress, draw_count: u32, ) { - unsafe { self.prepare_draw(0, 0) }; + if self + .pass + .layout + .special_constants + .as_ref() + .and_then(|sc| sc.indirect_cmd_signatures.as_ref()) + .is_some() + { + unsafe { self.prepare_vertex_buffers() }; + self.update_root_elements(); + } else { + unsafe { self.prepare_draw(0, 0) }; + } + + let cmd_signature = &self + .pass + .layout + .special_constants + .as_ref() + .and_then(|sc| sc.indirect_cmd_signatures.as_ref()) + .unwrap_or_else(|| &self.shared.cmd_signatures) + .draw; unsafe { self.list.as_ref().unwrap().ExecuteIndirect( - &self.shared.cmd_signatures.draw, + cmd_signature, draw_count, &buffer.resource, offset, @@ -1213,10 +1240,31 @@ impl crate::CommandEncoder for super::CommandEncoder { offset: wgt::BufferAddress, draw_count: u32, ) { - unsafe { self.prepare_draw(0, 0) }; + if self + .pass + .layout + .special_constants + .as_ref() + .and_then(|sc| sc.indirect_cmd_signatures.as_ref()) + .is_some() + { + unsafe { self.prepare_vertex_buffers() }; + self.update_root_elements(); + } else { + unsafe { self.prepare_draw(0, 0) }; + } + + let cmd_signature = &self + .pass + .layout + .special_constants + .as_ref() + .and_then(|sc| sc.indirect_cmd_signatures.as_ref()) + .unwrap_or_else(|| &self.shared.cmd_signatures) + .draw_indexed; unsafe { self.list.as_ref().unwrap().ExecuteIndirect( - &self.shared.cmd_signatures.draw_indexed, + cmd_signature, draw_count, &buffer.resource, offset, diff --git a/third_party/rust/wgpu-hal/src/dx12/instance.rs b/third_party/rust/wgpu-hal/src/dx12/instance.rs index ef02c8aca7bb..f284500d0d5f 100644 --- a/third_party/rust/wgpu-hal/src/dx12/instance.rs +++ b/third_party/rust/wgpu-hal/src/dx12/instance.rs @@ -69,13 +69,11 @@ impl crate::Instance for super::Instance { // Initialize DXC shader compiler let dxc_container = match desc.backend_options.dx12.shader_compiler.clone() { wgt::Dx12Compiler::DynamicDxc { - dxil_path, dxc_path, max_shader_model, } => { let container = super::shader_compilation::get_dynamic_dxc_container( dxc_path.into(), - dxil_path.into(), max_shader_model, ) .map_err(|e| { diff --git a/third_party/rust/wgpu-hal/src/dx12/shader_compilation.rs b/third_party/rust/wgpu-hal/src/dx12/shader_compilation.rs index 3aec4ccb60af..8b3675617a64 100644 --- a/third_party/rust/wgpu-hal/src/dx12/shader_compilation.rs +++ b/third_party/rust/wgpu-hal/src/dx12/shader_compilation.rs @@ -7,10 +7,6 @@ use windows::{ Win32::Graphics::Direct3D::{Dxc, Fxc}, }; -// Currently this will use Dxc if it is chosen as the dx12 compiler at `Instance` creation time, and will -// fallback to FXC if the Dxc libraries (dxil.dll and dxcompiler.dll) are not found, or if Fxc is chosen at' -// `Instance` creation time. - pub(super) fn compile_fxc( device: &super::Device, source: &str, @@ -134,18 +130,12 @@ unsafe fn dxc_create_instance( result__.ok_or(crate::DeviceError::Unexpected) } -// Destructor order should be fine since _dxil and _dxc don't rely on each other. pub(super) struct DxcContainer { pub(super) max_shader_model: wgt::DxcShaderModel, compiler: Dxc::IDxcCompiler3, - utils: Dxc::IDxcUtils, - validator: Option, // Has to be held onto for the lifetime of the device otherwise shaders will fail to compile. // Only needed when using dynamic linking. _dxc: Option, - // Also Has to be held onto for the lifetime of the device otherwise shaders will fail to validate. - // Only needed when using dynamic linking. - _dxil: Option, } #[derive(Debug, Error)] @@ -158,26 +148,17 @@ pub(super) enum GetDynamicDXCContainerError { pub(super) fn get_dynamic_dxc_container( dxc_path: PathBuf, - dxil_path: PathBuf, max_shader_model: wgt::DxcShaderModel, ) -> Result { let dxc = DxcLib::new_dynamic(dxc_path) .map_err(|e| GetDynamicDXCContainerError::FailedToLoad("dxcompiler.dll", e))?; - let dxil = DxcLib::new_dynamic(dxil_path) - .map_err(|e| GetDynamicDXCContainerError::FailedToLoad("dxil.dll", e))?; - let compiler = dxc.create_instance::()?; - let utils = dxc.create_instance::()?; - let validator = dxil.create_instance::()?; Ok(DxcContainer { max_shader_model, compiler, - utils, - validator: Some(validator), _dxc: Some(dxc), - _dxil: Some(dxil), }) } @@ -193,21 +174,11 @@ pub(super) fn get_static_dxc_container() -> Result(|clsid, iid, ppv| { - windows_core::HRESULT(mach_dxcompiler_rs::DxcCreateInstance( - clsid.cast(), - iid.cast(), - ppv, - )) - })?; Ok(DxcContainer { max_shader_model: wgt::DxcShaderModel::V6_7, compiler, - utils, - validator: None, _dxc: None, - _dxil: None, }) } } @@ -286,10 +257,6 @@ pub(super) fn compile_dxc( Dxc::DXC_ARG_ENABLE_STRICTNESS, ]); - if dxc_container.validator.is_some() { - compile_args.push(Dxc::DXC_ARG_SKIP_VALIDATION); // Disable implicit validation to work around bugs when dxil.dll isn't in the local directory.) - } - if device .shared .private_caps @@ -335,25 +302,5 @@ pub(super) fn compile_dxc( let blob = get_output::(&compile_res, Dxc::DXC_OUT_OBJECT)?; - if let Some(validator) = &dxc_container.validator { - let err_blob = { - let res = unsafe { validator.Validate(&blob, Dxc::DxcValidatorFlags_InPlaceEdit) } - .into_device_result("Validate")?; - - unsafe { res.GetErrorBuffer() }.into_device_result("GetErrorBuffer")? - }; - - let size = unsafe { err_blob.GetBufferSize() }; - if size != 0 { - let err_blob = unsafe { dxc_container.utils.GetBlobAsUtf8(&err_blob) } - .into_device_result("GetBlobAsUtf8")?; - let err = as_err_str(&err_blob)?; - return Err(crate::PipelineError::Linkage( - stage_bit, - format!("DXC validation error: {err}"), - )); - } - } - Ok(crate::dx12::CompiledShader::Dxc(blob)) } diff --git a/third_party/rust/wgpu-hal/src/gles/adapter.rs b/third_party/rust/wgpu-hal/src/gles/adapter.rs index a4370f81980d..34725a944d28 100644 --- a/third_party/rust/wgpu-hal/src/gles/adapter.rs +++ b/third_party/rust/wgpu-hal/src/gles/adapter.rs @@ -384,8 +384,7 @@ impl super::Adapter { let mut downlevel_flags = wgt::DownlevelFlags::empty() | wgt::DownlevelFlags::NON_POWER_OF_TWO_MIPMAPPED_TEXTURES | wgt::DownlevelFlags::CUBE_ARRAY_TEXTURES - | wgt::DownlevelFlags::COMPARISON_SAMPLERS - | wgt::DownlevelFlags::VERTEX_AND_INSTANCE_INDEX_RESPECTS_RESPECTIVE_FIRST_VALUE_IN_INDIRECT_DRAW; + | wgt::DownlevelFlags::COMPARISON_SAMPLERS; downlevel_flags.set(wgt::DownlevelFlags::COMPUTE_SHADERS, supports_compute); downlevel_flags.set( wgt::DownlevelFlags::FRAGMENT_WRITABLE_STORAGE, diff --git a/third_party/rust/wgpu-hal/src/gles/mod.rs b/third_party/rust/wgpu-hal/src/gles/mod.rs index ab434b90dd1b..94b169daa15b 100644 --- a/third_party/rust/wgpu-hal/src/gles/mod.rs +++ b/third_party/rust/wgpu-hal/src/gles/mod.rs @@ -62,8 +62,6 @@ in shaders, getting buffers and builtins to work correctly is a bit tricky. We never emulate `base_vertex` and gl_VertexID behaves as `@builtin(vertex_index)` does, so we never need to do anything about that. -We always advertise support for `VERTEX_AND_INSTANCE_INDEX_RESPECTS_RESPECTIVE_FIRST_VALUE_IN_INDIRECT_DRAW`. - ### GL 4.2+ with ARB_shader_draw_parameters - `@builtin(instance_index)` translates to `gl_InstanceID + gl_BaseInstance` diff --git a/third_party/rust/wgpu-hal/src/vulkan/adapter.rs b/third_party/rust/wgpu-hal/src/vulkan/adapter.rs index a43840127702..38a5b80a57c2 100644 --- a/third_party/rust/wgpu-hal/src/vulkan/adapter.rs +++ b/third_party/rust/wgpu-hal/src/vulkan/adapter.rs @@ -559,8 +559,7 @@ impl PhysicalDeviceFeatures { | Df::INDIRECT_EXECUTION | Df::VIEW_FORMATS | Df::UNRESTRICTED_EXTERNAL_TEXTURE_COPIES - | Df::NONBLOCKING_QUERY_RESOLVE - | Df::VERTEX_AND_INSTANCE_INDEX_RESPECTS_RESPECTIVE_FIRST_VALUE_IN_INDIRECT_DRAW; + | Df::NONBLOCKING_QUERY_RESOLVE; dl_flags.set( Df::SURFACE_VIEW_FORMATS, diff --git a/third_party/rust/wgpu-types/.cargo-checksum.json b/third_party/rust/wgpu-types/.cargo-checksum.json index a50f23fb74e4..9c004dbba8ec 100644 --- a/third_party/rust/wgpu-types/.cargo-checksum.json +++ b/third_party/rust/wgpu-types/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"165a5ea0c686b3bc9554a63478776d623b1a0e650752355210944db1359dc2bd","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"e4d2d40bc1e870a59637f4b9574743e19565a62f6dbcc21cb18a76b666b796eb","src/cast_utils.rs":"33f03a57ccbedef2699f2305bec584c623db1fd28bfdf584d1260da4fbecd529","src/counters.rs":"e2a1c69126bdb6a35f74d5062e89e242eb955014d95c2b9e6e1b03f7b4b5bd98","src/env.rs":"26ffc91867625784159bcf391881187aa92cf92b81b1f40959ce1b96ae6d554d","src/features.rs":"f7976b411c313e2c54261be05c53a60f408f97f6d92dc8fec807352f51071db5","src/instance.rs":"838e2c410afc9cf2d270b7c9daeb8b2c47a9cbf34e06c8d30d687f77086d70d6","src/lib.rs":"53665cfc43ce69d9f9650c3ac8d1b1eb8179ae8e2b497200f257181b66b584ae","src/math.rs":"3046121800bded318b7d219aea401907e7d3bba3b998df6745a71e76f0734de2"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"165a5ea0c686b3bc9554a63478776d623b1a0e650752355210944db1359dc2bd","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"e4d2d40bc1e870a59637f4b9574743e19565a62f6dbcc21cb18a76b666b796eb","src/cast_utils.rs":"33f03a57ccbedef2699f2305bec584c623db1fd28bfdf584d1260da4fbecd529","src/counters.rs":"e2a1c69126bdb6a35f74d5062e89e242eb955014d95c2b9e6e1b03f7b4b5bd98","src/env.rs":"26ffc91867625784159bcf391881187aa92cf92b81b1f40959ce1b96ae6d554d","src/features.rs":"f7976b411c313e2c54261be05c53a60f408f97f6d92dc8fec807352f51071db5","src/instance.rs":"dec663bd750dbada7add469920d11aa42949852a5142ef6f9387b91c05b3889f","src/lib.rs":"e3d77ae3f41a2955631132c3ee84af69d1123bec2a43ac8cbf8a90e3065e3dbe","src/math.rs":"3046121800bded318b7d219aea401907e7d3bba3b998df6745a71e76f0734de2"},"package":null} \ No newline at end of file diff --git a/third_party/rust/wgpu-types/src/instance.rs b/third_party/rust/wgpu-types/src/instance.rs index ff0c378a5ebd..63aea4c089c3 100644 --- a/third_party/rust/wgpu-types/src/instance.rs +++ b/third_party/rust/wgpu-types/src/instance.rs @@ -101,6 +101,26 @@ bitflags::bitflags! { /// Validate indirect buffer content prior to issuing indirect draws/dispatches. /// + /// This validation will transform indirect calls into no-ops if they are not valid: + /// + /// - When calling `dispatch_workgroups_indirect`, all 3 indirect arguments encoded in the buffer + /// must be less than the `max_compute_workgroups_per_dimension` device limit. + /// - When calling `draw_indirect`/`draw_indexed_indirect`/`multi_draw_indirect`/`multi_draw_indexed_indirect`: + /// - If `Features::INDIRECT_FIRST_INSTANCE` is not enabled on the device, the `first_instance` indirect argument must be 0. + /// - The `first_instance` & `instance_count` indirect arguments must form a range that fits within all bound vertex buffers with `step_mode` set to `Instance`. + /// - When calling `draw_indirect`/`multi_draw_indirect`: + /// - The `first_vertex` & `vertex_count` indirect arguments must form a range that fits within all bound vertex buffers with `step_mode` set to `Vertex`. + /// - When calling `draw_indexed_indirect`/`multi_draw_indexed_indirect`: + /// - The `first_index` & `index_count` indirect arguments must form a range that fits within the bound index buffer. + /// + /// __Behavior is undefined if this validation is disabled and the rules above are not satisfied.__ + /// + /// Disabling this will also cause the following built-ins to not report the right values on the D3D12 backend: + /// + /// - the 3 components of `@builtin(num_workgroups)` will be 0 + /// - the value of `@builtin(vertex_index)` will not take into account the value of the `first_vertex`/`base_vertex` argument present in the indirect buffer + /// - the value of `@builtin(instance_index)` will not take into account the value of the `first_instance` argument present in the indirect buffer + /// /// When `Self::from_env()` is used takes value from `WGPU_VALIDATION_INDIRECT_CALL` environment variable. const VALIDATION_INDIRECT_CALL = 1 << 5; @@ -374,9 +394,6 @@ pub enum DxcShaderModel { } /// Selects which DX12 shader compiler to use. -/// -/// If the `DynamicDxc` option is selected, but `dxcompiler.dll` and `dxil.dll` files aren't found, -/// then this will fall back to the Fxc compiler at runtime and log an error. #[derive(Clone, Debug, Default)] pub enum Dx12Compiler { /// The Fxc compiler (default) is old, slow and unmaintained. @@ -386,17 +403,15 @@ pub enum Dx12Compiler { Fxc, /// The Dxc compiler is new, fast and maintained. /// - /// However, it requires both `dxcompiler.dll` and `dxil.dll` to be shipped with the application. + /// However, it requires `dxcompiler.dll` to be shipped with the application. /// These files can be downloaded from . /// - /// Minimum supported version: [v1.5.2010](https://github.com/microsoft/DirectXShaderCompiler/releases/tag/v1.5.2010) + /// Minimum supported version: [v1.8.2502](https://github.com/microsoft/DirectXShaderCompiler/releases/tag/v1.8.2502) /// /// It also requires WDDM 2.1 (Windows 10 version 1607). DynamicDxc { /// Path to `dxcompiler.dll`. dxc_path: String, - /// Path to `dxil.dll`. - dxil_path: String, /// Maximum shader model the given dll supports. max_shader_model: DxcShaderModel, }, @@ -410,12 +425,11 @@ pub enum Dx12Compiler { impl Dx12Compiler { /// Helper function to construct a `DynamicDxc` variant with default paths. /// - /// The dll must support at least shader model 6.5. + /// The dll must support at least shader model 6.8. pub fn default_dynamic_dxc() -> Self { Self::DynamicDxc { dxc_path: String::from("dxcompiler.dll"), - dxil_path: String::from("dxil.dll"), - max_shader_model: DxcShaderModel::V6_5, + max_shader_model: DxcShaderModel::V6_7, // should be 6.8 but the variant is missing } } diff --git a/third_party/rust/wgpu-types/src/lib.rs b/third_party/rust/wgpu-types/src/lib.rs index 34b7a26ca6eb..77b07743460c 100644 --- a/third_party/rust/wgpu-types/src/lib.rs +++ b/third_party/rust/wgpu-types/src/lib.rs @@ -1079,34 +1079,6 @@ bitflags::bitflags! { /// Not Supported by: /// - GL ES / WebGL const NONBLOCKING_QUERY_RESOLVE = 1 << 22; - - /// If this is true, use of `@builtin(vertex_index)` and `@builtin(instance_index)` will properly take into consideration - /// the `first_vertex` and `first_instance` parameters of indirect draw calls. - /// - /// If this is false, `@builtin(vertex_index)` and `@builtin(instance_index)` will start by counting from 0, ignoring the - /// `first_vertex` and `first_instance` parameters. - /// - /// For example, if you had a draw call like this: - /// - `first_vertex: 4,` - /// - `vertex_count: 12,` - /// - /// When this flag is present, `@builtin(vertex_index)` will start at 4 and go up to 15 (12 invocations). - /// - /// When this flag is not present, `@builtin(vertex_index)` will start at 0 and go up to 11 (12 invocations). - /// - /// This only affects the builtins in the shaders, - /// vertex buffers and instance rate vertex buffers will behave like expected with this flag disabled. - /// - /// See also [`Features::`] - /// - /// Supported By: - /// - Vulkan - /// - Metal - /// - OpenGL - /// - /// Will be implemented in the future by: - /// - DX12 ([#2471](https://github.com/gfx-rs/wgpu/issues/2471)) - const VERTEX_AND_INSTANCE_INDEX_RESPECTS_RESPECTIVE_FIRST_VALUE_IN_INDIRECT_DRAW = 1 << 23; } }