Bug 1958061: Update wgpu to upstream a0dbe5eb (2025-04-09) r=webgpu-reviewers,supply-chain-reviewers,nical,ErichDonGubler

Differential Revision: https://phabricator.services.mozilla.com/D245022
This commit is contained in:
Jim Blandy
2025-04-10 20:39:12 +00:00
parent 8242fadc56
commit 47e0e0c8d9
159 changed files with 6196 additions and 2856 deletions

View File

@@ -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=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"]
[source."git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"]
git = "https://github.com/gfx-rs/wgpu"
rev = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
replace-with = "vendored-sources"
[source."git+https://github.com/glandium/rust-objc?rev=4de89f5aa9851ceca4d40e7ac1e2759410c04324"]

19
Cargo.lock generated
View File

@@ -2794,7 +2794,6 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1"
dependencies = [
"arbitrary",
"cfg-if",
"crunchy",
"num-traits",
@@ -4498,7 +4497,7 @@ checksum = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664"
[[package]]
name = "naga"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"arrayvec",
"bit-set",
@@ -4506,7 +4505,7 @@ dependencies = [
"cfg_aliases",
"codespan-reporting",
"half 2.5.0",
"hashbrown 0.14.999",
"hashbrown 0.15.2",
"hexf-parse",
"indexmap",
"log",
@@ -7428,7 +7427,7 @@ dependencies = [
[[package]]
name = "wgpu-core"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"arrayvec",
"bit-set",
@@ -7437,7 +7436,7 @@ dependencies = [
"bytemuck",
"cfg_aliases",
"document-features",
"hashbrown 0.14.999",
"hashbrown 0.15.2",
"indexmap",
"log",
"naga",
@@ -7458,7 +7457,7 @@ dependencies = [
[[package]]
name = "wgpu-core-deps-apple"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"wgpu-hal",
]
@@ -7466,7 +7465,7 @@ dependencies = [
[[package]]
name = "wgpu-core-deps-windows-linux-android"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"wgpu-hal",
]
@@ -7474,7 +7473,7 @@ dependencies = [
[[package]]
name = "wgpu-hal"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"android_system_properties",
"arrayvec",
@@ -7488,7 +7487,7 @@ dependencies = [
"gpu-alloc",
"gpu-allocator",
"gpu-descriptor",
"hashbrown 0.14.999",
"hashbrown 0.15.2",
"libc",
"libloading",
"log",
@@ -7510,7 +7509,7 @@ dependencies = [
[[package]]
name = "wgpu-types"
version = "24.0.0"
source = "git+https://github.com/gfx-rs/wgpu?rev=c7c79a0dc9356081a884b5518d1c08ce7a09c7c5#c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
source = "git+https://github.com/gfx-rs/wgpu?rev=a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109#a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
dependencies = [
"bitflags 2.9.0",
"bytemuck",

View File

@@ -17,7 +17,7 @@ default = []
[dependencies.wgc]
package = "wgpu-core"
git = "https://github.com/gfx-rs/wgpu"
rev = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
# 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 = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
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 = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
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 = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
features = ["vulkan"]
[dependencies.wgt]
package = "wgpu-types"
git = "https://github.com/gfx-rs/wgpu"
rev = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
[dependencies.wgh]
package = "wgpu-hal"
git = "https://github.com/gfx-rs/wgpu"
rev = "c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
rev = "a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
features = ["oom_panic", "device_lost_panic", "internal_error_panic"]
[target.'cfg(windows)'.dependencies]

View File

@@ -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: c7c79a0dc9356081a884b5518d1c08ce7a09c7c5 (2025-03-28T10:32:06Z).
revision: c7c79a0dc9356081a884b5518d1c08ce7a09c7c5
release: a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109 (Wed Apr 9 18:45:27 2025 -0400)
revision: a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109
license: ['MIT', 'Apache-2.0']
updatebot:

View File

@@ -3694,9 +3694,10 @@ delta = "23.1.0 -> 24.0.0"
who = [
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
"Erich Gubler <erichdongubler@gmail.com>",
"Jim Blandy <jimb@red-bean.com>",
]
criteria = "safe-to-deploy"
delta = "24.0.0 -> 24.0.0@git:c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
delta = "24.0.0 -> 24.0.0@git:a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
importable = false
[[audits.net2]]
@@ -5948,9 +5949,10 @@ delta = "23.0.1 -> 24.0.0"
who = [
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
"Erich Gubler <erichdongubler@gmail.com>",
"Jim Blandy <jimb@red-bean.com>",
]
criteria = "safe-to-deploy"
delta = "24.0.0 -> 24.0.0@git:c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
delta = "24.0.0 -> 24.0.0@git:a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
importable = false
[[audits.wgpu-hal]]
@@ -6035,9 +6037,10 @@ delta = "23.0.1 -> 24.0.0"
who = [
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
"Erich Gubler <erichdongubler@gmail.com>",
"Jim Blandy <jimb@red-bean.com>",
]
criteria = "safe-to-deploy"
delta = "24.0.0 -> 24.0.0@git:c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
delta = "24.0.0 -> 24.0.0@git:a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
importable = false
[[audits.wgpu-types]]
@@ -6117,9 +6120,10 @@ delta = "23.0.0 -> 24.0.0"
who = [
"Teodor Tanasoaia <ttanasoaia@mozilla.com>",
"Erich Gubler <erichdongubler@gmail.com>",
"Jim Blandy <jimb@red-bean.com>",
]
criteria = "safe-to-deploy"
delta = "24.0.0 -> 24.0.0@git:c7c79a0dc9356081a884b5518d1c08ce7a09c7c5"
delta = "24.0.0 -> 24.0.0@git:a0dbe5ebc6fa24422fb84b2e0fea1cc94dee5109"
importable = false
[[audits.whatsys]]

View File

@@ -1,10 +1,7 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxDynamicUniformBuffersPerPipelineLayout:createBindGroupLayout,at_over:*]
tags: [webgpu, webgpu-long]
implementation-status: backlog
expected:
if os == "win": [OK, CRASH]
if os == "linux" and not debug: [OK, CRASH]
if os == "mac": [OK, CRASH]
expected: [OK, CRASH]
[:limitTest="atDefault";testValueName="atLimit";visibility=1]
[:limitTest="atDefault";testValueName="atLimit";visibility=2]

View File

@@ -2293,841 +2293,721 @@
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, FAIL]
if os == "linux": [PASS, TIMEOUT, NOTRUN]
if os == "mac": [PASS, TIMEOUT, NOTRUN]

View File

@@ -1375,602 +1375,482 @@
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="atLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertex";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="overMaximum";testValueName="overLimit";async=true;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
[:limitTest="underDefault";testValueName="atLimit";async=false;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]

View File

@@ -14400,9 +14400,10 @@
implementation-status: backlog
expected:
if os == "mac" and debug: [OK, TIMEOUT]
if os == "mac" and not debug: TIMEOUT
[:]
expected:
if os == "win": FAIL
if os == "linux": FAIL
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
if os == "mac" and not debug: FAIL
if os == "mac" and not debug: [TIMEOUT, NOTRUN]

View File

@@ -1313,150 +1313,92 @@
expected: FAIL
[:format="float16x2"]
expected:
if os == "mac": FAIL
[:format="float16x4"]
expected:
if os == "mac": FAIL
[:format="float32"]
expected: FAIL
[:format="float32x2"]
expected:
if os == "mac": FAIL
[:format="float32x3"]
expected:
if os == "mac": FAIL
[:format="float32x4"]
expected:
if os == "mac": FAIL
[:format="sint16"]
expected: FAIL
[:format="sint16x2"]
expected:
if os == "mac": FAIL
[:format="sint16x4"]
expected:
if os == "mac": FAIL
[:format="sint32"]
expected: FAIL
[:format="sint32x2"]
expected:
if os == "mac": FAIL
[:format="sint32x3"]
expected:
if os == "mac": FAIL
[:format="sint32x4"]
expected:
if os == "mac": FAIL
[:format="sint8"]
expected: FAIL
[:format="sint8x2"]
expected:
if os == "mac": FAIL
[:format="sint8x4"]
expected:
if os == "mac": FAIL
[:format="snorm16"]
expected: FAIL
[:format="snorm16x2"]
expected:
if os == "mac": FAIL
[:format="snorm16x4"]
expected:
if os == "mac": FAIL
[:format="snorm8"]
expected: FAIL
[:format="snorm8x2"]
expected:
if os == "mac": FAIL
[:format="snorm8x4"]
expected:
if os == "mac": FAIL
[:format="uint16"]
expected: FAIL
[:format="uint16x2"]
expected:
if os == "mac": FAIL
[:format="uint16x4"]
expected:
if os == "mac": FAIL
[:format="uint32"]
expected: FAIL
[:format="uint32x2"]
expected:
if os == "mac": FAIL
[:format="uint32x3"]
expected:
if os == "mac": FAIL
[:format="uint32x4"]
expected:
if os == "mac": FAIL
[:format="uint8"]
expected: FAIL
[:format="uint8x2"]
expected:
if os == "mac": FAIL
[:format="uint8x4"]
expected:
if os == "mac": FAIL
[:format="unorm10-10-10-2"]
expected:
if os == "mac": FAIL
[:format="unorm16"]
expected: FAIL
[:format="unorm16x2"]
expected:
if os == "mac": FAIL
[:format="unorm16x4"]
expected:
if os == "mac": FAIL
[:format="unorm8"]
expected: FAIL
[:format="unorm8x2"]
expected:
if os == "mac": FAIL
[:format="unorm8x4"]
expected:
if os == "mac": FAIL
[:format="unorm8x4-bgra"]
expected:
if os == "mac": FAIL

View File

@@ -40,104 +40,76 @@
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:division_scalar_vector:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_rhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:division_vector_scalar:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_lhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:multiplication:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:multiplication_scalar_vector:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_rhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:multiplication_vector_scalar:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_lhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:remainder:*]
@@ -182,49 +154,35 @@
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:subtraction_scalar_vector:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_rhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_rhs=4]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,binary,ai_arithmetic:subtraction_vector_scalar:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize_lhs=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize_lhs=4]
expected:
if os == "mac": FAIL

View File

@@ -2,20 +2,14 @@
implementation-status:
if os == "mac": backlog
[:type="abstract-int";inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="storage_r";vectorize="_undef_"]
@@ -364,20 +358,14 @@
implementation-status:
if os == "mac": backlog
[:type="abstract-int";inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL
[:type="abstract-int";inputSource="storage_r";vectorize="_undef_"]

View File

@@ -14,18 +14,30 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:abstract_int:*]
implementation-status: backlog
implementation-status:
if os == "win" and debug: backlog
if os == "linux" and debug: backlog
if os == "mac": backlog
expected:
if os == "linux" and debug: CRASH
if os == "mac" and debug: CRASH
[:inputSource="const";vectorize="_undef_"]
expected: FAIL
expected:
if debug: FAIL
[:inputSource="const";vectorize=2]
expected: FAIL
expected:
if debug: FAIL
[:inputSource="const";vectorize=3]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected: FAIL
expected:
if debug: FAIL
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:f16:*]

View File

@@ -37,15 +37,9 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:ai_to_f32:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_";alias=false]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize="_undef_";alias=true]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2;alias=false]
@@ -61,15 +55,9 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:ai_to_i32:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_";alias=false]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize="_undef_";alias=true]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2;alias=false]

View File

@@ -14,18 +14,17 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:abstract_int:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected: FAIL
[:inputSource="const";vectorize=2]
expected: FAIL
[:inputSource="const";vectorize=3]
expected: FAIL
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected: FAIL
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:f16:*]

View File

@@ -30,8 +30,12 @@
if os == "mac": FAIL
[:inputSource="storage_r"]
expected:
if os == "mac": FAIL
[:inputSource="storage_rw"]
expected:
if os == "mac": FAIL
[:inputSource="uniform"]
expected:
@@ -90,14 +94,22 @@
[: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

View File

@@ -14,18 +14,17 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:abstract_int:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected: FAIL
[:inputSource="const";vectorize=2]
expected: FAIL
[:inputSource="const";vectorize=3]
expected: FAIL
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected: FAIL
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:f16:*]

View File

@@ -14,18 +14,17 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:abstract_int:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected: FAIL
[:inputSource="const";vectorize=2]
expected: FAIL
[:inputSource="const";vectorize=3]
expected: FAIL
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected: FAIL
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:f16:*]

