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:
@@ -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
19
Cargo.lock
generated
@@ -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",
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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]]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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_"]
|
||||
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -118,3 +118,4 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,distance:values:*]
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,dot:values:*]
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,faceForward:values:*]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,ldexp:partial_values:*]
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,reflect:values:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
expected: FAIL
|
||||
|
||||
[:use=true]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,transpose:return:*]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -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:*]
|
||||
|
||||
@@ -104,7 +104,6 @@
|
||||
[:test="init_let"]
|
||||
|
||||
[:test="init_let_type"]
|
||||
expected: FAIL
|
||||
|
||||
[:test="init_phony"]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1041,7 +1041,6 @@
|
||||
expected: FAIL
|
||||
|
||||
[:case="contents_rhs_pointer_swizzle_uniform"]
|
||||
expected: FAIL
|
||||
|
||||
[:case="contents_scalar_alias_nonuniform1"]
|
||||
expected: FAIL
|
||||
|
||||
2
third_party/rust/naga/.cargo-checksum.json
vendored
2
third_party/rust/naga/.cargo-checksum.json
vendored
File diff suppressed because one or more lines are too long
25
third_party/rust/naga/Cargo.toml
vendored
25
third_party/rust/naga/Cargo.toml
vendored
@@ -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",
|
||||
]
|
||||
|
||||
3
third_party/rust/naga/src/back/glsl/mod.rs
vendored
3
third_party/rust/naga/src/back/glsl/mod.rs
vendored
@@ -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();
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
4
third_party/rust/naga/src/back/mod.rs
vendored
4
third_party/rust/naga/src/back/mod.rs
vendored
@@ -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<'_> {
|
||||
|
||||
14
third_party/rust/naga/src/back/msl/mod.rs
vendored
14
third_party/rust/naga/src/back/msl/mod.rs
vendored
@@ -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::{
|
||||
|
||||
358
third_party/rust/naga/src/back/msl/writer.rs
vendored
358
third_party/rust/naga/src/back/msl/writer.rs
vendored
@@ -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,13 +1588,31 @@ impl<W: Write> Writer<W> {
|
||||
write!(self.out, "{value}u")?;
|
||||
}
|
||||
crate::Literal::I32(value) => {
|
||||
write!(self.out, "{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) => {
|
||||
write!(self.out, "{value}L")?;
|
||||
// `-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,68 +2768,44 @@ 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 {
|
||||
write!(self.out, "{level}{prefix}")?;
|
||||
check_written = true;
|
||||
}
|
||||
|
||||
// Check that the index falls within bounds. Do this with a single
|
||||
// comparison, by casting the index to `uint` first, so that negative
|
||||
// indices become large positive values.
|
||||
write!(self.out, "uint(")?;
|
||||
self.put_index(index, context, true)?;
|
||||
self.out.write_str(") < ")?;
|
||||
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(),
|
||||
)
|
||||
})?;
|
||||
write!(self.out, "1 + ")?;
|
||||
self.put_dynamic_array_max_index(global, context)?
|
||||
}
|
||||
}
|
||||
}
|
||||
if check_written {
|
||||
write!(self.out, " && ")?;
|
||||
} else {
|
||||
write!(self.out, "{level}{prefix}")?;
|
||||
check_written = true;
|
||||
}
|
||||
|
||||
chain = base
|
||||
// Check that the index falls within bounds. Do this with a single
|
||||
// comparison, by casting the index to `uint` first, so that negative
|
||||
// indices become large positive values.
|
||||
write!(self.out, "uint(")?;
|
||||
self.put_index(index, context, true)?;
|
||||
self.out.write_str(") < ")?;
|
||||
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())
|
||||
})?;
|
||||
write!(self.out, "1 + ")?;
|
||||
self.put_dynamic_array_max_index(global, context)?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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,36 +6494,62 @@ 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 {
|
||||
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 {
|
||||
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 {
|
||||
write!(
|
||||
self.out,
|
||||
", {}",
|
||||
if i == 3 { one_value } else { zero_value }
|
||||
)?;
|
||||
}
|
||||
write!(self.out, ")")?;
|
||||
}
|
||||
Ordering::Less => {
|
||||
// Truncate to the first `am.dimension` components
|
||||
write!(
|
||||
self.out,
|
||||
", {}",
|
||||
if i == 3 { one_value } else { zero_value }
|
||||
".{}",
|
||||
&"xyzw"[0..usize::try_from(am.dimension).unwrap()]
|
||||
)?;
|
||||
}
|
||||
write!(self.out, ")")?;
|
||||
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, "}}")?;
|
||||
|
||||
44
third_party/rust/naga/src/back/wgsl/writer.rs
vendored
44
third_party/rust/naga/src/back/wgsl/writer.rs
vendored
@@ -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");
|
||||
}
|
||||
|
||||
126
third_party/rust/naga/src/common/diagnostic_debug.rs
vendored
Normal file
126
third_party/rust/naga/src/common/diagnostic_debug.rs
vendored
Normal 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 {}
|
||||
120
third_party/rust/naga/src/common/diagnostic_display.rs
vendored
Normal file
120
third_party/rust/naga/src/common/diagnostic_display.rs
vendored
Normal 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(())
|
||||
}
|
||||
}
|
||||
6
third_party/rust/naga/src/common/mod.rs
vendored
6
third_party/rust/naga/src/common/mod.rs
vendored
@@ -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 {
|
||||
|
||||
33
third_party/rust/naga/src/common/predeclared.rs
vendored
Normal file
33
third_party/rust/naga/src/common/predeclared.rs
vendored
Normal 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}"),
|
||||
}
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
128
third_party/rust/naga/src/common/wgsl/types.rs
vendored
128
third_party/rust/naga/src/common/wgsl/types.rs
vendored
@@ -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:?}}}")
|
||||
}
|
||||
}
|
||||
|
||||
26
third_party/rust/naga/src/front/type_gen.rs
vendored
26
third_party/rust/naga/src/front/type_gen.rs
vendored
@@ -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 {
|
||||
|
||||
140
third_party/rust/naga/src/front/wgsl/error.rs
vendored
140
third_party/rust/naga/src/front/wgsl/error.rs
vendored
@@ -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())],
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user