View File

@@ -14,18 +14,17 @@
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:abstract_int:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected: FAIL
[:inputSource="const";vectorize=2]
expected: FAIL
[:inputSource="const";vectorize=3]
expected: FAIL
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected: FAIL
[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:f16:*]

View File

@@ -9173,8 +9173,7 @@
[:case=365;type="f32";op="subgroupMax";wgSize=[128,1,1\]]
expected:
if os == "win" and debug: [TIMEOUT, NOTRUN]
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "win": [PASS, TIMEOUT, NOTRUN]
if os == "linux" and debug: [TIMEOUT, NOTRUN]
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
if os == "mac": [TIMEOUT, NOTRUN]

View File

@@ -155,42 +155,26 @@
[cts.https.html?q=webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*]
implementation-status: backlog
[:type="f16";width=2]
expected:
if os == "mac": FAIL
[:type="f16";width=3]
expected:
if os == "mac": FAIL
[:type="f16";width=4]
expected:
if os == "mac": FAIL
[:type="f32";width=2]
expected: FAIL
[:type="f32";width=3]
expected: FAIL
[:type="f32";width=4]
expected: FAIL
[:type="i32";width=2]
expected: FAIL
[:type="i32";width=3]
expected: FAIL
[:type="i32";width=4]
expected: FAIL
[:type="u32";width=2]
expected: FAIL
[:type="u32";width=3]
expected: FAIL
[:type="u32";width=4]
expected: FAIL

View File

@@ -2,17 +2,11 @@
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL

View File

@@ -1,9 +1,5 @@
[cts.https.html?q=webgpu:shader,execution,expression,unary,ai_assignment:abstract:*]
implementation-status:
if os == "mac": backlog
[:inputSource="const"]
expected:
if os == "mac": FAIL
[cts.https.html?q=webgpu:shader,execution,expression,unary,ai_assignment:i32:*]

View File

@@ -2,17 +2,11 @@
implementation-status:
if os == "mac": backlog
[:inputSource="const";vectorize="_undef_"]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=2]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=3]
expected:
if os == "mac": FAIL
[:inputSource="const";vectorize=4]
expected:
if os == "mac": FAIL

View File

@@ -8,7 +8,7 @@
[:addressSpace="function";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -24,7 +24,7 @@
[:addressSpace="function";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -40,7 +40,7 @@
[:addressSpace="function";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -53,21 +53,21 @@
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -77,7 +77,7 @@
[:addressSpace="function";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -93,7 +93,7 @@
[:addressSpace="function";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -109,7 +109,7 @@
[:addressSpace="function";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -125,7 +125,7 @@
[:addressSpace="function";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -141,7 +141,7 @@
[:addressSpace="function";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -157,7 +157,7 @@
[:addressSpace="function";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -170,21 +170,21 @@
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -194,7 +194,7 @@
[:addressSpace="function";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -210,7 +210,7 @@
[:addressSpace="function";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -226,7 +226,7 @@
[:addressSpace="function";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="function";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -242,7 +242,7 @@
[:addressSpace="private";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -258,7 +258,7 @@
[:addressSpace="private";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -274,7 +274,7 @@
[:addressSpace="private";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -287,21 +287,21 @@
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -311,7 +311,7 @@
[:addressSpace="private";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -327,7 +327,7 @@
[:addressSpace="private";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -343,7 +343,7 @@
[:addressSpace="private";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -359,7 +359,7 @@
[:addressSpace="private";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -375,7 +375,7 @@
[:addressSpace="private";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -391,7 +391,7 @@
[:addressSpace="private";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -404,21 +404,21 @@
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -428,7 +428,7 @@
[:addressSpace="private";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -444,7 +444,7 @@
[:addressSpace="private";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -460,7 +460,7 @@
[:addressSpace="private";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="private";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -473,7 +473,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -486,7 +486,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -499,7 +499,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -512,28 +512,28 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -546,7 +546,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -559,7 +559,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -572,7 +572,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -585,7 +585,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -598,7 +598,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -611,28 +611,28 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -645,7 +645,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -658,7 +658,7 @@
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -671,7 +671,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -690,7 +690,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -709,7 +709,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -728,28 +728,28 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -762,7 +762,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -775,7 +775,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -788,7 +788,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -807,7 +807,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -826,7 +826,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -845,28 +845,28 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -879,7 +879,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -892,7 +892,7 @@
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -905,7 +905,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -924,7 +924,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -943,7 +943,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -962,28 +962,28 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -996,7 +996,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1009,7 +1009,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1022,7 +1022,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1041,7 +1041,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1060,7 +1060,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1079,28 +1079,28 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1113,7 +1113,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1126,7 +1126,7 @@
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="storage";storageMode="read_write";access="write";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1166,28 +1166,28 @@
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1200,7 +1200,7 @@
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1213,7 +1213,7 @@
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=false;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1253,28 +1253,28 @@
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1287,7 +1287,7 @@
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1300,7 +1300,7 @@
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="uniform";access="read";dynamicOffset=true;containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1316,7 +1316,7 @@
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1338,7 +1338,7 @@
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1360,7 +1360,7 @@
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1379,21 +1379,21 @@
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1403,7 +1403,7 @@
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1419,7 +1419,7 @@
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1435,7 +1435,7 @@
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="read";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1451,7 +1451,7 @@
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1473,7 +1473,7 @@
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1495,7 +1495,7 @@
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="array";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1514,21 +1514,21 @@
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="matrix";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1538,7 +1538,7 @@
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="function-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1554,7 +1554,7 @@
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="module-scope";isAtomic=false;baseType="f32"]
expected: FAIL
@@ -1570,7 +1570,7 @@
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f16"]
expected:
if os == "mac" and not debug: FAIL
if os == "mac": FAIL
[:addressSpace="workgroup";access="write";containerType="vector";shadowingMode="none";isAtomic=false;baseType="f32"]
expected: FAIL

View File

@@ -3,9 +3,7 @@
[cts.https.html?q=webgpu:shader,execution,shadow:declaration:*]
implementation-status: backlog
[:]
expected: FAIL
[cts.https.html?q=webgpu:shader,execution,shadow:for_loop:*]

View File

@@ -29,11 +29,9 @@
[cts.https.html?q=webgpu:shader,validation,decl,let:type:*]
implementation-status: backlog
[:case="array_runtime"]
[:case="array_sized"]
expected: FAIL
[:case="atomic"]

View File

@@ -25,7 +25,6 @@
[:op="add";type="texture";control=false]
[:op="add";type="texture";control=true]
expected: FAIL
[:op="mul";type="array";control=false]
@@ -52,7 +51,6 @@
[:op="mul";type="texture";control=false]
[:op="mul";type="texture";control=true]
expected: FAIL
[:op="sub";type="array";control=false]
@@ -79,7 +77,6 @@
[:op="sub";type="texture";control=false]
[:op="sub";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,add_sub_mul:scalar_vector:*]

View File

@@ -29,7 +29,6 @@
[:op="and";type="texture";control=false]
[:op="and";type="texture";control=true]
expected: FAIL
[:op="or";type="array";control=false]
@@ -60,7 +59,6 @@
[:op="or";type="texture";control=false]
[:op="or";type="texture";control=true]
expected: FAIL
[:op="xor";type="array";control=false]
@@ -91,7 +89,6 @@
[:op="xor";type="texture";control=false]
[:op="xor";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,and_or_xor:scalar_vector:*]

View File

@@ -29,7 +29,6 @@
[:op="%3C%3C";type="texture";control=false]
[:op="%3C%3C";type="texture";control=true]
expected: FAIL
[:op="%3E%3E";type="array";control=false]
@@ -60,7 +59,6 @@
[:op="%3E%3E";type="texture";control=false]
[:op="%3E%3E";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,bitwise_shift:partial_eval_errors:*]

View File

@@ -29,7 +29,6 @@
[:op="eq";type="texture";control=false]
[:op="eq";type="texture";control=true]
expected: FAIL
[:op="ge";type="array";control=false]
@@ -60,7 +59,6 @@
[:op="ge";type="texture";control=false]
[:op="ge";type="texture";control=true]
expected: FAIL
[:op="gt";type="array";control=false]
@@ -91,7 +89,6 @@
[:op="gt";type="texture";control=false]
[:op="gt";type="texture";control=true]
expected: FAIL
[:op="le";type="array";control=false]
@@ -122,7 +119,6 @@
[:op="le";type="texture";control=false]
[:op="le";type="texture";control=true]
expected: FAIL
[:op="lt";type="array";control=false]
@@ -153,7 +149,6 @@
[:op="lt";type="texture";control=false]
[:op="lt";type="texture";control=true]
expected: FAIL
[:op="ne";type="array";control=false]
@@ -184,7 +179,6 @@
[:op="ne";type="texture";control=false]
[:op="ne";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,comparison:scalar_vector:*]

View File

@@ -25,7 +25,6 @@
[:op="div";type="texture";control=false]
[:op="div";type="texture";control=true]
expected: FAIL
[:op="rem";type="array";control=false]
@@ -52,7 +51,6 @@
[:op="rem";type="texture";control=false]
[:op="rem";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,div_rem:scalar_vector:*]

View File

@@ -22,7 +22,6 @@
[cts.https.html?q=webgpu:shader,validation,expression,binary,short_circuiting_and_or:invalid_array_count_on_rhs:*]
implementation-status: backlog
[:op="%26%26";rhs="negative";control=false]
[:op="%26%26";rhs="negative";control=true]
@@ -34,7 +33,6 @@
[:op="%26%26";rhs="sqrt_neg1";control=false]
[:op="%26%26";rhs="sqrt_neg1";control=true]
expected: FAIL
[:op="%7C%7C";rhs="negative";control=false]
@@ -47,7 +45,6 @@
[:op="%7C%7C";rhs="sqrt_neg1";control=false]
[:op="%7C%7C";rhs="sqrt_neg1";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,short_circuiting_and_or:invalid_rhs_const:*]
@@ -209,7 +206,6 @@
[:op="%26%26";type="texture";control=false]
[:op="%26%26";type="texture";control=true]
expected: FAIL
[:op="%7C%7C";type="array";control=false]
@@ -239,7 +235,6 @@
[:op="%7C%7C";type="texture";control=false]
[:op="%7C%7C";type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,binary,short_circuiting_and_or:nested_invalid_rhs_override:*]
@@ -560,7 +555,6 @@
[:op="%26%26";lhs="vec2%3Cbool%3E";rhs="vec2%3Cabstract-int%3E"]
[:op="%26%26";lhs="vec2%3Cbool%3E";rhs="vec2%3Cbool%3E"]
expected: FAIL
[:op="%26%26";lhs="vec2%3Cbool%3E";rhs="vec2%3Cf16%3E"]
@@ -1349,7 +1343,6 @@
[:op="%7C%7C";lhs="vec2%3Cbool%3E";rhs="vec2%3Cabstract-int%3E"]
[:op="%7C%7C";lhs="vec2%3Cbool%3E";rhs="vec2%3Cbool%3E"]
expected: FAIL
[:op="%7C%7C";lhs="vec2%3Cbool%3E";rhs="vec2%3Cf16%3E"]

View File

@@ -39,101 +39,189 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,abs:values:*]
implementation-status: backlog
implementation-status:
if os == "win" and debug: backlog
if os == "linux" and debug: backlog
if os == "mac": backlog
expected:
if os == "linux" and debug: CRASH
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="f16"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="f32"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="i32"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="u32"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec2%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec2%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec2%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec3%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec3%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec3%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "win" and debug: FAIL
if os == "linux" and debug: FAIL
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec4%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec4%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="constant";type="vec4%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="f16"]
expected:
if os == "win" and debug: FAIL
if os == "mac": FAIL
[:stage="override";type="f32"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="i32"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="u32"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec2%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
if os == "mac": FAIL
[:stage="override";type="vec2%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec2%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec2%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec3%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
if os == "mac": FAIL
[:stage="override";type="vec3%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec3%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec3%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec4%3Cf16%3E"]
expected:
if os == "win" and debug: FAIL
if os == "mac": FAIL
[:stage="override";type="vec4%3Cf32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec4%3Ci32%3E"]
expected:
if os == "win" and debug: FAIL
[:stage="override";type="vec4%3Cu32%3E"]
expected:
if os == "win" and debug: FAIL

View File

@@ -63,6 +63,9 @@
[:test="must_use"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
if os == "linux": FAIL
if os == "mac": FAIL
[:test="no_params"]
expected:
@@ -96,7 +99,6 @@
if os == "win" and debug: [PASS, FAIL]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]
expected:
@@ -118,6 +120,8 @@
[:stage="constant";type="abstract-float"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
if os == "linux": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
@@ -134,6 +138,8 @@
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
if os == "linux": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
@@ -150,6 +156,8 @@
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
if os == "linux": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
@@ -166,6 +174,8 @@
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected:
if os == "win" and debug: [PASS, FAIL]
if os == "win" and not debug: FAIL
if os == "linux": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL

View File

@@ -37,6 +37,7 @@
[:test="matrix"]
[:test="must_use"]
expected: FAIL
[:test="no_params"]
@@ -56,7 +57,6 @@
[:test="u32"]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]

View File

@@ -41,6 +41,7 @@
[:test="matrix"]
[:test="must_use"]
expected: FAIL
[:test="no_params"]
@@ -60,7 +61,6 @@
[:test="u32"]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]
@@ -74,6 +74,9 @@
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
@@ -85,6 +88,9 @@
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
@@ -96,6 +102,9 @@
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
@@ -107,6 +116,9 @@
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL

View File

@@ -37,6 +37,7 @@
[:test="matrix"]
[:test="must_use"]
expected: FAIL
[:test="no_params"]
@@ -56,7 +57,6 @@
[:test="u32"]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]
@@ -70,10 +70,12 @@
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
@@ -81,10 +83,12 @@
expected: FAIL
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
@@ -92,10 +96,12 @@
expected: FAIL
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
@@ -103,10 +109,12 @@
expected: FAIL
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -37,6 +37,7 @@
[:test="matrix"]
[:test="must_use"]
expected: FAIL
[:test="no_params"]
@@ -56,7 +57,6 @@
[:test="u32"]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]
@@ -66,44 +66,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atan:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -142,13 +142,12 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atan2:parameters:*]
implementation-status: backlog
[:test="af"]
expected: FAIL
[:test="af_ai"]
expected: FAIL
[:test="af_f16"]
expected:
if os == "mac": FAIL
[:test="af_f32"]
@@ -159,11 +158,8 @@
expected: FAIL
[:test="ai_f16"]
expected:
if os == "mac": FAIL
[:test="ai_f32"]
expected: FAIL
[:test="array"]
@@ -176,19 +172,14 @@
[:test="enumerant"]
[:test="f16_af"]
expected:
if os == "mac": FAIL
[:test="f16_ai"]
expected:
if os == "mac": FAIL
[:test="f16_f32"]
[:test="f32_af"]
[:test="f32_ai"]
expected: FAIL
[:test="f32_bool"]

View File

@@ -78,6 +78,9 @@
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
@@ -89,6 +92,9 @@
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
@@ -100,6 +106,9 @@
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
@@ -111,6 +120,9 @@
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL

View File

@@ -65,44 +65,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,ceil:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -451,78 +451,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:mismatched:*]
implementation-status: backlog
[:e="abstract-float"]
expected: FAIL
[:e="abstract-int"]
expected: FAIL
[:e="f16"]
expected:
if os == "mac": FAIL
[:e="f32"]
expected: FAIL
[:e="i32"]
[:e="u32"]
expected: FAIL
[:e="vec2%3Cabstract-float%3E"]
expected: FAIL
[:e="vec2%3Cabstract-int%3E"]
expected: FAIL
[:e="vec2%3Cf16%3E"]
expected:
if os == "mac": FAIL
[:e="vec2%3Cf32%3E"]
expected: FAIL
[:e="vec2%3Ci32%3E"]
[:e="vec2%3Cu32%3E"]
expected: FAIL
[:e="vec3%3Cabstract-float%3E"]
expected: FAIL
[:e="vec3%3Cabstract-int%3E"]
expected: FAIL
[:e="vec3%3Cf16%3E"]
expected:
if os == "mac": FAIL
[:e="vec3%3Cf32%3E"]
expected: FAIL
[:e="vec3%3Ci32%3E"]
[:e="vec3%3Cu32%3E"]
expected: FAIL
[:e="vec4%3Cabstract-float%3E"]
expected: FAIL
[:e="vec4%3Cabstract-int%3E"]
expected: FAIL
[:e="vec4%3Cf16%3E"]
expected:
if os == "mac": FAIL
[:e="vec4%3Cf32%3E"]
expected: FAIL
[:e="vec4%3Ci32%3E"]
[:e="vec4%3Cu32%3E"]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:must_use:*]
@@ -534,14 +509,17 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
@@ -552,10 +530,12 @@
[:stage="constant";type="u32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
@@ -566,10 +546,12 @@
[:stage="constant";type="vec2%3Cu32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
@@ -580,10 +562,12 @@
[:stage="constant";type="vec3%3Cu32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -49,44 +49,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,cos:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -43,6 +43,9 @@
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
@@ -54,6 +57,9 @@
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
@@ -65,6 +71,9 @@
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
@@ -76,6 +85,9 @@
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL

View File

@@ -1,5 +1,4 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,cross:args:*]
implementation-status: backlog
[:arg="bad_0args"]
[:arg="bad_0array"]
@@ -25,15 +24,14 @@
[:arg="bad_vec4"]
[:arg="good"]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,cross:must_use:*]
implementation-status: backlog
[:use=false]
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,cross:values:*]
@@ -44,7 +42,8 @@
expected: FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:

View File

@@ -56,7 +56,8 @@
expected: FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
expected:
@@ -68,7 +69,8 @@
expected: FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
@@ -80,7 +82,8 @@
expected: FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
@@ -92,7 +95,8 @@
expected: FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:

View File

@@ -62,7 +62,6 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,distance:values:*]

View File

@@ -52,6 +52,7 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot:values:*]

View File

@@ -39,14 +39,17 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,exp2:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
expected:
@@ -55,10 +58,12 @@
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
@@ -67,10 +72,12 @@
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
@@ -79,10 +86,12 @@
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:

View File

@@ -86,7 +86,6 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,faceForward:values:*]

View File

@@ -49,44 +49,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,floor:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -1,5 +1,4 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,fma:args:*]
implementation-status: backlog
[:arg="bad_0args"]
[:arg="bad_0array"]
@@ -77,15 +76,14 @@
[:arg="bad_no_parens"]
[:arg="good"]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,fma:must_use:*]
implementation-status: backlog
[:use=false]
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,fma:values:*]
@@ -96,7 +94,8 @@
expected: FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
@@ -108,7 +107,8 @@
expected: FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
@@ -120,7 +120,8 @@
expected: FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:

View File

@@ -39,44 +39,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,fract:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -76,7 +76,6 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,ldexp:partial_values:*]

View File

@@ -33,14 +33,18 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,max:values:*]
implementation-status: backlog
implementation-status:
if os == "win" and debug: backlog
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
expected:
@@ -59,10 +63,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
@@ -81,10 +87,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
@@ -103,10 +111,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:

View File

@@ -31,14 +31,17 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,min:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
@@ -49,10 +52,12 @@
[:stage="constant";type="u32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
@@ -63,10 +68,12 @@
[:stage="constant";type="vec2%3Cu32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
@@ -77,10 +84,12 @@
[:stage="constant";type="vec3%3Cu32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -49,44 +49,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,radians:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -30,7 +30,6 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,reflect:values:*]

View File

@@ -86,19 +86,16 @@
expected: FAIL
[:arg="vec2f";use=true]
expected: FAIL
[:arg="vec3f";use=false]
expected: FAIL
[:arg="vec3f";use=true]
expected: FAIL
[:arg="vec4f";use=false]
expected: FAIL
[:arg="vec4f";use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,refract:return:*]

View File

@@ -99,14 +99,18 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,round:values:*]
implementation-status: backlog
implementation-status:
if os == "win" and debug: backlog
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
expected:
@@ -117,10 +121,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
expected:
@@ -131,10 +137,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
expected:
@@ -145,10 +153,12 @@
if os == "win" and debug: [PASS, FAIL]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]
expected:

View File

@@ -65,44 +65,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,saturate:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -31,11 +31,13 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,sign:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
@@ -44,7 +46,8 @@
[:stage="constant";type="i32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
@@ -53,7 +56,8 @@
[:stage="constant";type="vec2%3Ci32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
@@ -62,7 +66,8 @@
[:stage="constant";type="vec3%3Ci32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -49,44 +49,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,sin:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -43,6 +43,9 @@
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
@@ -54,6 +57,9 @@
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
@@ -65,6 +71,9 @@
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
@@ -76,6 +85,9 @@
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected:
if os == "win": FAIL
if os == "linux": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL

View File

@@ -103,8 +103,6 @@
expected: FAIL
[:test="mixed_f16_afloat"]
expected:
if os == "mac": FAIL
[:test="mixed_f32_afloat"]
@@ -131,6 +129,7 @@
[:test="u32"]
[:test="valid"]
expected: FAIL
[:test="vec_bool"]

View File

@@ -63,44 +63,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,step:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -220,8 +220,7 @@
implementation-status:
if os == "mac": backlog
expected:
if os == "mac" and debug: [OK, TIMEOUT]
if os == "mac" and not debug: TIMEOUT
if os == "mac": [OK, TIMEOUT]
[:retType="bool";op="subgroupAnd";paramType="abstract-float"]
[:retType="bool";op="subgroupAnd";paramType="abstract-int"]

View File

@@ -39,44 +39,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,tan:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -39,44 +39,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,tanh:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -38,6 +38,7 @@
expected: FAIL
[:use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,transpose:return:*]

View File

@@ -39,44 +39,53 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,trunc:values:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
expected:
if os == "mac": CRASH
[:stage="constant";type="abstract-float"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="abstract-int"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="f16"]
[:stage="constant";type="f32"]
[:stage="constant";type="vec2%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec2%3Cf16%3E"]
[:stage="constant";type="vec2%3Cf32%3E"]
[:stage="constant";type="vec3%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec3%3Cf16%3E"]
[:stage="constant";type="vec3%3Cf32%3E"]
[:stage="constant";type="vec4%3Cabstract-float%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cabstract-int%3E"]
expected: FAIL
expected:
if os == "mac": FAIL
[:stage="constant";type="vec4%3Cf16%3E"]

View File

@@ -290,7 +290,6 @@
[:ctor="vec2_0";use=false]
[:ctor="vec2_0";use=true]
expected: FAIL
[:ctor="vec2f";use=false]
@@ -299,7 +298,6 @@
[:ctor="vec3_0";use=false]
[:ctor="vec3_0";use=true]
expected: FAIL
[:ctor="vec3_f16";use=false]
@@ -312,7 +310,6 @@
[:ctor="vec4_0";use=false]
[:ctor="vec4_0";use=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,value_constructor:partial_eval:*]
@@ -468,7 +465,6 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,value_constructor:struct_value:*]
implementation-status: backlog
[:case="atomic"]
[:case="f32x2"]
@@ -484,7 +480,6 @@
[:case="valid_array"]
[:case="vec3u"]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,value_constructor:struct_zero_value:*]
@@ -1051,12 +1046,11 @@
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,value_constructor:vector_zero_value:*]
implementation-status: backlog
implementation-status:
if os == "mac": backlog
[:type="abstract-float"]
expected: FAIL
[:type="abstract-int"]
expected: FAIL
[:type="bool"]

View File

@@ -62,8 +62,10 @@
[:op="left";rhs="1u";test="u32";swap=true]
[:op="left";rhs="1u";test="vec";swap=false]
expected: FAIL
[:op="left";rhs="1u";test="vec";swap=true]
expected: FAIL
[:op="left";rhs="ai";test="af";swap=false]
@@ -319,8 +321,10 @@
[:op="right";rhs="1u";test="u32";swap=true]
[:op="right";rhs="1u";test="vec";swap=false]
expected: FAIL
[:op="right";rhs="1u";test="vec";swap=true]
expected: FAIL
[:op="right";rhs="ai";test="af";swap=false]

View File

@@ -1,5 +1,4 @@
[cts.https.html?q=webgpu:shader,validation,expression,overload_resolution:implicit_conversions:*]
implementation-status: backlog
[:case="absfloat_to_bool"]
[:case="absfloat_to_f16"]
@@ -71,10 +70,8 @@
[:case="vector_abstract_to_integer"]
[:case="vector_default_ctor_abstract"]
expected: FAIL
[:case="vector_default_ctor_integer"]
expected: FAIL
[:case="vector_swizzle_abstract"]
@@ -90,13 +87,9 @@
[cts.https.html?q=webgpu:shader,validation,expression,overload_resolution:overload_resolution:*]
implementation-status: backlog
[:arg1="abstract-float";arg2="abstract-int"]
expected: FAIL
[:arg1="abstract-float";arg2="f16"]
expected:
if os == "mac": FAIL
[:arg1="abstract-float";arg2="f32"]
@@ -105,27 +98,18 @@
[:arg1="abstract-float";arg2="u32"]
[:arg1="abstract-int";arg2="abstract-float"]
expected: FAIL
[:arg1="abstract-int";arg2="f16"]
expected:
if os == "mac": FAIL
[:arg1="abstract-int";arg2="f32"]
expected: FAIL
[:arg1="abstract-int";arg2="i32"]
[:arg1="abstract-int";arg2="u32"]
expected: FAIL
[:arg1="f16";arg2="abstract-float"]
expected:
if os == "mac": FAIL
[:arg1="f16";arg2="abstract-int"]
expected:
if os == "mac": FAIL
[:arg1="f16";arg2="f32"]
@@ -136,7 +120,6 @@
[:arg1="f32";arg2="abstract-float"]
[:arg1="f32";arg2="abstract-int"]
expected: FAIL
[:arg1="f32";arg2="f16"]
@@ -157,7 +140,6 @@
[:arg1="u32";arg2="abstract-float"]
[:arg1="u32";arg2="abstract-int"]
expected: FAIL
[:arg1="u32";arg2="f16"]
@@ -166,7 +148,6 @@
[:arg1="u32";arg2="i32"]
[:arg1="vec2%3Cabstract-float%3E";arg2="vec2%3Cabstract-int%3E"]
expected: FAIL
[:arg1="vec2%3Cabstract-float%3E";arg2="vec4%3Cf32%3E"]
@@ -175,7 +156,6 @@
[:arg1="vec2%3Cabstract-float%3E";arg2="vec4%3Cu32%3E"]
[:arg1="vec2%3Cabstract-int%3E";arg2="vec2%3Cabstract-float%3E"]
expected: FAIL
[:arg1="vec2%3Cabstract-int%3E";arg2="vec4%3Cf32%3E"]
@@ -202,10 +182,8 @@
[:arg1="vec2%3Cu32%3E";arg2="vec4%3Cf16%3E"]
[:arg1="vec3%3Cabstract-float%3E";arg2="vec3%3Cabstract-int%3E"]
expected: FAIL
[:arg1="vec3%3Cabstract-int%3E";arg2="vec3%3Cabstract-float%3E"]
expected: FAIL
[:arg1="vec3%3Cf32%3E";arg2="vec3%3Ci32%3E"]
@@ -220,10 +198,8 @@
[:arg1="vec3%3Cu32%3E";arg2="vec3%3Ci32%3E"]
[:arg1="vec4%3Cabstract-float%3E";arg2="vec4%3Cabstract-int%3E"]
expected: FAIL
[:arg1="vec4%3Cabstract-int%3E";arg2="vec4%3Cabstract-float%3E"]
expected: FAIL
[:arg1="vec4%3Cf16%3E";arg2="vec2%3Cf32%3E"]

View File

@@ -657,36 +657,27 @@
[cts.https.html?q=webgpu:shader,validation,expression,precedence:other:*]
implementation-status: backlog
[:expr="addr_member"]
expected: FAIL
[:expr="and_addr"]
[:expr="and_addr_paren"]
expected: FAIL
[:expr="comp_member"]
expected: FAIL
[:expr="deref_idx"]
[:expr="deref_idx_paren"]
expected: FAIL
[:expr="deref_member"]
[:expr="deref_member_paren"]
expected: FAIL
[:expr="log_and_member"]
expected: FAIL
[:expr="log_or_member"]
expected: FAIL
[:expr="neg_member"]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,precedence:other_lhs:*]

View File

@@ -30,7 +30,6 @@
[:type="texture";control=false]
[:type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,unary,arithmetic_negation:scalar_vector:*]

View File

@@ -29,7 +29,6 @@
[:type="texture";control=false]
[:type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,unary,bitwise_complement:scalar_vector:*]

View File

@@ -28,7 +28,6 @@
[:type="texture";control=false]
[:type="texture";control=true]
expected: FAIL
[cts.https.html?q=webgpu:shader,validation,expression,unary,logical_negation:parse:*]

View File

@@ -104,7 +104,6 @@
[:test="init_let"]
[:test="init_let_type"]
expected: FAIL
[:test="init_phony"]
expected: FAIL

View File

@@ -1041,7 +1041,6 @@
expected: FAIL
[:case="contents_rhs_pointer_swizzle_uniform"]
expected: FAIL
[:case="contents_scalar_alias_nonuniform1"]
expected: FAIL

File diff suppressed because one or more lines are too long

View File

@@ -47,6 +47,8 @@ arbitrary = [
"dep:arbitrary",
"bitflags/arbitrary",
"indexmap/arbitrary",
"half/arbitrary",
"half/std",
]
compact = []
default = []
@@ -91,7 +93,6 @@ path = "src/lib.rs"
[dependencies]
log = "0.4"
num-traits = "0.2.16"
[dependencies.arbitrary]
version = "1.4"
@@ -119,15 +120,13 @@ default-features = false
[dependencies.half]
version = "2.5"
features = [
"arbitrary",
"num-traits",
]
features = ["num-traits"]
default-features = false
[dependencies.hashbrown]
version = "0.14.5"
version = "0.15.2"
features = [
"ahash",
"default-hasher",
"inline-more",
]
default-features = false
@@ -137,11 +136,15 @@ version = "0.2.1"
optional = true
[dependencies.indexmap]
version = "2.5.0"
version = "2.7.1"
default-features = false
[dependencies.num-traits]
version = "0.2.16"
default-features = false
[dependencies.petgraph]
version = "0.7"
version = "0.8"
optional = true
[dependencies.pp-rs]
@@ -186,9 +189,9 @@ toml = "0.8"
version = "0.11"
[dev-dependencies.hashbrown]
version = "0.14.5"
version = "0.15.2"
features = [
"ahash",
"default-hasher",
"inline-more",
"serde",
]

View File

@@ -64,7 +64,7 @@ use thiserror::Error;
use crate::{
back::{self, Baked},
common,
proc::{self, ExpressionKindTracker, NameKey},
proc::{self, NameKey},
valid, Handle, ShaderStage, TypeInner,
};
use features::FeaturesManager;
@@ -1678,7 +1678,6 @@ impl<'a, W: Write> Writer<'a, W> {
info,
expressions: &func.expressions,
named_expressions: &func.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&func.expressions),
};
self.named_expressions.clear();

View File

@@ -17,7 +17,7 @@ use super::{
use crate::{
back::{self, Baked},
common,
proc::{self, index, ExpressionKindTracker, NameKey},
proc::{self, index, NameKey},
valid, Handle, Module, RayQueryFunction, Scalar, ScalarKind, ShaderStage, TypeInner,
};
@@ -426,7 +426,6 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> {
info,
expressions: &function.expressions,
named_expressions: &function.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&function.expressions),
};
let name = self.names[&NameKey::Function(handle)].clone();
@@ -467,7 +466,6 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> {
info,
expressions: &ep.function.expressions,
named_expressions: &ep.function.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&ep.function.expressions),
};
self.write_wrapped_functions(module, &ctx)?;

View File

@@ -11,8 +11,6 @@ Backend functions that export shader [`Module`](super::Module)s into binary and
use alloc::string::String;
use crate::proc::ExpressionKindTracker;
#[cfg(dot_out)]
pub mod dot;
#[cfg(glsl_out)]
@@ -128,8 +126,6 @@ pub struct FunctionCtx<'a> {
pub expressions: &'a crate::Arena<crate::Expression>,
/// Map of expressions that have associated variable names
pub named_expressions: &'a crate::NamedExpressions,
/// For constness checks
pub expr_kind_tracker: ExpressionKindTracker,
}
impl FunctionCtx<'_> {

View File

@@ -29,6 +29,20 @@ holding the result.
[msl]: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
[all-atom]: crate::valid::Capabilities::SHADER_INT64_ATOMIC_ALL_OPS
## Pointer-typed bounds-checked expressions and OOB locals
MSL (unlike HLSL and GLSL) has native support for pointer-typed function
arguments. When the [`BoundsCheckPolicy`] is `ReadZeroSkipWrite` and an
out-of-bounds index expression is used for such an argument, our strategy is to
pass a pointer to a dummy variable. These dummy variables are called "OOB
locals". We emit at most one OOB local per function for each type, since all
expressions producing a result of that type can share the same OOB local. (Note
that the OOB local mechanism is not actually implementing "skip write", nor even
"read zero" in some cases of read-after-write, but doing so would require
additional effort and the difference is unlikely to matter.)
[`BoundsCheckPolicy`]: crate::proc::BoundsCheckPolicy
*/
use alloc::{

View File

@@ -5,6 +5,7 @@ use alloc::{
vec::Vec,
};
use core::{
cmp::Ordering,
fmt::{Display, Error as FmtError, Formatter, Write},
iter,
};
@@ -17,7 +18,11 @@ use crate::{
arena::{Handle, HandleSet},
back::{self, Baked},
common,
proc::{self, index, ExpressionKindTracker, NameKey, TypeResolution},
proc::{
self,
index::{self, BoundsCheck},
NameKey, TypeResolution,
},
valid, FastHashMap, FastHashSet,
};
@@ -598,11 +603,34 @@ impl crate::Type {
}
}
#[derive(Clone, Copy)]
enum FunctionOrigin {
Handle(Handle<crate::Function>),
EntryPoint(proc::EntryPointIndex),
}
trait NameKeyExt {
fn local(origin: FunctionOrigin, local_handle: Handle<crate::LocalVariable>) -> NameKey {
match origin {
FunctionOrigin::Handle(handle) => NameKey::FunctionLocal(handle, local_handle),
FunctionOrigin::EntryPoint(idx) => NameKey::EntryPointLocal(idx, local_handle),
}
}
/// Return the name key for a local variable used by ReadZeroSkipWrite bounds-check
/// policy when it needs to produce a pointer-typed result for an OOB access. These
/// are unique per accessed type, so the second argument is a type handle. See docs
/// for [`crate::back::msl`].
fn oob_local_for_type(origin: FunctionOrigin, ty: Handle<crate::Type>) -> NameKey {
match origin {
FunctionOrigin::Handle(handle) => NameKey::FunctionOobLocal(handle, ty),
FunctionOrigin::EntryPoint(idx) => NameKey::EntryPointOobLocal(idx, ty),
}
}
}
impl NameKeyExt for NameKey {}
/// A level of detail argument.
///
/// When [`BoundsCheckPolicy::Restrict`] applies to an [`ImageLoad`] access, we
@@ -680,6 +708,7 @@ impl<'a> ExpressionContext<'a> {
.choose_policy(pointer, &self.module.types, self.info)
}
/// See docs for [`proc::index::access_needs_check`].
fn access_needs_check(
&self,
base: Handle<crate::Expression>,
@@ -694,6 +723,19 @@ impl<'a> ExpressionContext<'a> {
)
}
/// See docs for [`proc::index::bounds_check_iter`].
fn bounds_check_iter(
&self,
chain: Handle<crate::Expression>,
) -> impl Iterator<Item = BoundsCheck> + '_ {
index::bounds_check_iter(chain, self.module, self.function, self.info)
}
/// See docs for [`proc::index::oob_local_types`].
fn oob_local_types(&self) -> FastHashSet<Handle<crate::Type>> {
index::oob_local_types(self.module, self.function, self.info, self.policies)
}
fn get_packed_vec_kind(&self, expr_handle: Handle<crate::Expression>) -> Option<crate::Scalar> {
match self.function.expressions[expr_handle] {
crate::Expression::AccessIndex { base, index } => {
@@ -901,6 +943,59 @@ impl<W: Write> Writer<W> {
Ok(())
}
/// Writes the local variables of the given function, as well as any extra
/// out-of-bounds locals that are needed.
///
/// The names of the OOB locals are also added to `self.names` at the same
/// time.
fn put_locals(&mut self, context: &ExpressionContext) -> BackendResult {
let oob_local_types = context.oob_local_types();
for &ty in oob_local_types.iter() {
let name_key = NameKey::oob_local_for_type(context.origin, ty);
self.names.insert(name_key, self.namer.call("oob"));
}
for (name_key, ty, init) in context
.function
.local_variables
.iter()
.map(|(local_handle, local)| {
let name_key = NameKey::local(context.origin, local_handle);
(name_key, local.ty, local.init)
})
.chain(oob_local_types.iter().map(|&ty| {
let name_key = NameKey::oob_local_for_type(context.origin, ty);
(name_key, ty, None)
}))
{
let ty_name = TypeContext {
handle: ty,
gctx: context.module.to_ctx(),
names: &self.names,
access: crate::StorageAccess::empty(),
first_time: false,
};
write!(
self.out,
"{}{} {}",
back::INDENT,
ty_name,
self.names[&name_key]
)?;
match init {
Some(value) => {
write!(self.out, " = ")?;
self.put_expression(value, context, true)?;
}
None => {
write!(self.out, " = {{}}")?;
}
};
writeln!(self.out, ";")?;
}
Ok(())
}
fn put_level_of_detail(
&mut self,
level: LevelOfDetail,
@@ -1493,14 +1588,32 @@ impl<W: Write> Writer<W> {
write!(self.out, "{value}u")?;
}
crate::Literal::I32(value) => {
// `-2147483648` is parsed as unary negation of positive 2147483648.
// 2147483648 is too large for int32_t meaning the expression gets
// promoted to a int64_t which is not our intention. Avoid this by instead
// using `-2147483647 - 1`.
if value == i32::MIN {
write!(self.out, "({} - 1)", value + 1)?;
} else {
write!(self.out, "{value}")?;
}
}
crate::Literal::U64(value) => {
write!(self.out, "{value}uL")?;
}
crate::Literal::I64(value) => {
// `-9223372036854775808` is parsed as unary negation of positive
// 9223372036854775808. 9223372036854775808 is too large for int64_t
// causing Metal to emit a `-Wconstant-conversion` warning, and change the
// value to `-9223372036854775808`. Which would then be negated, possibly
// causing undefined behaviour. Avoid this by instead using
// `-9223372036854775808L - 1L`.
if value == i64::MIN {
write!(self.out, "({}L - 1L)", value + 1)?;
} else {
write!(self.out, "{value}L")?;
}
}
crate::Literal::Bool(value) => {
write!(self.out, "{value}")?;
}
@@ -1641,7 +1754,6 @@ impl<W: Write> Writer<W> {
}
let expression = &context.function.expressions[expr_handle];
log::trace!("expression {:?} = {:?}", expr_handle, expression);
match *expression {
crate::Expression::Literal(_)
| crate::Expression::Constant(_)
@@ -1677,7 +1789,42 @@ impl<W: Write> Writer<W> {
{
write!(self.out, " ? ")?;
self.put_access_chain(expr_handle, policy, context)?;
write!(self.out, " : DefaultConstructible()")?;
write!(self.out, " : ")?;
if context.resolve_type(base).pointer_space().is_some() {
// We can't just use `DefaultConstructible` if this is a pointer.
// Instead, we create a dummy local variable to serve as pointer
// target if the access is out of bounds.
let result_ty = context.info[expr_handle]
.ty
.inner_with(&context.module.types)
.pointer_base_type();
let result_ty_handle = match result_ty {
Some(TypeResolution::Handle(handle)) => handle,
Some(TypeResolution::Value(_)) => {
// As long as the result of a pointer access expression is
// passed to a function or stored in a let binding, the
// type will be in the arena. If additional uses of
// pointers become valid, this assumption might no longer
// hold. Note that the LHS of a load or store doesn't
// take this path -- there is dedicated code in `put_load`
// and `put_store`.
unreachable!(
"Expected type {result_ty:?} of access through pointer type {base:?} to be in the arena",
);
}
None => {
unreachable!(
"Expected access through pointer type {base:?} to return a pointer, but got {result_ty:?}",
)
}
};
let name_key =
NameKey::oob_local_for_type(context.origin, result_ty_handle);
self.out.write_str(&self.names[&name_key])?;
} else {
write!(self.out, "DefaultConstructible()")?;
}
if !is_scoped {
write!(self.out, ")")?;
@@ -1717,14 +1864,7 @@ impl<W: Write> Writer<W> {
write!(self.out, "{name}")?;
}
crate::Expression::LocalVariable(handle) => {
let name_key = match context.origin {
FunctionOrigin::Handle(fun_handle) => {
NameKey::FunctionLocal(fun_handle, handle)
}
FunctionOrigin::EntryPoint(ep_index) => {
NameKey::EntryPointLocal(ep_index, handle)
}
};
let name_key = NameKey::local(context.origin, handle);
let name = &self.names[&name_key];
write!(self.out, "{name}")?;
}
@@ -2628,38 +2768,21 @@ impl<W: Write> Writer<W> {
#[allow(unused_variables)]
fn put_bounds_checks(
&mut self,
mut chain: Handle<crate::Expression>,
chain: Handle<crate::Expression>,
context: &ExpressionContext,
level: back::Level,
prefix: &'static str,
) -> Result<bool, Error> {
let mut check_written = false;
// Iterate over the access chain, handling each expression.
loop {
// Produce a `GuardedIndex`, so we can shared code between the
// `Access` and `AccessIndex` cases.
let (base, guarded_index) = match context.function.expressions[chain] {
crate::Expression::Access { base, index } => {
(base, Some(index::GuardedIndex::Expression(index)))
}
crate::Expression::AccessIndex { base, index } => {
// Don't try to check indices into structs. Validation already took
// care of them, and index::needs_guard doesn't handle that case.
let mut base_inner = context.resolve_type(base);
if let crate::TypeInner::Pointer { base, .. } = *base_inner {
base_inner = &context.module.types[base].inner;
}
match *base_inner {
crate::TypeInner::Struct { .. } => (base, None),
_ => (base, Some(index::GuardedIndex::Known(index))),
}
}
_ => break,
};
// Iterate over the access chain, handling each required bounds check.
for item in context.bounds_check_iter(chain) {
let BoundsCheck {
base,
index,
length,
} = item;
if let Some(index) = guarded_index {
if let Some(length) = context.access_needs_check(base, index) {
if check_written {
write!(self.out, " && ")?;
} else {
@@ -2676,21 +2799,14 @@ impl<W: Write> Writer<W> {
match length {
index::IndexableLength::Known(value) => write!(self.out, "{value}")?,
index::IndexableLength::Dynamic => {
let global =
context.function.originating_global(base).ok_or_else(|| {
Error::GenericValidation(
"Could not find originating global".into(),
)
let global = context.function.originating_global(base).ok_or_else(|| {
Error::GenericValidation("Could not find originating global".into())
})?;
write!(self.out, "1 + ")?;
self.put_dynamic_array_max_index(global, context)?
}
}
}
}
chain = base
}
Ok(check_written)
}
@@ -5572,7 +5688,6 @@ template <typename A>
info: &mod_info[fun_handle],
expressions: &fun.expressions,
named_expressions: &fun.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&fun.expressions),
};
writeln!(self.out)?;
@@ -5676,28 +5791,7 @@ template <typename A>
result_struct: None,
};
for (local_handle, local) in fun.local_variables.iter() {
let ty_name = TypeContext {
handle: local.ty,
gctx: module.to_ctx(),
names: &self.names,
access: crate::StorageAccess::empty(),
first_time: false,
};
let local_name = &self.names[&NameKey::FunctionLocal(fun_handle, local_handle)];
write!(self.out, "{}{} {}", back::INDENT, ty_name, local_name)?;
match local.init {
Some(value) => {
write!(self.out, " = ")?;
self.put_expression(value, &context.expression, true)?;
}
None => {
write!(self.out, " = {{}}")?;
}
};
writeln!(self.out, ";")?;
}
self.put_locals(&context.expression)?;
self.update_expressions_to_bake(fun, fun_info, &context.expression);
self.put_block(back::Level(1), &fun.body, &context)?;
writeln!(self.out, "}}")?;
@@ -5729,7 +5823,6 @@ template <typename A>
info: fun_info,
expressions: &fun.expressions,
named_expressions: &fun.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&fun.expressions),
};
self.write_wrapped_functions(module, &ctx)?;
@@ -6386,14 +6479,12 @@ template <typename A>
// from the buffer elements.
for attribute in vbm.attributes {
let location = attribute.shader_location;
let am_option = am_resolved.get(&location);
if am_option.is_none() {
let Some(am) = am_resolved.get(&location) else {
// This bound attribute isn't used in this entry point, so
// don't bother extracting the data. Too bad we emitted the
// unpacking function earlier -- it might not get used.
continue;
}
let am = am_option.unwrap();
};
let attribute_name = &am.name;
let attribute_ty_name = &am.ty_name;
@@ -6403,26 +6494,42 @@ template <typename A>
.expect("Should have generated this unpacking function earlier.");
let func_name = &func.name;
// Check dimensionality of the attribute compared to the unpacking
// function. If attribute dimension > unpack dimension, we have to
// pad out the unpack value from a vec4(0, 0, 0, 1) of matching
// scalar type. Otherwise, if attribute dimension is < unpack
// dimension, then we need to explicitly truncate the result.
let needs_padding_or_truncation = am.dimension.cmp(&func.dimension);
if needs_padding_or_truncation != Ordering::Equal {
// Emit a comment flagging that a conversion is happening,
// since the actual logic can be at the end of a long line.
writeln!(
self.out,
"{}// {attribute_ty_name} <- {:?}",
back::Level(2),
attribute.format
)?;
}
write!(self.out, "{}{attribute_name} = ", back::Level(2),)?;
// Check dimensionality of the attribute compared to the unpacking
// function. If attribute dimension is < unpack dimension, then
// we need to explicitly cast down the result. Otherwise, if attribute
// dimension > unpack dimension, we have to pad out the unpack value
// from a vec4(0, 0, 0, 1) of matching scalar type.
let needs_truncate_or_padding = am.dimension != func.dimension;
if needs_truncate_or_padding {
if needs_padding_or_truncation == Ordering::Greater {
// Needs padding: emit constructor call for wider type
write!(self.out, "{attribute_ty_name}(")?;
}
// Emit call to unpacking function
write!(self.out, "{func_name}({elem_name}.data[{offset}]",)?;
for i in (offset + 1)..(offset + func.byte_count) {
write!(self.out, ", {elem_name}.data[{i}]")?;
}
write!(self.out, ")")?;
if needs_truncate_or_padding {
match needs_padding_or_truncation {
Ordering::Greater => {
// Padding
let zero_value = if am.ty_is_int { "0" } else { "0.0" };
let one_value = if am.ty_is_int { "1" } else { "1.0" };
for i in func.dimension..am.dimension {
@@ -6434,6 +6541,16 @@ template <typename A>
}
write!(self.out, ")")?;
}
Ordering::Less => {
// Truncate to the first `am.dimension` components
write!(
self.out,
".{}",
&"xyzw"[0..usize::try_from(am.dimension).unwrap()]
)?;
}
Ordering::Equal => {}
}
writeln!(self.out, ";")?;
}
@@ -6586,28 +6703,7 @@ template <typename A>
// Finally, declare all the local variables that we need
//TODO: we can postpone this till the relevant expressions are emitted
for (local_handle, local) in fun.local_variables.iter() {
let name = &self.names[&NameKey::EntryPointLocal(ep_index as _, local_handle)];
let ty_name = TypeContext {
handle: local.ty,
gctx: module.to_ctx(),
names: &self.names,
access: crate::StorageAccess::empty(),
first_time: false,
};
write!(self.out, "{}{} {}", back::INDENT, ty_name, name)?;
match local.init {
Some(value) => {
write!(self.out, " = ")?;
self.put_expression(value, &context.expression, true)?;
}
None => {
write!(self.out, " = {{}}")?;
}
};
writeln!(self.out, ";")?;
}
self.put_locals(&context.expression)?;
self.update_expressions_to_bake(fun, fun_info, &context.expression);
self.put_block(back::Level(1), &fun.body, &context)?;
writeln!(self.out, "}}")?;

View File

@@ -16,7 +16,7 @@ use crate::{
self,
wgsl::{address_space_str, ToWgsl, TryToWgsl},
},
proc::{self, ExpressionKindTracker, NameKey},
proc::{self, NameKey},
valid, Handle, Module, ShaderStage, TypeInner,
};
@@ -178,7 +178,6 @@ impl<W: Write> Writer<W> {
info: fun_info,
expressions: &function.expressions,
named_expressions: &function.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&function.expressions),
};
// Write the function
@@ -207,7 +206,6 @@ impl<W: Write> Writer<W> {
info: info.get_entry_point(index),
expressions: &ep.function.expressions,
named_expressions: &ep.function.named_expressions,
expr_kind_tracker: ExpressionKindTracker::from_arena(&ep.function.expressions),
};
self.write_function(module, &ep.function, &func_ctx)?;
@@ -483,7 +481,11 @@ impl<W: Write> Writer<W> {
Ok(())
}
fn write_type_inner(&mut self, module: &Module, inner: &TypeInner) -> BackendResult {
fn write_type_resolution(
&mut self,
module: &Module,
resolution: &proc::TypeResolution,
) -> BackendResult {
// This actually can't be factored out into a nice constructor method,
// because the borrow checker needs to be able to see that the borrows
// of `self.names` and `self.out` are disjoint.
@@ -491,7 +493,7 @@ impl<W: Write> Writer<W> {
module,
names: &self.names,
};
type_context.write_type_inner(inner, &mut self.out)?;
type_context.write_type_resolution(resolution, &mut self.out)?;
Ok(())
}
@@ -1029,26 +1031,12 @@ impl<W: Write> Writer<W> {
func_ctx: &back::FunctionCtx,
name: &str,
) -> BackendResult {
// Some functions are marked as const, but are not yet implemented as constant expression
let quantifier = if func_ctx.expr_kind_tracker.is_impl_const(handle) {
"const"
} else {
"let"
};
// Write variable name
write!(self.out, "{quantifier} {name}")?;
write!(self.out, "let {name}")?;
if self.flags.contains(WriterFlags::EXPLICIT_TYPES) {
write!(self.out, ": ")?;
let ty = &func_ctx.info[handle].ty;
// Write variable type
match *ty {
proc::TypeResolution::Handle(handle) => {
self.write_type(module, handle)?;
}
proc::TypeResolution::Value(ref inner) => {
self.write_type_inner(module, inner)?;
}
}
self.write_type_resolution(module, &func_ctx.info[handle].ty)?;
}
write!(self.out, " = ")?;
@@ -1147,12 +1135,12 @@ impl<W: Write> Writer<W> {
crate::Literal::Bool(value) => write!(self.out, "{value}")?,
crate::Literal::F64(value) => write!(self.out, "{value:?}lf")?,
crate::Literal::I64(value) => {
// `-9223372036854775808li` is not valid WGSL. Nor can we use the AbstractInt
// trick above, as AbstractInt also cannot represent `9223372036854775808`.
// The most negative `i64` value can only be expressed in WGSL using
// subtracting 1 from the second most negative value.
// `-9223372036854775808li` is not valid WGSL. Nor can we simply use the
// AbstractInt trick above, as AbstractInt also cannot represent
// `9223372036854775808`. Instead construct the second most negative
// AbstractInt, subtract one from it, then cast to i64.
if value == i64::MIN {
write!(self.out, "{}li - 1li", value + 1)?;
write!(self.out, "i64({} - 1)", value + 1)?;
} else {
write!(self.out, "{value}li")?;
}
@@ -1776,6 +1764,10 @@ impl TypeContext for WriterTypeContext<'_> {
self.names[&NameKey::Type(handle)].as_str()
}
fn write_unnamed_struct<W: Write>(&self, _: &TypeInner, _: &mut W) -> core::fmt::Result {
unreachable!("the WGSL back end should always provide type handles");
}
fn write_override<W: Write>(&self, _: Handle<crate::Override>, _: &mut W) -> core::fmt::Result {
unreachable!("overrides should be validated out");
}

View File

@@ -0,0 +1,126 @@
//! Displaying Naga IR terms in debugging output.
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
use crate::common::wgsl::TypeContext;
use crate::proc::TypeResolution;
use crate::{Handle, Scalar, Type, TypeInner, UniqueArena};
use core::fmt;
/// A wrapper for displaying Naga IR terms in debugging output.
///
/// This is like [`DiagnosticDisplay`], but requires weaker context
/// and produces correspondingly lower-fidelity output. For example,
/// this cannot show the override names for override-sized array
/// lengths.
///
/// [`DiagnosticDisplay`]: super::DiagnosticDisplay
pub struct DiagnosticDebug<T>(pub T);
impl fmt::Debug for DiagnosticDebug<(Handle<Type>, &UniqueArena<Type>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (handle, ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type(handle, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{handle:?}")?;
}
Ok(())
}
}
impl fmt::Debug for DiagnosticDebug<(&TypeInner, &UniqueArena<Type>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (inner, ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type_inner(inner, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{inner:?}")?;
}
Ok(())
}
}
impl fmt::Debug for DiagnosticDebug<(&TypeResolution, &UniqueArena<Type>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (resolution, ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type_resolution(resolution, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{resolution:?}")?;
}
Ok(())
}
}
impl fmt::Debug for DiagnosticDebug<Scalar> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let scalar = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
f.write_str(&crate::common::wgsl::TryToWgsl::to_wgsl_for_diagnostics(
scalar,
))?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
write!(f, "{scalar:?}")?;
Ok(())
}
}
pub trait ForDebug: Sized {
/// Format this type using [`core::fmt::Debug`].
///
/// Return a value that implements the [`core::fmt::Debug`] trait
/// by displaying `self` in a language-appropriate way. For
/// example:
///
/// # use naga::common::ForDebug;
/// # let scalar: naga::Scalar = naga::Scalar::F32;
/// log::debug!("My scalar: {:?}", scalar.for_debug());
fn for_debug(self) -> DiagnosticDebug<Self> {
DiagnosticDebug(self)
}
}
impl ForDebug for Scalar {}
pub trait ForDebugWithTypes: Sized {
/// Format this type using [`core::fmt::Debug`].
///
/// Given an arena to look up type handles in, return a value that
/// implements the [`core::fmt::Debug`] trait by displaying `self`
/// in a language-appropriate way. For example:
///
/// # use naga::{Span, Type, TypeInner, Scalar, UniqueArena};
/// # use naga::common::ForDebugWithTypes;
/// # let mut types = UniqueArena::<Type>::default();
/// # let inner = TypeInner::Scalar(Scalar::F32);
/// # let span = Span::UNDEFINED;
/// # let handle = types.insert(Type { name: None, inner }, span);
/// log::debug!("My type: {:?}", handle.for_debug(&types));
fn for_debug(self, types: &UniqueArena<Type>) -> DiagnosticDebug<(Self, &UniqueArena<Type>)> {
DiagnosticDebug((self, types))
}
}
impl ForDebugWithTypes for Handle<Type> {}
impl ForDebugWithTypes for &TypeInner {}
impl ForDebugWithTypes for &TypeResolution {}

View File

@@ -0,0 +1,120 @@
//! Displaying Naga IR terms in diagnostic output.
use crate::proc::{GlobalCtx, Rule, TypeResolution};
use crate::{Handle, Scalar, Type};
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
use crate::common::wgsl::TypeContext;
use core::fmt;
/// A wrapper for displaying Naga IR terms in diagnostic output.
///
/// For some Naga IR type `T`, `DiagnosticDisplay<T>` implements
/// [`core::fmt::Display`] in a way that displays values of type `T`
/// appropriately for diagnostic messages presented to human readers.
///
/// For example, the implementation of [`Display`] for
/// `DiagnosticDisplay<Scalar>` formats the type represented by the
/// given [`Scalar`] appropriately for users.
///
/// Some types like `Handle<Type>` require contextual information like
/// a type arena to be displayed. In such cases, we implement [`Display`]
/// for a type like `DiagnosticDisplay<(Handle<Type>, GlobalCtx)>`, where
/// the [`GlobalCtx`] type provides the necessary context.
///
/// Do not implement this type for [`TypeInner`], as that does not
/// have enough information to display struct types correctly.
///
/// If you only need debugging output, [`DiagnosticDebug`] uses
/// easier-to-obtain context types but still does a good enough job
/// for logging or debugging.
///
/// [`Display`]: core::fmt::Display
/// [`GlobalCtx`]: crate::proc::GlobalCtx
/// [`TypeInner`]: crate::ir::TypeInner
/// [`DiagnosticDebug`]: super::DiagnosticDebug
///
/// ## Language-sensitive diagnostics
///
/// Diagnostic output ought to depend on the source language from
/// which the IR was produced: diagnostics resulting from processing
/// GLSL code should use GLSL type syntax, for example. That means
/// that `DiagnosticDisplay` ought to include some indication of which
/// notation to use.
///
/// For the moment, only WGSL output is implemented, so
/// `DiagnosticDisplay` lacks any support for this (#7268). However,
/// the plan is that all language-independent code in Naga should use
/// `DiagnosticDisplay` wherever appropriate, such that when its
/// definition is expanded to include some indication of the right
/// source language to use, any use site that does not supply this
/// indication will provoke a compile-time error.
pub struct DiagnosticDisplay<T>(pub T);
impl fmt::Display for DiagnosticDisplay<(&TypeResolution, GlobalCtx<'_>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (resolution, ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type_resolution(resolution, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{resolution:?}")?;
}
Ok(())
}
}
impl fmt::Display for DiagnosticDisplay<(Handle<Type>, GlobalCtx<'_>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (handle, ref ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type(handle, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{handle:?}")?;
}
Ok(())
}
}
impl fmt::Display for DiagnosticDisplay<(&str, &Rule, GlobalCtx<'_>)> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (name, rule, ref ctx) = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
ctx.write_type_rule(name, rule, f)?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
{
let _ = ctx;
write!(f, "{name}({:?}) -> {:?}", rule.arguments, rule.conclusion)?;
}
Ok(())
}
}
impl fmt::Display for DiagnosticDisplay<Scalar> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let scalar = self.0;
#[cfg(any(feature = "wgsl-in", feature = "wgsl-out"))]
f.write_str(&crate::common::wgsl::TryToWgsl::to_wgsl_for_diagnostics(
scalar,
))?;
#[cfg(not(any(feature = "wgsl-in", feature = "wgsl-out")))]
write!(f, "{scalar:?}")?;
Ok(())
}
}

View File

@@ -1,7 +1,13 @@
//! Code common to the front and backends for specific languages.
mod diagnostic_debug;
mod diagnostic_display;
pub mod predeclared;
pub mod wgsl;
pub use diagnostic_debug::{DiagnosticDebug, ForDebug, ForDebugWithTypes};
pub use diagnostic_display::DiagnosticDisplay;
/// Helper function that returns the string corresponding to the [`VectorSize`](crate::VectorSize)
pub const fn vector_size_str(size: crate::VectorSize) -> &'static str {
match size {

View File

@@ -0,0 +1,33 @@
//! Generating names for predeclared types.
use crate::ir;
use alloc::format;
use alloc::string::String;
impl ir::PredeclaredType {
pub fn struct_name(&self) -> String {
use crate::PredeclaredType as Pt;
match *self {
Pt::AtomicCompareExchangeWeakResult(scalar) => {
format!(
"__atomic_compare_exchange_result<{:?},{}>",
scalar.kind, scalar.width,
)
}
Pt::ModfResult { size, scalar } => frexp_mod_name("modf", size, scalar),
Pt::FrexpResult { size, scalar } => frexp_mod_name("frexp", size, scalar),
}
}
}
fn frexp_mod_name(function: &str, size: Option<ir::VectorSize>, scalar: ir::Scalar) -> String {
let bits = 8 * scalar.width;
match size {
Some(size) => {
let size = size as u8;
format!("__{function}_result_vec{size}_f{bits}")
}
None => format!("__{function}_result_f{bits}"),
}
}

View File

@@ -268,9 +268,9 @@ impl TryToWgsl for crate::Scalar {
use crate::Scalar;
Some(match self {
Scalar::F64 => "f64",
Scalar::F32 => "f32",
Scalar::F16 => "f16",
Scalar::F32 => "f32",
Scalar::F64 => "f64",
Scalar::I32 => "i32",
Scalar::U32 => "u32",
Scalar::I64 => "i64",

View File

@@ -39,6 +39,14 @@ pub trait TypeContext {
out: &mut W,
) -> core::fmt::Result;
/// Write a [`TypeInner::Struct`] for which we are unable to find a name.
///
/// The names of struct types are only available if we have `Handle<Type>`,
/// not from [`TypeInner`]. For logging and debugging, it's fine to just
/// write something helpful to the developer, but for generating WGSL,
/// this should be unreachable.
fn write_unnamed_struct<W: Write>(&self, inner: &TypeInner, out: &mut W) -> core::fmt::Result;
/// Write a [`TypeInner`] that has no representation as WGSL source,
/// even including Naga extensions.
///
@@ -133,23 +141,54 @@ pub trait TypeContext {
}
}
fn write_type_conclusion<W: Write>(
&self,
conclusion: &crate::proc::Conclusion,
out: &mut W,
) -> core::fmt::Result {
use crate::proc::Conclusion as Co;
match *conclusion {
Co::Value(ref inner) => self.write_type_inner(inner, out),
Co::Predeclared(ref predeclared) => out.write_str(&predeclared.struct_name()),
}
}
fn write_type_rule<W: Write>(
&self,
name: &str,
rule: &crate::proc::Rule,
out: &mut W,
) -> core::fmt::Result {
write!(out, "fn {name}(")?;
for (i, arg) in rule.arguments.iter().enumerate() {
if i > 0 {
out.write_str(", ")?;
}
self.write_type_resolution(arg, out)?
}
out.write_str(") -> ")?;
self.write_type_conclusion(&rule.conclusion, out)?;
Ok(())
}
fn type_to_string(&self, handle: Handle<crate::Type>) -> String {
let mut buf = String::new();
self.write_type(handle, &mut buf).unwrap();
buf
}
fn type_inner_to_string(&self, inner: &TypeInner) -> String {
let mut buf = String::new();
self.write_type_inner(inner, &mut buf).unwrap();
buf
}
fn type_resolution_to_string(&self, resolution: &TypeResolution) -> String {
let mut buf = String::new();
self.write_type_resolution(resolution, &mut buf).unwrap();
buf
}
fn type_rule_to_string(&self, name: &str, rule: &crate::proc::Rule) -> String {
let mut buf = String::new();
self.write_type_rule(name, rule, &mut buf).unwrap();
buf
}
}
fn try_write_type_inner<C, W>(ctx: &C, inner: &TypeInner, out: &mut W) -> Result<(), WriteTypeError>
@@ -332,7 +371,7 @@ where
write!(out, "acceleration_structure{}", caps)?
}
TypeInner::Struct { .. } => {
unreachable!("structs can only be referenced by name in WGSL");
ctx.write_unnamed_struct(inner, out)?;
}
TypeInner::RayQuery { vertex_return } => {
let caps = if vertex_return { "<vertex_return>" } else { "" };
@@ -356,3 +395,78 @@ impl From<core::fmt::Error> for WriteTypeError {
Self::Format(err)
}
}
/// Format types as WGSL based on a [`GlobalCtx`].
///
/// This is probably good enough for diagnostic output, but it has some
/// limitations:
///
/// - It does not apply [`Namer`] renamings, to avoid collisions.
///
/// - It generates invalid WGSL for anonymous struct types.
///
/// - It doesn't write the lengths of override-expression-sized arrays
/// correctly, unless the expression is just the override identifier.
///
/// [`GlobalCtx`]: crate::proc::GlobalCtx
/// [`Namer`]: crate::proc::Namer
impl TypeContext for crate::proc::GlobalCtx<'_> {
fn lookup_type(&self, handle: Handle<crate::Type>) -> &crate::Type {
&self.types[handle]
}
fn type_name(&self, handle: Handle<crate::Type>) -> &str {
self.types[handle]
.name
.as_deref()
.unwrap_or("{anonymous type}")
}
fn write_unnamed_struct<W: Write>(&self, _: &TypeInner, out: &mut W) -> core::fmt::Result {
write!(out, "{{unnamed struct}}")
}
fn write_override<W: Write>(
&self,
handle: Handle<crate::Override>,
out: &mut W,
) -> core::fmt::Result {
match self.overrides[handle].name {
Some(ref name) => out.write_str(name),
None => write!(out, "{{anonymous override {handle:?}}}"),
}
}
}
/// Format types as WGSL based on a `UniqueArena<Type>`.
///
/// This is probably only good enough for logging:
///
/// - It does not apply any kind of [`Namer`] renamings.
///
/// - It generates invalid WGSL for anonymous struct types.
///
/// - It doesn't write override-sized arrays properly.
///
/// [`Namer`]: crate::proc::Namer
impl TypeContext for crate::UniqueArena<crate::Type> {
fn lookup_type(&self, handle: Handle<crate::Type>) -> &crate::Type {
&self[handle]
}
fn type_name(&self, handle: Handle<crate::Type>) -> &str {
self[handle].name.as_deref().unwrap_or("{anonymous type}")
}
fn write_unnamed_struct<W: Write>(&self, inner: &TypeInner, out: &mut W) -> core::fmt::Result {
write!(out, "{{unnamed struct {inner:?}}}")
}
fn write_override<W: Write>(
&self,
handle: Handle<crate::Override>,
out: &mut W,
) -> core::fmt::Result {
write!(out, "{{override {handle:?}}}")
}
}

View File

@@ -2,7 +2,7 @@
Type generators.
*/
use alloc::{format, string::ToString, vec};
use alloc::{string::ToString, vec};
use crate::{arena::Handle, span::Span};
@@ -283,12 +283,11 @@ impl crate::Module {
&mut self,
special_type: crate::PredeclaredType,
) -> Handle<crate::Type> {
use core::fmt::Write;
if let Some(value) = self.special_types.predeclared_types.get(&special_type) {
return *value;
}
let name = special_type.struct_name();
let ty = match special_type {
crate::PredeclaredType::AtomicCompareExchangeWeakResult(scalar) => {
let bool_ty = self.types.insert(
@@ -307,10 +306,7 @@ impl crate::Module {
);
crate::Type {
name: Some(format!(
"__atomic_compare_exchange_result<{:?},{}>",
scalar.kind, scalar.width,
)),
name: Some(name),
inner: crate::TypeInner::Struct {
members: vec![
crate::StructMember {
@@ -352,14 +348,8 @@ impl crate::Module {
(float_ty, scalar.width as u32)
};
let mut type_name = "__modf_result_".to_string();
if let Some(size) = size {
let _ = write!(type_name, "vec{}_", size as u8);
}
let _ = write!(type_name, "f{}", scalar.width * 8);
crate::Type {
name: Some(type_name),
name: Some(name),
inner: crate::TypeInner::Struct {
members: vec![
crate::StructMember {
@@ -425,14 +415,8 @@ impl crate::Module {
(float_ty, int_ty, scalar.width as u32)
};
let mut type_name = "__frexp_result_".to_string();
if let Some(size) = size {
let _ = write!(type_name, "vec{}_", size as u8);
}
let _ = write!(type_name, "f{}", scalar.width * 8);
crate::Type {
name: Some(type_name),
name: Some(name),
inner: crate::TypeInner::Struct {
members: vec![
crate::StructMember {

View File

@@ -271,6 +271,75 @@ pub(crate) enum Error<'a> {
expected: Range<u32>,
found: u32,
},
/// No overload of this function accepts this many arguments.
TooManyArguments {
/// The name of the function being called.
function: String,
/// The function name in the call expression.
call_span: Span,
/// The first argument that is unacceptable.
arg_span: Span,
/// Maximum number of arguments accepted by any overload of
/// this function.
max_arguments: u32,
},
/// A value passed to a builtin function has a type that is not
/// accepted by any overload of the function.
WrongArgumentType {
/// The name of the function being called.
function: String,
/// The function name in the call expression.
call_span: Span,
/// The first argument whose type is unacceptable.
arg_span: Span,
/// The index of the first argument whose type is unacceptable.
arg_index: u32,
/// That argument's actual type.
arg_ty: String,
/// The set of argument types that would have been accepted for
/// this argument, given the prior arguments.
allowed: Vec<String>,
},
/// A value passed to a builtin function has a type that is not
/// accepted, given the earlier arguments' types.
InconsistentArgumentType {
/// The name of the function being called.
function: String,
/// The function name in the call expression.
call_span: Span,
/// The first unacceptable argument.
arg_span: Span,
/// The index of the first unacceptable argument.
arg_index: u32,
/// The actual type of the first unacceptable argument.
arg_ty: String,
/// The prior argument whose type made the `arg_span` argument
/// unacceptable.
inconsistent_span: Span,
/// The index of the `inconsistent_span` argument.
inconsistent_index: u32,
/// The type of the `inconsistent_span` argument.
inconsistent_ty: String,
/// The types that would have been accepted instead of the
/// first unacceptable argument.
allowed: Vec<String>,
},
FunctionReturnsVoid(Span),
FunctionMustUseUnused(Span),
FunctionMustUseReturnsVoid(Span, Span),
@@ -402,7 +471,8 @@ impl<'a> Error<'a> {
"workgroup size separator (`,`) or a closing parenthesis".to_string()
}
ExpectedToken::GlobalItem => concat!(
"global item (`struct`, `const`, `var`, `alias`, `fn`, `diagnostic`, `enable`, `requires`, `;`) ",
"global item (`struct`, `const`, `var`, `alias`, ",
"`fn`, `diagnostic`, `enable`, `requires`, `;`) ",
"or the end of the file"
)
.to_string(),
@@ -831,6 +901,74 @@ impl<'a> Error<'a> {
labels: vec![(span, "wrong number of arguments".into())],
notes: vec![],
},
Error::TooManyArguments {
ref function,
call_span,
arg_span,
max_arguments,
} => ParseError {
message: format!("too many arguments passed to `{function}`"),
labels: vec![
(call_span, "".into()),
(arg_span, format!("unexpected argument #{}", max_arguments + 1).into())
],
notes: vec![
format!("The `{function}` function accepts at most {max_arguments} argument(s)")
],
},
Error::WrongArgumentType {
ref function,
call_span,
arg_span,
arg_index,
ref arg_ty,
ref allowed,
} => {
let message = format!(
"wrong type passed as argument #{} to `{function}`",
arg_index + 1,
);
let labels = vec![
(call_span, "".into()),
(arg_span, format!("argument #{} has type `{arg_ty}`", arg_index + 1).into())
];
let mut notes = vec![];
notes.push(format!("`{function}` accepts the following types for argument #{}:", arg_index + 1));
notes.extend(allowed.iter().map(|ty| format!("allowed type: {ty}")));
ParseError { message, labels, notes }
},
Error::InconsistentArgumentType {
ref function,
call_span,
arg_span,
arg_index,
ref arg_ty,
inconsistent_span,
inconsistent_index,
ref inconsistent_ty,
ref allowed
} => {
let message = format!(
"inconsistent type passed as argument #{} to `{function}`",
arg_index + 1,
);
let labels = vec![
(call_span, "".into()),
(arg_span, format!("argument #{} has type {arg_ty}", arg_index + 1).into()),
(inconsistent_span, format!(
"this argument has type {inconsistent_ty}, which constrains subsequent arguments"
).into()),
];
let mut notes = vec![
format!("Because argument #{} has type {inconsistent_ty}, only the following types", inconsistent_index + 1),
format!("(or types that automatically convert to them) are accepted for argument #{}:", arg_index + 1),
];
notes.extend(allowed.iter().map(|ty| format!("allowed type: {ty}")));
ParseError { message, labels, notes }
}
Error::FunctionReturnsVoid(span) => ParseError {
message: "function does not return any value".to_string(),
labels: vec![(span, "".into())],

View File

@@ -167,11 +167,25 @@ impl<'source> Lowerer<'source, '_> {
// Empty constructor
(Components::None, dst_ty) => match dst_ty {
Constructor::Type((result_ty, _)) => {
return ctx.append_expression(crate::Expression::ZeroValue(result_ty), span)
expr = crate::Expression::ZeroValue(result_ty);
}
Constructor::PartialVector { .. }
| Constructor::PartialMatrix { .. }
| Constructor::PartialArray => {
Constructor::PartialVector { size } => {
// vec2(), vec3(), vec4() return vectors of abstractInts; the same
// is not true of the similar constructors for matrices or arrays.
// See https://www.w3.org/TR/WGSL/#vec2-builtin et seq.
let result_ty = ctx.module.types.insert(
crate::Type {
name: None,
inner: crate::TypeInner::Vector {
size,
scalar: crate::Scalar::ABSTRACT_INT,
},
},
span,
);
expr = crate::Expression::ZeroValue(result_ty);
}
Constructor::PartialMatrix { .. } | Constructor::PartialArray => {
// We have no arguments from which to infer the result type, so
// partial constructors aren't acceptable here.
return Err(Box::new(Error::TypeNotInferable(ty_span)));
@@ -536,8 +550,14 @@ impl<'source> Lowerer<'source, '_> {
// ERRORS
// Bad conversion (type cast)
(Components::One { span, ty_inner, .. }, constructor) => {
let from_type = ctx.type_inner_to_string(ty_inner);
(
Components::One {
span, component, ..
},
constructor,
) => {
let component_ty = &ctx.typifier()[component];
let from_type = ctx.type_resolution_to_string(component_ty);
return Err(Box::new(Error::BadTypeCast {
span,
from_type,

View File

@@ -71,7 +71,7 @@ impl<'source> super::ExpressionContext<'source, '_, '_> {
self.convert_leaf_scalar(expr, expr_span, goal_scalar)
}
/// Try to convert `expr`'s leaf scalar to `goal` using automatic conversions.
/// Try to convert `expr`'s leaf scalar to `goal_scalar` using automatic conversions.
///
/// If no conversions are necessary, return `expr` unchanged.
///
@@ -311,17 +311,19 @@ impl<'source> super::ExpressionContext<'source, '_, '_> {
I::IntoIter: Clone, // for debugging
{
let types = &self.module.types;
let mut inners = components
.into_iter()
.map(|&c| self.typifier()[c].inner_with(types));
let components_iter = components.into_iter();
log::debug!(
"wgsl automatic_conversion_consensus: {}",
inners
components_iter
.clone()
.map(|inner| self.type_inner_to_string(inner))
.map(|&expr| {
let res = &self.typifier()[expr];
self.type_resolution_to_string(res)
})
.collect::<Vec<String>>()
.join(", ")
);
let mut inners = components_iter.map(|&c| self.typifier()[c].inner_with(types));
let mut best = inners.next().unwrap().scalar().ok_or(0_usize)?;
for (inner, i) in inners.zip(1..) {
let scalar = inner.scalar().ok_or(i)?;
@@ -339,96 +341,6 @@ impl<'source> super::ExpressionContext<'source, '_, '_> {
}
impl crate::TypeInner {
/// Determine whether `self` automatically converts to `goal`.
///
/// If WGSL's automatic conversions (excluding the Load Rule) will
/// convert `self` to `goal`, then return a pair `(from, to)`,
/// where `from` and `to` are the scalar types of the leaf values
/// of `self` and `goal`.
///
/// This function assumes that `self` and `goal` are different
/// types. Callers should first check whether any conversion is
/// needed at all.
///
/// If the automatic conversions cannot convert `self` to `goal`,
/// return `None`.
fn automatically_converts_to(
&self,
goal: &Self,
types: &crate::UniqueArena<crate::Type>,
) -> Option<(crate::Scalar, crate::Scalar)> {
use crate::ScalarKind as Sk;
use crate::TypeInner as Ti;
// Automatic conversions only change the scalar type of a value's leaves
// (e.g., `vec4<AbstractFloat>` to `vec4<f32>`), never the type
// constructors applied to those scalar types (e.g., never scalar to
// `vec4`, or `vec2` to `vec3`). So first we check that the type
// constructors match, extracting the leaf scalar types in the process.
let expr_scalar;
let goal_scalar;
match (self, goal) {
(&Ti::Scalar(expr), &Ti::Scalar(goal)) => {
expr_scalar = expr;
goal_scalar = goal;
}
(
&Ti::Vector {
size: expr_size,
scalar: expr,
},
&Ti::Vector {
size: goal_size,
scalar: goal,
},
) if expr_size == goal_size => {
expr_scalar = expr;
goal_scalar = goal;
}
(
&Ti::Matrix {
rows: expr_rows,
columns: expr_columns,
scalar: expr,
},
&Ti::Matrix {
rows: goal_rows,
columns: goal_columns,
scalar: goal,
},
) if expr_rows == goal_rows && expr_columns == goal_columns => {
expr_scalar = expr;
goal_scalar = goal;
}
(
&Ti::Array {
base: expr_base,
size: expr_size,
stride: _,
},
&Ti::Array {
base: goal_base,
size: goal_size,
stride: _,
},
) if expr_size == goal_size => {
return types[expr_base]
.inner
.automatically_converts_to(&types[goal_base].inner, types);
}
_ => return None,
}
match (expr_scalar.kind, goal_scalar.kind) {
(Sk::AbstractFloat, Sk::Float) => {}
(Sk::AbstractInt, Sk::Sint | Sk::Uint | Sk::AbstractFloat | Sk::Float) => {}
_ => return None,
}
log::trace!(" okay: expr {expr_scalar:?}, goal {goal_scalar:?}");
Some((expr_scalar, goal_scalar))
}
fn automatically_convertible_scalar(
&self,
types: &crate::UniqueArena<crate::Type>,

Some files were not shown because too many files have changed in this diff Show More