forked from mirrors/gecko-dev
Bug 1887909 - update WGPU to 0c5bebca514eb06d9387f87666c1c658f3f673b4 (trunk as of 2024-04-02) r=webgpu-reviewers,supply-chain-reviewers,nical
Expected CTS test outcomes were updated using `moz-webgpu-cts` 0.7.0; concretely, using `moz-webgpu-cts process-reports --glob … --preset new-fx` with [try:cc3d56737b79](https://treeherder.mozilla.org/jobs?repo=try&tier=1%2C2%2C3&revision=cc3d56737b797ddc44d576d342330b9b92b54697). Differential Revision: https://phabricator.services.mozilla.com/D205725
This commit is contained in:
parent
4049993f24
commit
9c33b8c056
96 changed files with 3000 additions and 2222 deletions
|
|
@ -25,9 +25,9 @@ git = "https://github.com/franziskuskiefer/cose-rust"
|
|||
rev = "43c22248d136c8b38fe42ea709d08da6355cf04b"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf"]
|
||||
[source."git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4"]
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/glandium/mio?rev=9a2ef335c366044ffe73b1c4acabe50a1daefe05"]
|
||||
|
|
|
|||
10
Cargo.lock
generated
10
Cargo.lock
generated
|
|
@ -1196,7 +1196,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "d3d12"
|
||||
version = "0.19.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf#152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4#0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
dependencies = [
|
||||
"bitflags 2.4.1",
|
||||
"libloading",
|
||||
|
|
@ -3917,7 +3917,7 @@ checksum = "a2983372caf4480544083767bf2d27defafe32af49ab4df3a0b7fc90793a3664"
|
|||
[[package]]
|
||||
name = "naga"
|
||||
version = "0.19.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf#152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4#0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bit-set",
|
||||
|
|
@ -6576,7 +6576,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "wgpu-core"
|
||||
version = "0.19.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf#152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4#0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bit-vec",
|
||||
|
|
@ -6603,7 +6603,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "wgpu-hal"
|
||||
version = "0.19.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf#152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4#0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"arrayvec",
|
||||
|
|
@ -6642,7 +6642,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "wgpu-types"
|
||||
version = "0.19.0"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=152a94bc6c502226d9871f28e35db0b755ea35bf#152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
source = "git+https://github.com/gfx-rs/wgpu?rev=0c5bebca514eb06d9387f87666c1c658f3f673b4#0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
dependencies = [
|
||||
"bitflags 2.4.1",
|
||||
"js-sys",
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ default = []
|
|||
[dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
# TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182
|
||||
features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info"]
|
||||
|
||||
|
|
@ -26,37 +26,37 @@ features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info"
|
|||
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc]
|
||||
package = "wgpu-core"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
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 = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
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 = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
features = ["vulkan"]
|
||||
|
||||
[dependencies.wgt]
|
||||
package = "wgpu-types"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
|
||||
[dependencies.wgh]
|
||||
package = "wgpu-hal"
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
features = ["windows_rs"]
|
||||
|
||||
[target.'cfg(windows)'.dependencies.d3d12]
|
||||
git = "https://github.com/gfx-rs/wgpu"
|
||||
rev = "152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
rev = "0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
winapi = "0.3"
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ origin:
|
|||
|
||||
# Human-readable identifier for this version/release
|
||||
# Generally "version NNN", "tag SSS", "bookmark SSS"
|
||||
release: 152a94bc6c502226d9871f28e35db0b755ea35bf (2024-03-18T14:53:41Z).
|
||||
release: 0c5bebca514eb06d9387f87666c1c658f3f673b4 (2024-04-02T20:12:28Z).
|
||||
|
||||
# Revision to pull in
|
||||
# Must be a long or short commit SHA (long preferred)
|
||||
revision: 152a94bc6c502226d9871f28e35db0b755ea35bf
|
||||
revision: 0c5bebca514eb06d9387f87666c1c658f3f673b4
|
||||
|
||||
license: ['MIT', 'Apache-2.0']
|
||||
|
||||
|
|
|
|||
|
|
@ -1329,7 +1329,7 @@ who = [
|
|||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.7.0 -> 0.19.0@git:152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
delta = "0.7.0 -> 0.19.0@git:0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
importable = false
|
||||
|
||||
[[audits.darling]]
|
||||
|
|
@ -2683,7 +2683,7 @@ who = [
|
|||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.14.0 -> 0.19.0@git:152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
delta = "0.14.0 -> 0.19.0@git:0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
importable = false
|
||||
|
||||
[[audits.net2]]
|
||||
|
|
@ -4497,7 +4497,7 @@ who = [
|
|||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.18.0 -> 0.19.0@git:152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
delta = "0.18.0 -> 0.19.0@git:0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-hal]]
|
||||
|
|
@ -4551,7 +4551,7 @@ who = [
|
|||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.18.0 -> 0.19.0@git:152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
delta = "0.18.0 -> 0.19.0@git:0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
importable = false
|
||||
|
||||
[[audits.wgpu-types]]
|
||||
|
|
@ -4605,7 +4605,7 @@ who = [
|
|||
"Erich Gubler <erichdongubler@gmail.com>",
|
||||
]
|
||||
criteria = "safe-to-deploy"
|
||||
delta = "0.18.0 -> 0.19.0@git:152a94bc6c502226d9871f28e35db0b755ea35bf"
|
||||
delta = "0.18.0 -> 0.19.0@git:0c5bebca514eb06d9387f87666c1c658f3f673b4"
|
||||
importable = false
|
||||
|
||||
[[audits.whatsys]]
|
||||
|
|
|
|||
|
|
@ -303,7 +303,8 @@
|
|||
|
||||
[:mapAsyncRegionLeft="explicit-expand";mapAsyncRegionRight="minimal"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
|
@ -347,21 +348,20 @@
|
|||
[:mapAsyncRegionLeft="explicit-expand";mapAsyncRegionRight="default-expand"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:mapAsyncRegionLeft="explicit-expand";mapAsyncRegionRight="explicit-expand"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [PASS, FAIL]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:mapAsyncRegionLeft="explicit-expand";mapAsyncRegionRight="minimal"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:mapAsyncRegionLeft="minimal";mapAsyncRegionRight="default-expand"]
|
||||
|
|
|
|||
|
|
@ -1714,6 +1714,7 @@
|
|||
[:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="rgb10a2unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="rgb10a2unorm";dimension="3d"]
|
||||
expected:
|
||||
|
|
@ -4665,19 +4666,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bgra8unorm-srgb";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bgra8unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bgra8unorm-srgb";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -4755,19 +4758,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16float";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16float";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16float";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -4775,19 +4780,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16sint";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16sint";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16sint";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -4795,19 +4802,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16uint";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16uint";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="r16uint";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -5005,19 +5014,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16sint";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16sint";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16sint";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -5025,19 +5036,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16uint";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16uint";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg16uint";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -7307,257 +7320,300 @@
|
|||
|
||||
[cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow:*]
|
||||
expected:
|
||||
if os == "linux" and debug: [OK, TIMEOUT]
|
||||
if os == "linux" and not debug: TIMEOUT
|
||||
if os == "mac" and not debug: TIMEOUT
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x10-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x10-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x5-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x5-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x6-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x6-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x8-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-10x8-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-12x10-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-12x10-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-12x12-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-12x12-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-4x4-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-4x4-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-5x4-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-5x4-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-5x5-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-5x5-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-6x5-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-6x5-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-6x6-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-6x6-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x5-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x5-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x6-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x6-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x8-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="astc-8x8-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc1-rgba-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc1-rgba-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc2-rgba-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc2-rgba-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc3-rgba-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc3-rgba-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc4-r-snorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc4-r-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc5-rg-snorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc5-rg-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc6h-rgb-float";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc6h-rgb-ufloat";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc7-rgba-unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="bc7-rgba-unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -7600,60 +7656,70 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="eac-r11snorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="eac-r11unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="eac-rg11snorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="eac-rg11unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgb8a1unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgb8a1unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgb8unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgb8unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgba8unorm";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="etc2-rgba8unorm-srgb";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -7840,18 +7906,21 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg11b10ufloat";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg11b10ufloat";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rg11b10ufloat";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -8074,24 +8143,28 @@
|
|||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rgb10a2unorm";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rgb9e5ufloat";dimension="1d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rgb9e5ufloat";dimension="2d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:initMethod="CopyB2T";checkMethod="FullCopyT2B";format="rgb9e5ufloat";dimension="3d"]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
|
|||
|
|
@ -1238,20 +1238,14 @@
|
|||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="t2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="write-buffer";writeContext="queue"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-pass-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
|
|
@ -1280,7 +1274,11 @@
|
|||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="queue-op";readOp="input-indirect";readContext="render-bundle-encoder";writeOp="write-buffer";writeContext="queue"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="queue-op";readOp="input-indirect";readContext="render-pass-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
|
|
|
|||
|
|
@ -60,7 +60,11 @@
|
|||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="command-buffer";readOp="input-index";readContext="render-bundle-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="command-buffer";readOp="input-index";readContext="render-bundle-encoder";writeOp="t2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
|
|
@ -441,7 +445,11 @@
|
|||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="command-buffer";readOp="input-index";readContext="render-bundle-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="command-buffer";readOp="input-index";readContext="render-bundle-encoder";writeOp="t2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
|
|
@ -454,7 +462,11 @@
|
|||
expected: FAIL
|
||||
|
||||
[:boundary="command-buffer";readOp="input-index";readContext="render-pass-encoder";writeOp="t2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:boundary="command-buffer";readOp="input-indirect";readContext="render-bundle-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected:
|
||||
|
|
@ -632,13 +644,10 @@
|
|||
[:boundary="queue-op";readOp="constant-uniform";readContext="render-pass-encoder";writeOp="write-buffer";writeContext="queue"]
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="t2b-copy";writeContext="command-encoder"]
|
||||
expected: FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-bundle-encoder";writeOp="write-buffer";writeContext="queue"]
|
||||
expected: FAIL
|
||||
|
||||
[:boundary="queue-op";readOp="input-index";readContext="render-pass-encoder";writeOp="b2b-copy";writeContext="command-encoder"]
|
||||
|
||||
|
|
|
|||
|
|
@ -66,8 +66,7 @@
|
|||
[:boundary="command-buffer";read={"op":"t2b-copy","in":"command-encoder"};write={"op":"attachment-resolve","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";read={"op":"t2b-copy","in":"command-encoder"};write={"op":"attachment-store","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -77,8 +76,7 @@
|
|||
[:boundary="command-buffer";read={"op":"t2b-copy","in":"command-encoder"};write={"op":"b2t-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";read={"op":"t2b-copy","in":"command-encoder"};write={"op":"storage","in":"compute-pass-encoder"}]
|
||||
expected:
|
||||
|
|
@ -101,8 +99,7 @@
|
|||
[:boundary="command-buffer";read={"op":"t2b-copy","in":"command-encoder"};write={"op":"t2t-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";read={"op":"t2t-copy","in":"command-encoder"};write={"op":"attachment-resolve","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -322,8 +319,7 @@
|
|||
[:boundary="command-buffer";write={"op":"attachment-resolve","in":"command-encoder"};read={"op":"t2b-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";write={"op":"attachment-resolve","in":"command-encoder"};read={"op":"t2t-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -340,8 +336,7 @@
|
|||
[:boundary="command-buffer";write={"op":"attachment-store","in":"command-encoder"};read={"op":"t2b-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";write={"op":"attachment-store","in":"command-encoder"};read={"op":"t2t-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -430,14 +425,12 @@
|
|||
[:boundary="command-buffer";write={"op":"t2t-copy","in":"command-encoder"};read={"op":"sample","in":"render-bundle-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";write={"op":"t2t-copy","in":"command-encoder"};read={"op":"sample","in":"render-pass-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="command-buffer";write={"op":"t2t-copy","in":"command-encoder"};read={"op":"t2b-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -489,7 +482,7 @@
|
|||
[:boundary="queue-op";write={"op":"attachment-store","in":"command-encoder"};read={"op":"t2b-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="queue-op";write={"op":"attachment-store","in":"command-encoder"};read={"op":"t2t-copy","in":"command-encoder"}]
|
||||
expected:
|
||||
|
|
@ -578,7 +571,7 @@
|
|||
[:boundary="queue-op";write={"op":"t2t-copy","in":"command-encoder"};read={"op":"sample","in":"render-bundle-encoder"}]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
|
||||
[:boundary="queue-op";write={"op":"t2t-copy","in":"command-encoder"};read={"op":"sample","in":"render-pass-encoder"}]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -6018,6 +6018,7 @@
|
|||
[:component="color";srcFactor="src-alpha";dstFactor="zero";operation="add"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:component="color";srcFactor="src-alpha";dstFactor="zero";operation="reverse-subtract"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -3785,6 +3785,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=32;index_buffer_offset=0;base_vertex=9]
|
||||
|
|
@ -3792,6 +3793,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:first=3;count=6;first_instance=0;instance_count=1;indexed=true;indirect=false;vertex_buffer_offset=32;index_buffer_offset=16;base_vertex=0]
|
||||
|
|
|
|||
|
|
@ -741,16 +741,14 @@
|
|||
[:dimension="2d";readMethod="CopyToTexture";format="depth32float"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="CopyToTexture";format="depth32float-stencil8"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -1077,7 +1075,7 @@
|
|||
[:dimension="2d";readMethod="Sample";format="bgra8unorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -1085,7 +1083,7 @@
|
|||
[:dimension="2d";readMethod="Sample";format="bgra8unorm-srgb"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -1101,12 +1099,14 @@
|
|||
[:dimension="2d";readMethod="Sample";format="r16sint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="r16uint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -1134,25 +1134,28 @@
|
|||
[:dimension="2d";readMethod="Sample";format="r8sint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="r8snorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="r8uint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="r8unorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -1207,25 +1210,28 @@
|
|||
[:dimension="2d";readMethod="Sample";format="rg8sint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rg8snorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rg8uint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rg8unorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -1294,25 +1300,28 @@
|
|||
[:dimension="2d";readMethod="Sample";format="rgba8sint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rgba8snorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rgba8uint"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";readMethod="Sample";format="rgba8unorm"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -1320,7 +1329,7 @@
|
|||
[:dimension="2d";readMethod="Sample";format="rgba8unorm-srgb"]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
|
|||
|
|
@ -176,71 +176,61 @@
|
|||
[:format="float16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="float16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="float32"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="float32x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="float32x3"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="float32x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint32"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint32x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint32x3"]
|
||||
|
|
@ -272,15 +262,13 @@
|
|||
[:format="snorm16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="snorm16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="snorm8x2"]
|
||||
|
|
@ -304,36 +292,31 @@
|
|||
[:format="uint16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint32"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint32x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint32x3"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint32x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint8x2"]
|
||||
|
|
@ -352,15 +335,13 @@
|
|||
[:format="unorm16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="unorm16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="unorm8x2"]
|
||||
|
|
@ -592,15 +573,13 @@
|
|||
[:format="sint16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="sint32"]
|
||||
|
|
@ -668,15 +647,13 @@
|
|||
[:format="uint16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="uint32"]
|
||||
|
|
@ -720,15 +697,13 @@
|
|||
[:format="unorm16x2"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="unorm16x4"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [PASS, FAIL]
|
||||
if os == "linux": [PASS, FAIL]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:format="unorm8x2"]
|
||||
|
|
|
|||
|
|
@ -2597,21 +2597,24 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="forward";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleFragmentStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
|
|
@ -2634,21 +2637,24 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="backward";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="forward";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
|
|
@ -2662,14 +2668,16 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=true;bindingCombination="compute";order="backward";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -2550,7 +2550,8 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="backward";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
|
|
@ -2578,14 +2579,16 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="fragment";order="shiftByHalf";bindGroupTest="sameGroup"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertex";order="backward";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
|
|
@ -2706,7 +2709,8 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="betweenDefaultAndMaximum";testValueName="overLimit";async=false;bindingCombination="vertexAndFragmentWithPossibleVertexStageOverflow";order="shiftByHalf";bindGroupTest="differentGroups"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -1503,7 +1503,7 @@
|
|||
[:limitTest="overMaximum";testValueName="overLimit";visibility=6;type="read-only-storage";order="backward"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="overMaximum";testValueName="overLimit";visibility=6;type="read-only-storage";order="forward"]
|
||||
expected:
|
||||
|
|
@ -6142,7 +6142,8 @@
|
|||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="atMaximum";testValueName="overLimit";visibility=4;type="storage";order="forward"]
|
||||
expected:
|
||||
|
|
@ -6154,7 +6155,8 @@
|
|||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:limitTest="atMaximum";testValueName="overLimit";visibility=5;type="read-only-storage";order="backward"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -11200,7 +11200,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";format="bc4-r-unorm";sizeVariant=[{"mult":0,"add":1},{"mult":0,"add":4},{"mult":1,"add":-1}\]]
|
||||
|
|
@ -11291,7 +11291,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:dimension="2d";format="bc4-r-unorm";sizeVariant=[{"mult":0,"add":4},{"mult":0,"add":4},{"mult":1,"add":1}\]]
|
||||
|
|
|
|||
|
|
@ -18,9 +18,7 @@
|
|||
[cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:index_buffer_OOB:*]
|
||||
[:bufferSizeInElements=100;bindingSizeInElements=10;drawIndexCount=10;drawType="drawIndexed"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:bufferSizeInElements=100;bindingSizeInElements=10;drawIndexCount=10;drawType="drawIndexedIndirect"]
|
||||
|
|
@ -32,9 +30,7 @@
|
|||
|
||||
[:bufferSizeInElements=100;bindingSizeInElements=10;drawIndexCount=11;drawType="drawIndexed"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:bufferSizeInElements=100;bindingSizeInElements=10;drawIndexCount=11;drawType="drawIndexedIndirect"]
|
||||
|
|
@ -46,9 +42,7 @@
|
|||
|
||||
[:bufferSizeInElements=10;bindingSizeInElements=10;drawIndexCount=10;drawType="drawIndexed"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:bufferSizeInElements=10;bindingSizeInElements=10;drawIndexCount=10;drawType="drawIndexedIndirect"]
|
||||
|
|
@ -60,9 +54,7 @@
|
|||
|
||||
[:bufferSizeInElements=10;bindingSizeInElements=10;drawIndexCount=11;drawType="drawIndexed"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:bufferSizeInElements=10;bindingSizeInElements=10;drawIndexCount=11;drawType="drawIndexedIndirect"]
|
||||
|
|
@ -163,6 +155,7 @@
|
|||
[cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:vertex_buffer_OOB:*]
|
||||
expected:
|
||||
if os == "win": TIMEOUT
|
||||
if os == "linux" and not debug: [OK, TIMEOUT]
|
||||
[:type="draw";VBSize="exact";IBSize="exact";AStride="exact"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
@ -261,7 +254,11 @@
|
|||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexed";VBSize="zero";IBSize="exact";AStride="exact"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexed";VBSize="zero";IBSize="exact";AStride="oversize"]
|
||||
expected:
|
||||
|
|
@ -272,7 +269,11 @@
|
|||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexed";VBSize="zero";IBSize="exact";AStride="zero"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="exact";IBSize="exact";AStride="exact"]
|
||||
expected:
|
||||
|
|
@ -305,7 +306,8 @@
|
|||
[:type="drawIndexedIndirect";VBSize="exact";IBSize="oneTooSmall";AStride="oversize"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="exact";IBSize="oneTooSmall";AStride="zero"]
|
||||
|
|
@ -339,37 +341,43 @@
|
|||
[:type="drawIndexedIndirect";VBSize="oneTooSmall";IBSize="exact";AStride="exact"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="oneTooSmall";IBSize="exact";AStride="oversize"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="oneTooSmall";IBSize="exact";AStride="zero"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="zero";IBSize="exact";AStride="exact"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="zero";IBSize="exact";AStride="oversize"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndexedIndirect";VBSize="zero";IBSize="exact";AStride="zero"]
|
||||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:type="drawIndirect";VBSize="exact";IBSize="exact";AStride="exact"]
|
||||
|
|
|
|||
|
|
@ -1,69 +1,133 @@
|
|||
[cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_binding_mismatch:*]
|
||||
expected:
|
||||
if os == "mac" and not debug: [OK, TIMEOUT]
|
||||
[:encoderType="compute%20pass";call="dispatch";callWithZero=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatch";callWithZero=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatchIndirect";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="compute%20pass";call="dispatchIndirect";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="draw";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="draw";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndexed";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndexed";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndexedIndirect";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndexedIndirect";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndirect";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20bundle";call="drawIndirect";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="draw";callWithZero=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="draw";callWithZero=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexed";callWithZero=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexed";callWithZero=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndexedIndirect";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndirect";callWithZero=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:encoderType="render%20pass";call="drawIndirect";callWithZero=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_resource_type_mismatch:*]
|
||||
|
|
@ -274,17 +338,22 @@
|
|||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:buffer_binding,render_pipeline:*]
|
||||
expected:
|
||||
if os == "mac" and not debug: [OK, TIMEOUT]
|
||||
[:type="read-only-storage"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:type="storage"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:type="uniform"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:empty_bind_group_layouts_requires_empty_bind_groups,compute_pass:*]
|
||||
|
|
|
|||
|
|
@ -7886,6 +7886,8 @@
|
|||
expected: FAIL
|
||||
|
||||
[:method="WriteTexture";format="rgba8uint";dimension="1d"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
|
||||
[:method="WriteTexture";format="rgba8uint";dimension="2d"]
|
||||
expected: FAIL
|
||||
|
|
|
|||
|
|
@ -4001,7 +4001,11 @@
|
|||
if os == "win": [PASS, FAIL]
|
||||
|
||||
[:method="CopyB2T";format="rgb10a2uint";depthOrArrayLayers=1;dimension="1d"]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:method="CopyB2T";format="rgb10a2uint";depthOrArrayLayers=1;dimension="2d"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -20,42 +20,52 @@
|
|||
[:attachmentCount=10]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=11]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=12]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=13]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=14]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=15]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=16]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=17]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=18]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=19]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=2]
|
||||
expected: FAIL
|
||||
|
|
@ -63,10 +73,12 @@
|
|||
[:attachmentCount=20]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=21]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=22]
|
||||
expected:
|
||||
|
|
@ -127,23 +139,44 @@
|
|||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:attachmentCount=4]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:attachmentCount=5]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:attachmentCount=6]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:attachmentCount=7]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:attachmentCount=8]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:attachmentCount=9]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,depth_format:*]
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,color_depth_mismatch:*]
|
||||
expected:
|
||||
if os == "mac" and debug: [OK, TIMEOUT]
|
||||
if os == "mac": [OK, 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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,layer_count:*]
|
||||
|
|
@ -65,11 +64,11 @@
|
|||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,one_depth_stencil_attachment:*]
|
||||
expected:
|
||||
if os == "mac" and not debug: [OK, TIMEOUT]
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,same_size:*]
|
||||
|
|
@ -95,212 +94,196 @@
|
|||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:*]
|
||||
expected:
|
||||
if os == "mac" and debug: [OK, TIMEOUT]
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:format="bgra8unorm"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="bgra8unorm-srgb"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r16float"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r16sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r16uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r32float"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r32sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r32uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r8sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r8uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="r8unorm"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg16float"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg16sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg16uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg32float"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg32sint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg32uint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg8sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg8uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rg8unorm"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgb10a2uint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgb10a2unorm"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba16float"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba16sint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba16uint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba32float"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba32sint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba32uint"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba8sint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba8uint"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba8unorm"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:format="rgba8unorm-srgb"]
|
||||
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": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,unaligned:*]
|
||||
expected:
|
||||
if os == "mac" and not debug: [OK, TIMEOUT]
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:formats=["r32float","rgba8unorm","rgba32float","r8unorm","r8unorm"\]]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:formats=["r8unorm","r32float","rgba8unorm","rgba32float","r8unorm"\]]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachments:*]
|
||||
|
|
@ -479,13 +462,12 @@
|
|||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,sample_counts_mismatch:*]
|
||||
expected:
|
||||
if os == "mac" and not debug: [OK, TIMEOUT]
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:occlusionQuerySet,query_set_type:*]
|
||||
|
|
@ -525,8 +507,13 @@
|
|||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,different_size:*]
|
||||
expected:
|
||||
if os == "mac": [OK, TIMEOUT]
|
||||
[:]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,error_state:*]
|
||||
|
|
@ -678,8 +665,14 @@
|
|||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,mipmap_level_count:*]
|
||||
expected:
|
||||
if os == "mac" and debug: [OK, TIMEOUT]
|
||||
[:]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
|
||||
[cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,sample_count:*]
|
||||
|
|
|
|||
|
|
@ -3055,6 +3055,7 @@
|
|||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="backPassOp";op="_undef_"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="backPassOp";op="decrement-clamp"]
|
||||
expected:
|
||||
|
|
@ -3084,14 +3085,17 @@
|
|||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="backPassOp";op="keep"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="backPassOp";op="replace"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="backPassOp";op="zero"]
|
||||
expected:
|
||||
if os == "win": [PASS, FAIL]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:isAsync=false;format="depth32float-stencil8";faceAndOpType="frontDepthFailOp";op="_undef_"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -2418,6 +2418,7 @@
|
|||
|
||||
[:view0Levels={"base":1,"count":2};view0Layers={"base":1,"count":2};view1Levels={"base":0,"count":1};view1Layers={"base":0,"count":1};aspect0="depth-only";aspect1="depth-only";inSamePass=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -321,7 +321,7 @@
|
|||
[:inputSource="storage_r";common_dim=3;x_rows=3;y_cols=3]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -330,7 +330,7 @@
|
|||
[:inputSource="storage_r";common_dim=3;x_rows=3;y_cols=4]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -655,32 +655,37 @@
|
|||
if os == "win" and debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=2;y_cols=4]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=3;y_cols=2]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=3;y_cols=3]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=3;y_cols=4]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=4;y_cols=2]
|
||||
expected:
|
||||
|
|
@ -853,56 +858,64 @@
|
|||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=2;x_rows=4]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=3;x_rows=2]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=3;x_rows=3]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=3;x_rows=4]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=4;x_rows=2]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=4;x_rows=3]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="const";common_dim=4;x_rows=4]
|
||||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="storage_r";common_dim=2;x_rows=2]
|
||||
|
|
@ -945,6 +958,7 @@
|
|||
expected:
|
||||
if os == "win": [PASS, FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="storage_r";common_dim=4;x_rows=3]
|
||||
expected:
|
||||
|
|
@ -1026,44 +1040,52 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=3]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=2;x_rows=4]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=3;x_rows=2]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="uniform";common_dim=3;x_rows=3]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="uniform";common_dim=3;x_rows=4]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:inputSource="uniform";common_dim=4;x_rows=2]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=4;x_rows=3]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [PASS, FAIL]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:inputSource="uniform";common_dim=4;x_rows=4]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -5262,24 +5262,28 @@
|
|||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=0]
|
||||
|
|
@ -5342,19 +5346,22 @@
|
|||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
|
|
@ -5367,7 +5374,8 @@
|
|||
expected:
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=false;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1]
|
||||
expected:
|
||||
|
|
@ -11886,14 +11894,14 @@
|
|||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32";additionalBuffers=4;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -11907,182 +11915,182 @@
|
|||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -12110,7 +12118,7 @@
|
|||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x2";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -12586,151 +12594,176 @@
|
|||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=false;offsetVertexBuffer=true;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=false;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=100]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=10000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=1000000]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=0;partialLastNumber=true;offsetVertexBuffer=true;errorScale=4]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=0]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=1]
|
||||
expected:
|
||||
if os == "win": [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:indexed=true;indirect=true;drawCallTestParameter="vertexCountInIndexBuffer";type="float32x4";additionalBuffers=4;partialLastNumber=false;offsetVertexBuffer=false;errorScale=100]
|
||||
|
|
|
|||
|
|
@ -768,7 +768,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
|
@ -777,7 +777,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
|
@ -786,7 +786,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
|
@ -795,7 +795,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
|
|
|||
|
|
@ -1927,7 +1927,7 @@
|
|||
[:lhs="variable_not_true";rhs="const_eq_literal_float_true";scope="function"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="variable_not_true";rhs="const_eq_literal_float_true";scope="module"]
|
||||
|
|
@ -1945,7 +1945,7 @@
|
|||
[:lhs="variable_not_true";rhs="const_eq_literal_int_false";scope="module"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="variable_not_true";rhs="const_eq_literal_int_true";scope="function"]
|
||||
|
|
@ -4317,7 +4317,8 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_false";rhs="const_eq_literal_int_true";scope="module"]
|
||||
expected:
|
||||
|
|
@ -4331,14 +4332,16 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_false";rhs="literal_false";scope="module"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_false";rhs="literal_not_false";scope="function"]
|
||||
expected:
|
||||
|
|
@ -4506,7 +4509,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="any_true";scope="module"]
|
||||
expected:
|
||||
|
|
@ -4514,7 +4517,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="binary_op_eq_const_false";scope="function"]
|
||||
expected:
|
||||
|
|
@ -4522,7 +4525,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="binary_op_eq_const_false";scope="module"]
|
||||
expected:
|
||||
|
|
@ -4530,7 +4533,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="binary_op_eq_const_true";scope="function"]
|
||||
expected:
|
||||
|
|
@ -4538,7 +4541,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="binary_op_eq_const_true";scope="module"]
|
||||
expected:
|
||||
|
|
@ -4546,7 +4549,7 @@
|
|||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
|
||||
[:lhs="literal_not_false";rhs="const_eq_literal_float_false";scope="function"]
|
||||
expected:
|
||||
|
|
@ -6680,7 +6683,7 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -6689,7 +6692,7 @@
|
|||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
|
|||
|
|
@ -19443,7 +19443,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19482,7 +19482,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19490,6 +19490,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19497,7 +19498,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19505,7 +19506,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19513,7 +19514,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19521,7 +19522,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19529,6 +19530,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19536,7 +19538,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19544,7 +19546,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19552,7 +19554,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19560,7 +19562,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19568,6 +19570,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19575,7 +19578,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19583,7 +19586,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19591,7 +19594,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19599,7 +19602,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19607,6 +19610,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19614,7 +19618,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19622,7 +19626,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19630,7 +19634,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19638,7 +19642,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19646,6 +19650,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19653,7 +19658,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19661,7 +19666,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19669,7 +19674,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19677,7 +19682,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19685,6 +19690,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19692,7 +19698,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19700,7 +19706,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19708,7 +19714,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19716,7 +19722,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19724,6 +19730,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19731,7 +19738,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19739,7 +19746,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19747,7 +19754,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19755,7 +19762,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19763,6 +19770,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19770,7 +19778,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19778,7 +19786,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19786,7 +19794,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19794,7 +19802,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19802,6 +19810,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19809,7 +19818,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19817,7 +19826,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19825,7 +19834,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19833,7 +19842,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19841,6 +19850,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19848,7 +19858,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19856,7 +19866,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -19864,7 +19874,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -20227,14 +20237,14 @@
|
|||
|
||||
[:case="let_3u";vector_decl="var";vector_width=3;element_type="f16"]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
||||
[:case="let_3u";vector_decl="var";vector_width=3;element_type="f32"]
|
||||
expected:
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
|
|
|
|||
|
|
@ -4418,14 +4418,16 @@
|
|||
[:stage="override";type="vec3%3Cf32%3E";value=-2207528.25]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec3%3Cf32%3E";value=-24413495296]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
|
|
@ -4805,7 +4807,8 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf16%3E";value=-2584]
|
||||
expected:
|
||||
|
|
@ -4847,14 +4850,16 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf16%3E";value=-7540]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf16%3E";value=-861.5]
|
||||
expected:
|
||||
|
|
@ -5400,7 +5405,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=2.9319629499658658e%2B26]
|
||||
expected:
|
||||
|
|
@ -5408,7 +5414,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=2.938735877055719e-39]
|
||||
expected:
|
||||
|
|
@ -5434,7 +5441,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=24413495296]
|
||||
expected:
|
||||
|
|
@ -5442,7 +5450,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=251846010601472]
|
||||
expected:
|
||||
|
|
@ -5450,7 +5459,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=2669923195007533000]
|
||||
expected:
|
||||
|
|
@ -5458,7 +5468,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=3.2024852974055647e%2B30]
|
||||
expected:
|
||||
|
|
@ -5466,7 +5477,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=3.3886565974372464e%2B34]
|
||||
expected:
|
||||
|
|
@ -5474,7 +5486,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=3.4028234663852886e%2B38]
|
||||
expected:
|
||||
|
|
@ -5482,7 +5495,8 @@
|
|||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="override";type="vec4%3Cf32%3E";value=5.877471754111438e-39]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -6006,6 +6006,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="bitcast";aliased=true]
|
||||
|
|
@ -6020,6 +6021,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="builtin_arg";aliased=true]
|
||||
|
|
@ -6027,6 +6029,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="compound_assign_lhs";aliased=false]
|
||||
|
|
@ -6064,6 +6067,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="convert";aliased=true]
|
||||
|
|
@ -6071,6 +6075,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="increment";aliased=false]
|
||||
|
|
@ -6094,6 +6099,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="index_access";aliased=true]
|
||||
|
|
@ -6101,6 +6107,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="let_init";aliased=false]
|
||||
|
|
@ -6108,6 +6115,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="let_init";aliased=true]
|
||||
|
|
@ -6115,6 +6123,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="function";a_use="var_init";b_use="no_access";aliased=false]
|
||||
|
|
@ -6192,6 +6201,7 @@
|
|||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:address_space="private";a_use="assign";b_use="assign";aliased=false]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -3677,7 +3677,7 @@
|
|||
[:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_type="vec4%3Cbool%3E"]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_type="vec4%3Cf32%3E"]
|
||||
|
|
|
|||
|
|
@ -6116,8 +6116,12 @@
|
|||
[:stage="vertex";a_kind="uniform";b_kind="texture_3d";a_group=3;b_group=0;a_binding=3;b_binding=0;usage="transitive"]
|
||||
|
||||
[:stage="vertex";a_kind="uniform";b_kind="texture_3d";a_group=3;b_group=0;a_binding=3;b_binding=3;usage="direct"]
|
||||
expected:
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="vertex";a_kind="uniform";b_kind="texture_3d";a_group=3;b_group=0;a_binding=3;b_binding=3;usage="transitive"]
|
||||
expected:
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:stage="vertex";a_kind="uniform";b_kind="texture_3d";a_group=3;b_group=3;a_binding=0;b_binding=0;usage="direct"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -7329,8 +7329,12 @@
|
|||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="minus"]
|
||||
expected:
|
||||
if debug: FAIL
|
||||
if not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="notequal"]
|
||||
expected:
|
||||
|
|
@ -7352,8 +7356,12 @@
|
|||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="plus"]
|
||||
expected:
|
||||
if debug: FAIL
|
||||
if not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="rem"]
|
||||
expected:
|
||||
|
|
@ -7384,8 +7392,12 @@
|
|||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="times"]
|
||||
expected:
|
||||
if debug: FAIL
|
||||
if not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:e1="nonuniform_struct";e2="nonuniform";op="xor"]
|
||||
expected:
|
||||
|
|
@ -7823,8 +7835,12 @@
|
|||
|
||||
[:e1="nonuniform_struct";e2="uniform";op="notequal"]
|
||||
expected:
|
||||
if debug: FAIL
|
||||
if not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: FAIL
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:e1="nonuniform_struct";e2="uniform";op="or"]
|
||||
expected:
|
||||
|
|
|
|||
|
|
@ -49,8 +49,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: CRASH
|
||||
if os == "win" and not debug: [TIMEOUT, ERROR]
|
||||
if os == "linux" and debug: ERROR
|
||||
if os == "linux" and not debug: [TIMEOUT, ERROR]
|
||||
if os == "linux": [TIMEOUT, ERROR]
|
||||
if os == "mac": [TIMEOUT, ERROR]
|
||||
[:canvasType="offscreen"]
|
||||
expected:
|
||||
|
|
@ -79,10 +78,12 @@
|
|||
[:canvasType="offscreen"]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [PASS, FAIL]
|
||||
if os == "linux" and not debug: FAIL
|
||||
|
||||
[:canvasType="onscreen"]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, FAIL]
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [PASS, FAIL]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
|
|
|||
|
|
@ -518,7 +518,8 @@
|
|||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="default";srcFlipYInCopy=true;dstFormat="r16float";dstPremultiplied=false]
|
||||
expected:
|
||||
|
|
@ -824,6 +825,8 @@
|
|||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="bgra8unorm";dstPremultiplied=true]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="bgra8unorm-srgb";dstPremultiplied=false]
|
||||
expected:
|
||||
|
|
@ -854,6 +857,8 @@
|
|||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rg16float";dstPremultiplied=true]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rg32float";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rg32float";dstPremultiplied=true]
|
||||
|
||||
|
|
@ -892,12 +897,20 @@
|
|||
if debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rgba8unorm";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rgba8unorm";dstPremultiplied=true]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rgba8unorm-srgb";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="none";orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="rgba8unorm-srgb";dstPremultiplied=true]
|
||||
expected:
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
|
||||
[:alpha="premultiply";orientation="flipY";colorSpaceConversion="default";srcFlipYInCopy=false;dstFormat="bgra8unorm";dstPremultiplied=false]
|
||||
expected: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -2261,7 +2274,7 @@
|
|||
[:orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="bgra8unorm-srgb";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:orientation="none";colorSpaceConversion="none";srcFlipYInCopy=true;dstFormat="bgra8unorm-srgb";dstPremultiplied=true]
|
||||
|
|
|
|||
|
|
@ -20,14 +20,16 @@
|
|||
[:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm";dstPremultiplied=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
|
|
@ -43,7 +45,8 @@
|
|||
[:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm-srgb";dstPremultiplied=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
|
|
@ -66,22 +69,46 @@
|
|||
expected: FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg16float";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg16float";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";dstPremultiplied=false]
|
||||
expected:
|
||||
|
|
@ -138,20 +165,33 @@
|
|||
if os == "mac" and not debug: FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=true;dstColorFormat="bgra8unorm";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
|
|
|
|||
|
|
@ -792,6 +792,7 @@
|
|||
expected:
|
||||
if os == "win": TIMEOUT
|
||||
if os == "linux": TIMEOUT
|
||||
if os == "mac" and debug: [OK, TIMEOUT]
|
||||
if os == "mac" and not debug: TIMEOUT
|
||||
[:canvasType="offscreen";contextName="webgl";dstColorFormat="bgra8unorm";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
|
|
@ -2033,6 +2034,7 @@
|
|||
expected:
|
||||
if os == "win": [TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";contextName="webgl2";dstColorFormat="rgba32float";srcPremultiplied=false;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
|
|
@ -2449,7 +2451,8 @@
|
|||
|
||||
[:canvasType="onscreen";contextName="webgl";dstColorFormat="rgb10a2unorm";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac": FAIL
|
||||
|
|
@ -2713,82 +2716,98 @@
|
|||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=false;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=false;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r16float";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=false;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=false;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r32float";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="r8unorm";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
|
|
@ -2941,22 +2960,26 @@
|
|||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg8unorm";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg8unorm";srcPremultiplied=true;dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg8unorm";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="rg8unorm";srcPremultiplied=true;dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win" and not debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux": [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="onscreen";contextName="webgl2";dstColorFormat="rgb10a2unorm";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
|
|
@ -3213,59 +3236,68 @@
|
|||
|
||||
[cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:*]
|
||||
expected:
|
||||
if os == "win" and not debug: [OK, TIMEOUT]
|
||||
if os == "mac" and not debug: TIMEOUT
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -3428,84 +3460,96 @@
|
|||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -3540,7 +3584,8 @@
|
|||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
@ -3554,14 +3599,16 @@
|
|||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
||||
[:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true]
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "win" and debug: FAIL
|
||||
if os == "win" and not debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux": FAIL
|
||||
if os == "mac" and debug: FAIL
|
||||
if os == "mac" and not debug: [TIMEOUT, NOTRUN]
|
||||
|
|
|
|||
|
|
@ -73,7 +73,11 @@
|
|||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg16float";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";dstPremultiplied=false]
|
||||
expected:
|
||||
|
|
@ -90,7 +94,11 @@
|
|||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=false]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac": FAIL
|
||||
|
||||
[:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=true]
|
||||
expected: FAIL
|
||||
|
|
@ -99,7 +107,7 @@
|
|||
expected:
|
||||
if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "win" and not debug: FAIL
|
||||
if os == "linux" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
|
||||
if os == "linux" and not debug: FAIL
|
||||
if os == "mac" and debug: [TIMEOUT, NOTRUN]
|
||||
if os == "mac" and not debug: 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
2
third_party/rust/naga/README.md
vendored
2
third_party/rust/naga/README.md
vendored
|
|
@ -42,7 +42,7 @@ First, install `naga-cli` from crates.io or directly from GitHub.
|
|||
cargo install naga-cli
|
||||
|
||||
# development version
|
||||
cargo install naga-cli --git https://github.com/gfx-rs/naga.git
|
||||
cargo install naga-cli --git https://github.com/gfx-rs/wgpu.git
|
||||
```
|
||||
|
||||
Then, you can run `naga` command.
|
||||
|
|
|
|||
58
third_party/rust/naga/src/back/mod.rs
vendored
58
third_party/rust/naga/src/back/mod.rs
vendored
|
|
@ -16,14 +16,19 @@ pub mod spv;
|
|||
#[cfg(feature = "wgsl-out")]
|
||||
pub mod wgsl;
|
||||
|
||||
const COMPONENTS: &[char] = &['x', 'y', 'z', 'w'];
|
||||
const INDENT: &str = " ";
|
||||
const BAKE_PREFIX: &str = "_e";
|
||||
/// Names of vector components.
|
||||
pub const COMPONENTS: &[char] = &['x', 'y', 'z', 'w'];
|
||||
/// Indent for backends.
|
||||
pub const INDENT: &str = " ";
|
||||
/// Prefix used for baking.
|
||||
pub const BAKE_PREFIX: &str = "_e";
|
||||
|
||||
type NeedBakeExpressions = crate::FastHashSet<crate::Handle<crate::Expression>>;
|
||||
/// Expressions that need baking.
|
||||
pub type NeedBakeExpressions = crate::FastHashSet<crate::Handle<crate::Expression>>;
|
||||
|
||||
/// Indentation level.
|
||||
#[derive(Clone, Copy)]
|
||||
struct Level(usize);
|
||||
pub struct Level(pub usize);
|
||||
|
||||
impl Level {
|
||||
const fn next(&self) -> Self {
|
||||
|
|
@ -52,7 +57,7 @@ impl std::fmt::Display for Level {
|
|||
/// [`EntryPoint`]: crate::EntryPoint
|
||||
/// [`Module`]: crate::Module
|
||||
/// [`Module::entry_points`]: crate::Module::entry_points
|
||||
enum FunctionType {
|
||||
pub enum FunctionType {
|
||||
/// A regular function.
|
||||
Function(crate::Handle<crate::Function>),
|
||||
/// An [`EntryPoint`], and its index in [`Module::entry_points`].
|
||||
|
|
@ -63,7 +68,8 @@ enum FunctionType {
|
|||
}
|
||||
|
||||
impl FunctionType {
|
||||
fn is_compute_entry_point(&self, module: &crate::Module) -> bool {
|
||||
/// Returns true if the function is an entry point for a compute shader.
|
||||
pub fn is_compute_entry_point(&self, module: &crate::Module) -> bool {
|
||||
match *self {
|
||||
FunctionType::EntryPoint(index) => {
|
||||
module.entry_points[index as usize].stage == crate::ShaderStage::Compute
|
||||
|
|
@ -74,19 +80,20 @@ impl FunctionType {
|
|||
}
|
||||
|
||||
/// Helper structure that stores data needed when writing the function
|
||||
struct FunctionCtx<'a> {
|
||||
pub struct FunctionCtx<'a> {
|
||||
/// The current function being written
|
||||
ty: FunctionType,
|
||||
pub ty: FunctionType,
|
||||
/// Analysis about the function
|
||||
info: &'a crate::valid::FunctionInfo,
|
||||
pub info: &'a crate::valid::FunctionInfo,
|
||||
/// The expression arena of the current function being written
|
||||
expressions: &'a crate::Arena<crate::Expression>,
|
||||
pub expressions: &'a crate::Arena<crate::Expression>,
|
||||
/// Map of expressions that have associated variable names
|
||||
named_expressions: &'a crate::NamedExpressions,
|
||||
pub named_expressions: &'a crate::NamedExpressions,
|
||||
}
|
||||
|
||||
impl FunctionCtx<'_> {
|
||||
fn resolve_type<'a>(
|
||||
/// Helper method that resolves a type of a given expression.
|
||||
pub fn resolve_type<'a>(
|
||||
&'a self,
|
||||
handle: crate::Handle<crate::Expression>,
|
||||
types: &'a crate::UniqueArena<crate::Type>,
|
||||
|
|
@ -95,7 +102,10 @@ impl FunctionCtx<'_> {
|
|||
}
|
||||
|
||||
/// Helper method that generates a [`NameKey`](crate::proc::NameKey) for a local in the current function
|
||||
const fn name_key(&self, local: crate::Handle<crate::LocalVariable>) -> crate::proc::NameKey {
|
||||
pub const fn name_key(
|
||||
&self,
|
||||
local: crate::Handle<crate::LocalVariable>,
|
||||
) -> crate::proc::NameKey {
|
||||
match self.ty {
|
||||
FunctionType::Function(handle) => crate::proc::NameKey::FunctionLocal(handle, local),
|
||||
FunctionType::EntryPoint(idx) => crate::proc::NameKey::EntryPointLocal(idx, local),
|
||||
|
|
@ -106,7 +116,7 @@ impl FunctionCtx<'_> {
|
|||
///
|
||||
/// # Panics
|
||||
/// - If the function arguments are less or equal to `arg`
|
||||
const fn argument_key(&self, arg: u32) -> crate::proc::NameKey {
|
||||
pub const fn argument_key(&self, arg: u32) -> crate::proc::NameKey {
|
||||
match self.ty {
|
||||
FunctionType::Function(handle) => crate::proc::NameKey::FunctionArgument(handle, arg),
|
||||
FunctionType::EntryPoint(ep_index) => {
|
||||
|
|
@ -115,8 +125,8 @@ impl FunctionCtx<'_> {
|
|||
}
|
||||
}
|
||||
|
||||
// Returns true if the given expression points to a fixed-function pipeline input.
|
||||
fn is_fixed_function_input(
|
||||
/// Returns true if the given expression points to a fixed-function pipeline input.
|
||||
pub fn is_fixed_function_input(
|
||||
&self,
|
||||
mut expression: crate::Handle<crate::Expression>,
|
||||
module: &crate::Module,
|
||||
|
|
@ -162,7 +172,7 @@ impl crate::Expression {
|
|||
/// See the [module-level documentation][emit] for details.
|
||||
///
|
||||
/// [emit]: index.html#expression-evaluation-time
|
||||
const fn bake_ref_count(&self) -> usize {
|
||||
pub const fn bake_ref_count(&self) -> usize {
|
||||
match *self {
|
||||
// accesses are never cached, only loads are
|
||||
crate::Expression::Access { .. } | crate::Expression::AccessIndex { .. } => usize::MAX,
|
||||
|
|
@ -181,9 +191,7 @@ impl crate::Expression {
|
|||
}
|
||||
|
||||
/// Helper function that returns the string corresponding to the [`BinaryOperator`](crate::BinaryOperator)
|
||||
/// # Notes
|
||||
/// Used by `glsl-out`, `msl-out`, `wgsl-out`, `hlsl-out`.
|
||||
const fn binary_operation_str(op: crate::BinaryOperator) -> &'static str {
|
||||
pub const fn binary_operation_str(op: crate::BinaryOperator) -> &'static str {
|
||||
use crate::BinaryOperator as Bo;
|
||||
match op {
|
||||
Bo::Add => "+",
|
||||
|
|
@ -208,8 +216,6 @@ const fn binary_operation_str(op: crate::BinaryOperator) -> &'static str {
|
|||
}
|
||||
|
||||
/// Helper function that returns the string corresponding to the [`VectorSize`](crate::VectorSize)
|
||||
/// # Notes
|
||||
/// Used by `msl-out`, `wgsl-out`, `hlsl-out`.
|
||||
const fn vector_size_str(size: crate::VectorSize) -> &'static str {
|
||||
match size {
|
||||
crate::VectorSize::Bi => "2",
|
||||
|
|
@ -219,7 +225,8 @@ const fn vector_size_str(size: crate::VectorSize) -> &'static str {
|
|||
}
|
||||
|
||||
impl crate::TypeInner {
|
||||
const fn is_handle(&self) -> bool {
|
||||
/// Returns true if this is a handle to a type rather than the type directly.
|
||||
pub const fn is_handle(&self) -> bool {
|
||||
match *self {
|
||||
crate::TypeInner::Image { .. } | crate::TypeInner::Sampler { .. } => true,
|
||||
_ => false,
|
||||
|
|
@ -266,8 +273,9 @@ bitflags::bitflags! {
|
|||
}
|
||||
}
|
||||
|
||||
/// The intersection test to use for ray queries.
|
||||
#[repr(u32)]
|
||||
enum RayIntersectionType {
|
||||
pub enum RayIntersectionType {
|
||||
Triangle = 1,
|
||||
BoundingBox = 4,
|
||||
}
|
||||
|
|
|
|||
116
third_party/rust/naga/src/back/spv/index.rs
vendored
116
third_party/rust/naga/src/back/spv/index.rs
vendored
|
|
@ -3,8 +3,9 @@ Bounds-checking for SPIR-V output.
|
|||
*/
|
||||
|
||||
use super::{
|
||||
helpers::global_needs_wrapper, selection::Selection, Block, BlockContext, Error, IdGenerator,
|
||||
Instruction, Word,
|
||||
helpers::{global_needs_wrapper, map_storage_class},
|
||||
selection::Selection,
|
||||
Block, BlockContext, Error, IdGenerator, Instruction, Word,
|
||||
};
|
||||
use crate::{arena::Handle, proc::BoundsCheckPolicy};
|
||||
|
||||
|
|
@ -42,32 +43,113 @@ impl<'w> BlockContext<'w> {
|
|||
array: Handle<crate::Expression>,
|
||||
block: &mut Block,
|
||||
) -> Result<Word, Error> {
|
||||
// Naga IR permits runtime-sized arrays as global variables or as the
|
||||
// final member of a struct that is a global variable. SPIR-V permits
|
||||
// only the latter, so this back end wraps bare runtime-sized arrays
|
||||
// in a made-up struct; see `helpers::global_needs_wrapper` and its uses.
|
||||
// This code must handle both cases.
|
||||
let (structure_id, last_member_index) = match self.ir_function.expressions[array] {
|
||||
// Naga IR permits runtime-sized arrays as global variables, or as the
|
||||
// final member of a struct that is a global variable, or one of these
|
||||
// inside a buffer that is itself an element in a buffer bindings array.
|
||||
// SPIR-V requires that runtime-sized arrays are wrapped in structs.
|
||||
// See `helpers::global_needs_wrapper` and its uses.
|
||||
let (opt_array_index_id, global_handle, opt_last_member_index) = match self
|
||||
.ir_function
|
||||
.expressions[array]
|
||||
{
|
||||
crate::Expression::AccessIndex { base, index } => {
|
||||
match self.ir_function.expressions[base] {
|
||||
crate::Expression::GlobalVariable(handle) => (
|
||||
self.writer.global_variables[handle.index()].access_id,
|
||||
index,
|
||||
),
|
||||
_ => return Err(Error::Validation("array length expression")),
|
||||
// The global variable is an array of buffer bindings of structs,
|
||||
// we are accessing one of them with a static index,
|
||||
// and the last member of it.
|
||||
crate::Expression::AccessIndex {
|
||||
base: base_outer,
|
||||
index: index_outer,
|
||||
} => match self.ir_function.expressions[base_outer] {
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
let index_id = self.get_index_constant(index_outer);
|
||||
(Some(index_id), handle, Some(index))
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression case-1a")),
|
||||
},
|
||||
// The global variable is an array of buffer bindings of structs,
|
||||
// we are accessing one of them with a dynamic index,
|
||||
// and the last member of it.
|
||||
crate::Expression::Access {
|
||||
base: base_outer,
|
||||
index: index_outer,
|
||||
} => match self.ir_function.expressions[base_outer] {
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
let index_id = self.cached[index_outer];
|
||||
(Some(index_id), handle, Some(index))
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression case-1b")),
|
||||
},
|
||||
// The global variable is a buffer, and we are accessing the last member.
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
let global = &self.ir_module.global_variables[handle];
|
||||
match self.ir_module.types[global.ty].inner {
|
||||
// The global variable is an array of buffer bindings of run-time arrays.
|
||||
crate::TypeInner::BindingArray { .. } => (Some(index), handle, None),
|
||||
// The global variable is a struct, and we are accessing the last member
|
||||
_ => (None, handle, Some(index)),
|
||||
}
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression case-1c")),
|
||||
}
|
||||
}
|
||||
// The global variable is an array of buffer bindings of arrays.
|
||||
crate::Expression::Access { base, index } => match self.ir_function.expressions[base] {
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
let index_id = self.cached[index];
|
||||
let global = &self.ir_module.global_variables[handle];
|
||||
match self.ir_module.types[global.ty].inner {
|
||||
crate::TypeInner::BindingArray { .. } => (Some(index_id), handle, None),
|
||||
_ => return Err(Error::Validation("array length expression case-2a")),
|
||||
}
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression case-2b")),
|
||||
},
|
||||
// The global variable is a run-time array.
|
||||
crate::Expression::GlobalVariable(handle) => {
|
||||
let global = &self.ir_module.global_variables[handle];
|
||||
if !global_needs_wrapper(self.ir_module, global) {
|
||||
return Err(Error::Validation("array length expression"));
|
||||
return Err(Error::Validation("array length expression case-3"));
|
||||
}
|
||||
|
||||
(self.writer.global_variables[handle.index()].var_id, 0)
|
||||
(None, handle, None)
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression")),
|
||||
_ => return Err(Error::Validation("array length expression case-4")),
|
||||
};
|
||||
|
||||
let gvar = self.writer.global_variables[global_handle.index()].clone();
|
||||
let global = &self.ir_module.global_variables[global_handle];
|
||||
let (last_member_index, gvar_id) = match opt_last_member_index {
|
||||
Some(index) => (index, gvar.access_id),
|
||||
None => {
|
||||
if !global_needs_wrapper(self.ir_module, global) {
|
||||
return Err(Error::Validation(
|
||||
"pointer to a global that is not a wrapped array",
|
||||
));
|
||||
}
|
||||
(0, gvar.var_id)
|
||||
}
|
||||
};
|
||||
let structure_id = match opt_array_index_id {
|
||||
// We are indexing inside a binding array, generate the access op.
|
||||
Some(index_id) => {
|
||||
let element_type_id = match self.ir_module.types[global.ty].inner {
|
||||
crate::TypeInner::BindingArray { base, size: _ } => {
|
||||
let class = map_storage_class(global.space);
|
||||
self.get_pointer_id(base, class)?
|
||||
}
|
||||
_ => return Err(Error::Validation("array length expression case-5")),
|
||||
};
|
||||
let structure_id = self.gen_id();
|
||||
block.body.push(Instruction::access_chain(
|
||||
element_type_id,
|
||||
structure_id,
|
||||
gvar_id,
|
||||
&[index_id],
|
||||
));
|
||||
structure_id
|
||||
}
|
||||
None => gvar_id,
|
||||
};
|
||||
let length_id = self.gen_id();
|
||||
block.body.push(Instruction::array_length(
|
||||
self.writer.get_uint_type_id(),
|
||||
|
|
|
|||
9
third_party/rust/naga/src/back/spv/mod.rs
vendored
9
third_party/rust/naga/src/back/spv/mod.rs
vendored
|
|
@ -576,6 +576,15 @@ impl BlockContext<'_> {
|
|||
self.writer
|
||||
.get_constant_scalar(crate::Literal::I32(scope as _))
|
||||
}
|
||||
|
||||
fn get_pointer_id(
|
||||
&mut self,
|
||||
handle: Handle<crate::Type>,
|
||||
class: spirv::StorageClass,
|
||||
) -> Result<Word, Error> {
|
||||
self.writer
|
||||
.get_pointer_id(&self.ir_module.types, handle, class)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Default)]
|
||||
|
|
|
|||
70
third_party/rust/naga/src/back/spv/writer.rs
vendored
70
third_party/rust/naga/src/back/spv/writer.rs
vendored
|
|
@ -565,36 +565,38 @@ impl Writer {
|
|||
// Handle globals are pre-emitted and should be loaded automatically.
|
||||
//
|
||||
// Any that are binding arrays we skip as we cannot load the array, we must load the result after indexing.
|
||||
let is_binding_array = match ir_module.types[var.ty].inner {
|
||||
crate::TypeInner::BindingArray { .. } => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
if var.space == crate::AddressSpace::Handle && !is_binding_array {
|
||||
let var_type_id = self.get_type_id(LookupType::Handle(var.ty));
|
||||
let id = self.id_gen.next();
|
||||
prelude
|
||||
.body
|
||||
.push(Instruction::load(var_type_id, id, gv.var_id, None));
|
||||
gv.access_id = gv.var_id;
|
||||
gv.handle_id = id;
|
||||
} else if global_needs_wrapper(ir_module, var) {
|
||||
let class = map_storage_class(var.space);
|
||||
let pointer_type_id = self.get_pointer_id(&ir_module.types, var.ty, class)?;
|
||||
let index_id = self.get_index_constant(0);
|
||||
|
||||
let id = self.id_gen.next();
|
||||
prelude.body.push(Instruction::access_chain(
|
||||
pointer_type_id,
|
||||
id,
|
||||
gv.var_id,
|
||||
&[index_id],
|
||||
));
|
||||
gv.access_id = id;
|
||||
} else {
|
||||
// by default, the variable ID is accessed as is
|
||||
gv.access_id = gv.var_id;
|
||||
};
|
||||
match ir_module.types[var.ty].inner {
|
||||
crate::TypeInner::BindingArray { .. } => {
|
||||
gv.access_id = gv.var_id;
|
||||
}
|
||||
_ => {
|
||||
if var.space == crate::AddressSpace::Handle {
|
||||
let var_type_id = self.get_type_id(LookupType::Handle(var.ty));
|
||||
let id = self.id_gen.next();
|
||||
prelude
|
||||
.body
|
||||
.push(Instruction::load(var_type_id, id, gv.var_id, None));
|
||||
gv.access_id = gv.var_id;
|
||||
gv.handle_id = id;
|
||||
} else if global_needs_wrapper(ir_module, var) {
|
||||
let class = map_storage_class(var.space);
|
||||
let pointer_type_id =
|
||||
self.get_pointer_id(&ir_module.types, var.ty, class)?;
|
||||
let index_id = self.get_index_constant(0);
|
||||
let id = self.id_gen.next();
|
||||
prelude.body.push(Instruction::access_chain(
|
||||
pointer_type_id,
|
||||
id,
|
||||
gv.var_id,
|
||||
&[index_id],
|
||||
));
|
||||
gv.access_id = id;
|
||||
} else {
|
||||
// by default, the variable ID is accessed as is
|
||||
gv.access_id = gv.var_id;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// work around borrow checking in the presence of `self.xxx()` calls
|
||||
self.global_variables[handle.index()] = gv;
|
||||
|
|
@ -1858,9 +1860,15 @@ impl Writer {
|
|||
.iter()
|
||||
.flat_map(|entry| entry.function.arguments.iter())
|
||||
.any(|arg| has_view_index_check(ir_module, arg.binding.as_ref(), arg.ty));
|
||||
let has_ray_query = ir_module.special_types.ray_desc.is_some()
|
||||
let mut has_ray_query = ir_module.special_types.ray_desc.is_some()
|
||||
| ir_module.special_types.ray_intersection.is_some();
|
||||
|
||||
for (_, &crate::Type { ref inner, .. }) in ir_module.types.iter() {
|
||||
if let &crate::TypeInner::AccelerationStructure | &crate::TypeInner::RayQuery = inner {
|
||||
has_ray_query = true
|
||||
}
|
||||
}
|
||||
|
||||
if self.physical_layout.version < 0x10300 && has_storage_buffers {
|
||||
// enable the storage buffer class on < SPV-1.3
|
||||
Instruction::extension("SPV_KHR_storage_buffer_storage_class")
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ impl Frontend {
|
|||
|
||||
let idx = self.entry_args.len();
|
||||
self.entry_args.push(EntryArg {
|
||||
name: None,
|
||||
name: Some(name.into()),
|
||||
binding: Binding::BuiltIn(data.builtin),
|
||||
handle,
|
||||
storage: data.storage,
|
||||
|
|
|
|||
69
third_party/rust/naga/src/valid/analyzer.rs
vendored
69
third_party/rust/naga/src/valid/analyzer.rs
vendored
|
|
@ -145,10 +145,35 @@ pub struct SamplingKey {
|
|||
#[derive(Clone, Debug)]
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
|
||||
#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
|
||||
/// Information about an expression in a function body.
|
||||
pub struct ExpressionInfo {
|
||||
/// Whether this expression is uniform, and why.
|
||||
///
|
||||
/// If this expression's value is not uniform, this is the handle
|
||||
/// of the expression from which this one's non-uniformity
|
||||
/// originates. Otherwise, this is `None`.
|
||||
pub uniformity: Uniformity,
|
||||
|
||||
/// The number of statements and other expressions using this
|
||||
/// expression's value.
|
||||
pub ref_count: usize,
|
||||
|
||||
/// The global variable into which this expression produces a pointer.
|
||||
///
|
||||
/// This is `None` unless this expression is either a
|
||||
/// [`GlobalVariable`], or an [`Access`] or [`AccessIndex`] that
|
||||
/// ultimately refers to some part of a global.
|
||||
///
|
||||
/// [`Load`] expressions applied to pointer-typed arguments could
|
||||
/// refer to globals, but we leave this as `None` for them.
|
||||
///
|
||||
/// [`GlobalVariable`]: crate::Expression::GlobalVariable
|
||||
/// [`Access`]: crate::Expression::Access
|
||||
/// [`AccessIndex`]: crate::Expression::AccessIndex
|
||||
/// [`Load`]: crate::Expression::Load
|
||||
assignable_global: Option<Handle<crate::GlobalVariable>>,
|
||||
|
||||
/// The type of this expression.
|
||||
pub ty: TypeResolution,
|
||||
}
|
||||
|
||||
|
|
@ -311,14 +336,20 @@ pub enum UniformityDisruptor {
|
|||
}
|
||||
|
||||
impl FunctionInfo {
|
||||
/// Adds a value-type reference to an expression.
|
||||
/// Record a use of `expr` of the sort given by `global_use`.
|
||||
///
|
||||
/// Bump `expr`'s reference count, and return its uniformity.
|
||||
///
|
||||
/// If `expr` is a pointer to a global variable, or some part of
|
||||
/// a global variable, add `global_use` to that global's set of
|
||||
/// uses.
|
||||
#[must_use]
|
||||
fn add_ref_impl(
|
||||
&mut self,
|
||||
handle: Handle<crate::Expression>,
|
||||
expr: Handle<crate::Expression>,
|
||||
global_use: GlobalUse,
|
||||
) -> NonUniformResult {
|
||||
let info = &mut self.expressions[handle.index()];
|
||||
let info = &mut self.expressions[expr.index()];
|
||||
info.ref_count += 1;
|
||||
// mark the used global as read
|
||||
if let Some(global) = info.assignable_global {
|
||||
|
|
@ -327,22 +358,38 @@ impl FunctionInfo {
|
|||
info.uniformity.non_uniform_result
|
||||
}
|
||||
|
||||
/// Adds a value-type reference to an expression.
|
||||
/// Record a use of `expr` for its value.
|
||||
///
|
||||
/// This is used for almost all expression references. Anything
|
||||
/// that writes to the value `expr` points to, or otherwise wants
|
||||
/// contribute flags other than `GlobalUse::READ`, should use
|
||||
/// `add_ref_impl` directly.
|
||||
#[must_use]
|
||||
fn add_ref(&mut self, handle: Handle<crate::Expression>) -> NonUniformResult {
|
||||
self.add_ref_impl(handle, GlobalUse::READ)
|
||||
fn add_ref(&mut self, expr: Handle<crate::Expression>) -> NonUniformResult {
|
||||
self.add_ref_impl(expr, GlobalUse::READ)
|
||||
}
|
||||
|
||||
/// Adds a potentially assignable reference to an expression.
|
||||
/// These are destinations for `Store` and `ImageStore` statements,
|
||||
/// which can transit through `Access` and `AccessIndex`.
|
||||
/// Record a use of `expr`, and indicate which global variable it
|
||||
/// refers to, if any.
|
||||
///
|
||||
/// Bump `expr`'s reference count, and return its uniformity.
|
||||
///
|
||||
/// If `expr` is a pointer to a global variable, or some part
|
||||
/// thereof, store that global in `*assignable_global`. Leave the
|
||||
/// global's uses unchanged.
|
||||
///
|
||||
/// This is used to determine the [`assignable_global`] for
|
||||
/// [`Access`] and [`AccessIndex`] expressions that ultimately
|
||||
/// refer to a global variable. Those expressions don't contribute
|
||||
/// any usage to the global themselves; that depends on how other
|
||||
/// expressions use them.
|
||||
#[must_use]
|
||||
fn add_assignable_ref(
|
||||
&mut self,
|
||||
handle: Handle<crate::Expression>,
|
||||
expr: Handle<crate::Expression>,
|
||||
assignable_global: &mut Option<Handle<crate::GlobalVariable>>,
|
||||
) -> NonUniformResult {
|
||||
let info = &mut self.expressions[handle.index()];
|
||||
let info = &mut self.expressions[expr.index()];
|
||||
info.ref_count += 1;
|
||||
// propagate the assignable global up the chain, till it either hits
|
||||
// a value-type expression, or the assignment statement.
|
||||
|
|
|
|||
2
third_party/rust/naga/src/valid/type.rs
vendored
2
third_party/rust/naga/src/valid/type.rs
vendored
|
|
@ -510,7 +510,6 @@ impl super::Validator {
|
|||
ti.uniform_layout = Ok(Alignment::MIN_UNIFORM);
|
||||
|
||||
let mut min_offset = 0;
|
||||
|
||||
let mut prev_struct_data: Option<(u32, u32)> = None;
|
||||
|
||||
for (i, member) in members.iter().enumerate() {
|
||||
|
|
@ -662,6 +661,7 @@ impl super::Validator {
|
|||
// Currently Naga only supports binding arrays of structs for non-handle types.
|
||||
match gctx.types[base].inner {
|
||||
crate::TypeInner::Struct { .. } => {}
|
||||
crate::TypeInner::Array { .. } => {}
|
||||
_ => return Err(TypeError::BindingArrayBaseTypeNotStruct(base)),
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"3f5fa464854359b0150d4fe82cf5b0c17874dbb3c3c708b2a9cc24ebc1a61349","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"a99478d7f63fb41429e3834f4d0e5cd333f94ba1834c68295f929170e16987de","src/any_surface.rs":"1c032bc1894a222a47f0116b976f1543c1140c0534678502ee1172d4f77fc515","src/binding_model.rs":"bb4aefad17957e770a5f70f00bf5853dc13da1d9f836493c9aa9adbbe7bb8147","src/command/bind.rs":"a37f042484b65d9fdea4cdab3667381623ee9a8943a6d32683d410b92736d306","src/command/bundle.rs":"fea00382acdf204bcb58522953335dd8f0092565693fa65d0c008e2698e39445","src/command/clear.rs":"03cfc0d4c689d56010391440ab279e615ef1d3235eb1f9f9df0323682d275109","src/command/compute.rs":"2b6beed328ed351ad6fe7088cfa1824c1bf4be50deaeab971cdcb09914d791de","src/command/draw.rs":"15f9ad857504d8098279f9c789317feba321c9b6b8f0de20b8ba98f358c99d89","src/command/memory_init.rs":"6ec93b9e2eb21edaa534e60770b4ba95735e9de61e74d827bc492df8e3639449","src/command/mod.rs":"1d347e1746194f7a07d1f75bd3a9d3cbe121fbaa479c25ba6b8c16e9d699e06b","src/command/query.rs":"43b78a163eb0eb5f1427b7a57b6d39a2748c25f880ba024c91e2f71e2a6a817d","src/command/render.rs":"808dc8106811b32877637851e63baeba7c7438748dec67cbb17ea93c58dc61bd","src/command/transfer.rs":"bf1077d1a99a258bad46087ae7234703627e7f4d30b38e6142d016c02deaad3a","src/conv.rs":"7e3ffe33b47a6fd3617aabf9f11cc68f1ccbee2c7343b8dbbcd0e8f3447e1ad8","src/device/any_device.rs":"65f47b58939b60f88f47861e65d5d45209492df8e73e7c1b60b3b459f510c09e","src/device/bgl.rs":"ec8bdd6e9b4cd50c25bed317275863d0c16bb6619f62ed85bf0464948010dfc1","src/device/global.rs":"ff90a9e3b261bedbec37ab1aed0bf23f1e50c5418da72184e2b175057ed18fce","src/device/life.rs":"1bb035d8fe225f03a21c0931e4be2c384d6026fe4131880e73c661e4224b9af9","src/device/mod.rs":"fff41f92e1a9f6660e18dc30452d9911ca827701bb8303af2ae06f1c1e1a795f","src/device/queue.rs":"da0aeebfd1d1c6e155dc89cebf75dfdb6ec18062f9512044ed7e0fef0bda2f74","src/device/resource.rs":"74d3180c12602133bee46925d3788ac510d2ad5ea141a2b46f6904f38549053b","src/device/trace.rs":"9deb1b083165e07253b4928ac2f564aba06f9089c3aca1c0a1d438d87d981542","src/error.rs":"e3b6b7a69877437f4e46af7f0e8ca1db1822beae7c8448db41c2bae0f64b2bb4","src/global.rs":"0966475959706650fd036a18d51441a8e14c3ef10107db617f597614ca47e50a","src/hal_api.rs":"1cd9c3fe1c9d8c3a24e3e7f963a2ef26e056a2b26d529b840dbc969090aaf201","src/hash_utils.rs":"e8d484027c7ce81978e4679a5e20af9416ab7d2fa595f1ca95992b29d625b0ca","src/hub.rs":"352a1b75d4535f24b06d16134421db98f910e6e719f50f863a204df6768e3369","src/id.rs":"9f67dbef5d7a416eb740281ecf8a94673f624da16f21ec33c425c11d9ed01e90","src/identity.rs":"12b820eb4b8bd7b226e15eec97d0f100a695f6b9be7acd79ad2421f2d0fe1985","src/init_tracker/buffer.rs":"61eb9cfaa312135b7a937ff6a3117f531b5b7323fae6553a41d6de9bc106d7e0","src/init_tracker/mod.rs":"a0f64730cc025113b656b4690f9dcb0ec18b8770bc7ef24c7b4ad8bebae03d24","src/init_tracker/texture.rs":"030fd594bf9948fad391390d85c5e1fec7eaf67b6e812c60f2dd59bc4fda8fd5","src/instance.rs":"b6de2a371ef3b43d3217102fe87e423dd1eb12da86b65f54b902d9eaa38b6b9f","src/lib.rs":"4ad9979442cf88557fb3b9f8d3b26c7b929a710c60cabcd1f51788917c95aecb","src/pipeline.rs":"89d88de4b8b8e1dd2bc834d101a1bdf34816ebcaa616dc795f604e9183a21cd0","src/pool.rs":"778ea1c23fcfaaa5001606e686f712f606826039d60dd5a3cd26e7de91ac057a","src/present.rs":"f69580ee0baf181162f9dd82b159596c738558d8abb60db93047effbe1436b2f","src/registry.rs":"913e651dc585ff12fe7659443c38d635a2904881e56cb7159c5ca72d45ae5800","src/resource.rs":"59731bc9a207d87b07b6db9c897e20d64be27c144bb8eb8ab2505807163acfc4","src/snatch.rs":"29a1135ee09c06883eac4df6f45b7220c2ba8f89f34232ea1d270d6e7b05c7a8","src/storage.rs":"f0c41461b8f9cdc862dbd3de04c8e720ee416c7c57310696f6f4fd22183fcc85","src/track/buffer.rs":"83a0cbb8026dbd651d32ea5a47f332f691afed1c5e6f14e78a4fe8aa25e2ad12","src/track/metadata.rs":"655985fdfdd1c7fe8220af98abadf33de7e8920b485e3dd27c28688c3dd2e47d","src/track/mod.rs":"52470a48de6b5dce55385e23ba7a3cbf512cc10cdf431a35aa42190e2fc4306d","src/track/range.rs":"2a15794e79b0470d5ba6b3267173a42f34312878e1cb288f198d2854a7888e53","src/track/stateless.rs":"305e0a493fb1cd0a325274c0757e99c19f9d14deaa8ca11ada41c1399a4ae5c4","src/track/texture.rs":"ba3e3814b341b5242548b55d77bef1d1d9e7d52d63784be98c51e342da7fefff","src/validation.rs":"026168ac4f23bc6a58a90c78fd3eb73485b3c1aad630ef43755604d1babade79"},"package":null}
|
||||
{"files":{"Cargo.toml":"3f5fa464854359b0150d4fe82cf5b0c17874dbb3c3c708b2a9cc24ebc1a61349","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","build.rs":"a99478d7f63fb41429e3834f4d0e5cd333f94ba1834c68295f929170e16987de","src/any_surface.rs":"1c032bc1894a222a47f0116b976f1543c1140c0534678502ee1172d4f77fc515","src/binding_model.rs":"bb4aefad17957e770a5f70f00bf5853dc13da1d9f836493c9aa9adbbe7bb8147","src/command/bind.rs":"a37f042484b65d9fdea4cdab3667381623ee9a8943a6d32683d410b92736d306","src/command/bundle.rs":"3435ea21daba6f5a26f9a4158b342d0b9a1839da39b82fa8c23d84ee144b9da0","src/command/clear.rs":"2eb9c323c3ae3644563cab1bb1d26e4a17a54f5a120698c7f09ef9f9e9077780","src/command/compute.rs":"1ad1d8b83774422bd73c7c67c153205e451fd71602b37f34162b59e5f7dbbc75","src/command/draw.rs":"15f9ad857504d8098279f9c789317feba321c9b6b8f0de20b8ba98f358c99d89","src/command/memory_init.rs":"71550dabbf7cc3c3ff6aa4ccd31af080bb5e1cb1e21422daea63fee30294476f","src/command/mod.rs":"1d347e1746194f7a07d1f75bd3a9d3cbe121fbaa479c25ba6b8c16e9d699e06b","src/command/query.rs":"43b78a163eb0eb5f1427b7a57b6d39a2748c25f880ba024c91e2f71e2a6a817d","src/command/render.rs":"875545efa83e56face9a857c5d8c814bc46f4b0538a152933265533176ad1e84","src/command/transfer.rs":"63042151145825c5cac6459a5a254a82142c86d299895f72bef2682f71de7ad1","src/conv.rs":"7e3ffe33b47a6fd3617aabf9f11cc68f1ccbee2c7343b8dbbcd0e8f3447e1ad8","src/device/any_device.rs":"65f47b58939b60f88f47861e65d5d45209492df8e73e7c1b60b3b459f510c09e","src/device/bgl.rs":"ec8bdd6e9b4cd50c25bed317275863d0c16bb6619f62ed85bf0464948010dfc1","src/device/global.rs":"6a08dcc25059f2194999c4f5e3a57a1a96b17031873b1a871095dc58115470fb","src/device/life.rs":"efba75c8632e0bd9c655dbff1f8ff027900f388b6eeb357a9c02ddad24474b23","src/device/mod.rs":"e578d03253a9af314e1e81168d45ea8cc0a8f56df79e440dc1ade945d75277ec","src/device/queue.rs":"4405a6b8ea29093239f1556e5352f7c777f4f6b783fd5dea458fde22556741ca","src/device/resource.rs":"65f84150c467aa50615a097d15f6b4dba3514b0adf2de1e9b9837e5084619a80","src/device/trace.rs":"9deb1b083165e07253b4928ac2f564aba06f9089c3aca1c0a1d438d87d981542","src/error.rs":"e3b6b7a69877437f4e46af7f0e8ca1db1822beae7c8448db41c2bae0f64b2bb4","src/global.rs":"0966475959706650fd036a18d51441a8e14c3ef10107db617f597614ca47e50a","src/hal_api.rs":"1cd9c3fe1c9d8c3a24e3e7f963a2ef26e056a2b26d529b840dbc969090aaf201","src/hash_utils.rs":"e8d484027c7ce81978e4679a5e20af9416ab7d2fa595f1ca95992b29d625b0ca","src/hub.rs":"352a1b75d4535f24b06d16134421db98f910e6e719f50f863a204df6768e3369","src/id.rs":"9f67dbef5d7a416eb740281ecf8a94673f624da16f21ec33c425c11d9ed01e90","src/identity.rs":"12b820eb4b8bd7b226e15eec97d0f100a695f6b9be7acd79ad2421f2d0fe1985","src/init_tracker/buffer.rs":"61eb9cfaa312135b7a937ff6a3117f531b5b7323fae6553a41d6de9bc106d7e0","src/init_tracker/mod.rs":"a0f64730cc025113b656b4690f9dcb0ec18b8770bc7ef24c7b4ad8bebae03d24","src/init_tracker/texture.rs":"030fd594bf9948fad391390d85c5e1fec7eaf67b6e812c60f2dd59bc4fda8fd5","src/instance.rs":"b6de2a371ef3b43d3217102fe87e423dd1eb12da86b65f54b902d9eaa38b6b9f","src/lib.rs":"4ad9979442cf88557fb3b9f8d3b26c7b929a710c60cabcd1f51788917c95aecb","src/pipeline.rs":"89d88de4b8b8e1dd2bc834d101a1bdf34816ebcaa616dc795f604e9183a21cd0","src/pool.rs":"778ea1c23fcfaaa5001606e686f712f606826039d60dd5a3cd26e7de91ac057a","src/present.rs":"f69580ee0baf181162f9dd82b159596c738558d8abb60db93047effbe1436b2f","src/registry.rs":"913e651dc585ff12fe7659443c38d635a2904881e56cb7159c5ca72d45ae5800","src/resource.rs":"59731bc9a207d87b07b6db9c897e20d64be27c144bb8eb8ab2505807163acfc4","src/snatch.rs":"5cf0e4e4611083e8256092696ecf0caa9e855dd680c18fc7dbb227d071aa2548","src/storage.rs":"f0c41461b8f9cdc862dbd3de04c8e720ee416c7c57310696f6f4fd22183fcc85","src/track/buffer.rs":"d1b4c85dfaf1bcc93013d7f51ba677f97c36245c9de224fb328595aa15109cf6","src/track/metadata.rs":"7016911136bc5b97053f54241b01d344f5d65c4337a292c8aa32bb142a26be0c","src/track/mod.rs":"5365c532a531d224a958bd8217769ef59d67d293b4f95972c10db71f6bff1a80","src/track/range.rs":"2a15794e79b0470d5ba6b3267173a42f34312878e1cb288f198d2854a7888e53","src/track/stateless.rs":"305e0a493fb1cd0a325274c0757e99c19f9d14deaa8ca11ada41c1399a4ae5c4","src/track/texture.rs":"da83403d5990021c5db78f1ffdf69198eadb99cc77a6bc481648337a5403295c","src/validation.rs":"026168ac4f23bc6a58a90c78fd3eb73485b3c1aad630ef43755604d1babade79"},"package":null}
|
||||
21
third_party/rust/wgpu-core/src/command/bundle.rs
vendored
21
third_party/rust/wgpu-core/src/command/bundle.rs
vendored
|
|
@ -99,6 +99,7 @@ use crate::{
|
|||
pipeline::{PipelineFlags, RenderPipeline, VertexStep},
|
||||
resource::{Buffer, Resource, ResourceInfo, ResourceType},
|
||||
resource_log,
|
||||
snatch::SnatchGuard,
|
||||
track::RenderBundleScope,
|
||||
validation::check_buffer_usage,
|
||||
Label, LabelHelpers,
|
||||
|
|
@ -165,7 +166,7 @@ fn validate_indexed_draw<A: HalApi>(
|
|||
) -> Result<(), DrawError> {
|
||||
let last_index = first_index as u64 + index_count as u64;
|
||||
let index_limit = index_state.limit();
|
||||
if last_index <= index_limit {
|
||||
if last_index > index_limit {
|
||||
return Err(DrawError::IndexBeyondLimit {
|
||||
last_index,
|
||||
index_limit,
|
||||
|
|
@ -894,7 +895,11 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
/// Note that the function isn't expected to fail, generally.
|
||||
/// All the validation has already been done by this point.
|
||||
/// The only failure condition is if some of the used buffers are destroyed.
|
||||
pub(super) unsafe fn execute(&self, raw: &mut A::CommandEncoder) -> Result<(), ExecutionError> {
|
||||
pub(super) unsafe fn execute(
|
||||
&self,
|
||||
raw: &mut A::CommandEncoder,
|
||||
snatch_guard: &SnatchGuard,
|
||||
) -> Result<(), ExecutionError> {
|
||||
let mut offsets = self.base.dynamic_offsets.as_slice();
|
||||
let mut pipeline_layout = None::<Arc<PipelineLayout<A>>>;
|
||||
if !self.discard_hal_labels {
|
||||
|
|
@ -903,8 +908,6 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
}
|
||||
}
|
||||
|
||||
let snatch_guard = self.device.snatchable_lock.read();
|
||||
|
||||
use ArcRenderCommand as Cmd;
|
||||
for command in self.base.commands.iter() {
|
||||
match command {
|
||||
|
|
@ -914,7 +917,7 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
bind_group,
|
||||
} => {
|
||||
let raw_bg = bind_group
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(ExecutionError::InvalidBindGroup(bind_group.info.id()))?;
|
||||
unsafe {
|
||||
raw.set_bind_group(
|
||||
|
|
@ -938,7 +941,7 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
size,
|
||||
} => {
|
||||
let buffer: &A::Buffer = buffer
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(ExecutionError::DestroyedBuffer(buffer.info.id()))?;
|
||||
let bb = hal::BufferBinding {
|
||||
buffer,
|
||||
|
|
@ -954,7 +957,7 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
size,
|
||||
} => {
|
||||
let buffer = buffer
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(ExecutionError::DestroyedBuffer(buffer.info.id()))?;
|
||||
let bb = hal::BufferBinding {
|
||||
buffer,
|
||||
|
|
@ -1041,7 +1044,7 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
indexed: false,
|
||||
} => {
|
||||
let buffer = buffer
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(ExecutionError::DestroyedBuffer(buffer.info.id()))?;
|
||||
unsafe { raw.draw_indirect(buffer, *offset, 1) };
|
||||
}
|
||||
|
|
@ -1052,7 +1055,7 @@ impl<A: HalApi> RenderBundle<A> {
|
|||
indexed: true,
|
||||
} => {
|
||||
let buffer = buffer
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(ExecutionError::DestroyedBuffer(buffer.info.id()))?;
|
||||
unsafe { raw.draw_indexed_indirect(buffer, *offset, 1) };
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ use crate::{
|
|||
id::{BufferId, CommandEncoderId, DeviceId, TextureId},
|
||||
init_tracker::{MemoryInitKind, TextureInitRange},
|
||||
resource::{Resource, Texture, TextureClearMode},
|
||||
snatch::SnatchGuard,
|
||||
track::{TextureSelector, TextureTracker},
|
||||
};
|
||||
|
||||
|
|
@ -239,6 +240,7 @@ impl Global {
|
|||
}
|
||||
let (encoder, tracker) = cmd_buf_data.open_encoder_and_tracker()?;
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
clear_texture(
|
||||
&dst_texture,
|
||||
TextureInitRange {
|
||||
|
|
@ -249,6 +251,7 @@ impl Global {
|
|||
&mut tracker.textures,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
&snatch_guard,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -260,10 +263,10 @@ pub(crate) fn clear_texture<A: HalApi>(
|
|||
texture_tracker: &mut TextureTracker<A>,
|
||||
alignments: &hal::Alignments,
|
||||
zero_buffer: &A::Buffer,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), ClearError> {
|
||||
let snatch_guard = dst_texture.device.snatchable_lock.read();
|
||||
let dst_raw = dst_texture
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or_else(|| ClearError::InvalidTexture(dst_texture.as_info().id()))?;
|
||||
|
||||
// Issue the right barrier.
|
||||
|
|
|
|||
|
|
@ -272,14 +272,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
struct State<A: HalApi> {
|
||||
struct State<'a, A: HalApi> {
|
||||
binder: Binder<A>,
|
||||
pipeline: Option<id::ComputePipelineId>,
|
||||
scope: UsageScope<A>,
|
||||
scope: UsageScope<'a, A>,
|
||||
debug_scope_depth: u32,
|
||||
}
|
||||
|
||||
impl<A: HalApi> State<A> {
|
||||
impl<'a, A: HalApi> State<'a, A> {
|
||||
fn is_ready(&self) -> Result<(), DispatchError> {
|
||||
let bind_mask = self.binder.invalid_mask();
|
||||
if bind_mask != 0 {
|
||||
|
|
@ -407,7 +407,7 @@ impl Global {
|
|||
let mut state = State {
|
||||
binder: Binder::new(),
|
||||
pipeline: None,
|
||||
scope: UsageScope::new(&device.tracker_indices),
|
||||
scope: device.new_usage_scope(),
|
||||
debug_scope_depth: 0,
|
||||
};
|
||||
let mut temp_offsets = Vec::new();
|
||||
|
|
@ -868,6 +868,7 @@ impl Global {
|
|||
transit,
|
||||
&mut tracker.textures,
|
||||
device,
|
||||
&snatch_guard,
|
||||
);
|
||||
CommandBuffer::insert_barriers_from_tracker(
|
||||
transit,
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use crate::{
|
|||
hal_api::HalApi,
|
||||
init_tracker::*,
|
||||
resource::{Resource, Texture},
|
||||
snatch::SnatchGuard,
|
||||
track::{TextureTracker, Tracker},
|
||||
FastHashMap,
|
||||
};
|
||||
|
|
@ -144,6 +145,7 @@ pub(crate) fn fixup_discarded_surfaces<
|
|||
encoder: &mut A::CommandEncoder,
|
||||
texture_tracker: &mut TextureTracker<A>,
|
||||
device: &Device<A>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) {
|
||||
for init in inits {
|
||||
clear_texture(
|
||||
|
|
@ -156,6 +158,7 @@ pub(crate) fn fixup_discarded_surfaces<
|
|||
texture_tracker,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
snatch_guard,
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -167,6 +170,7 @@ impl<A: HalApi> BakedCommands<A> {
|
|||
pub(crate) fn initialize_buffer_memory(
|
||||
&mut self,
|
||||
device_tracker: &mut Tracker<A>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), DestroyedBufferError> {
|
||||
// Gather init ranges for each buffer so we can collapse them.
|
||||
// It is not possible to do this at an earlier point since previously
|
||||
|
|
@ -225,16 +229,15 @@ impl<A: HalApi> BakedCommands<A> {
|
|||
.unwrap()
|
||||
.1;
|
||||
|
||||
let snatch_guard = buffer.device.snatchable_lock.read();
|
||||
let raw_buf = buffer
|
||||
.raw
|
||||
.get(&snatch_guard)
|
||||
.get(snatch_guard)
|
||||
.ok_or(DestroyedBufferError(buffer_id))?;
|
||||
|
||||
unsafe {
|
||||
self.encoder.transition_buffers(
|
||||
transition
|
||||
.map(|pending| pending.into_hal(&buffer, &snatch_guard))
|
||||
.map(|pending| pending.into_hal(&buffer, snatch_guard))
|
||||
.into_iter(),
|
||||
);
|
||||
}
|
||||
|
|
@ -271,6 +274,7 @@ impl<A: HalApi> BakedCommands<A> {
|
|||
&mut self,
|
||||
device_tracker: &mut Tracker<A>,
|
||||
device: &Device<A>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), DestroyedTextureError> {
|
||||
let mut ranges: Vec<TextureInitRange> = Vec::new();
|
||||
for texture_use in self.texture_memory_actions.drain_init_actions() {
|
||||
|
|
@ -310,6 +314,7 @@ impl<A: HalApi> BakedCommands<A> {
|
|||
&mut device_tracker.textures,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
snatch_guard,
|
||||
);
|
||||
|
||||
// A Texture can be destroyed between the command recording
|
||||
|
|
|
|||
15
third_party/rust/wgpu-core/src/command/render.rs
vendored
15
third_party/rust/wgpu-core/src/command/render.rs
vendored
|
|
@ -739,9 +739,9 @@ impl<A: HalApi> TextureView<A> {
|
|||
const MAX_TOTAL_ATTACHMENTS: usize = hal::MAX_COLOR_ATTACHMENTS + hal::MAX_COLOR_ATTACHMENTS + 1;
|
||||
type AttachmentDataVec<T> = ArrayVec<T, MAX_TOTAL_ATTACHMENTS>;
|
||||
|
||||
struct RenderPassInfo<'a, A: HalApi> {
|
||||
struct RenderPassInfo<'a, 'd, A: HalApi> {
|
||||
context: RenderPassContext,
|
||||
usage_scope: UsageScope<A>,
|
||||
usage_scope: UsageScope<'d, A>,
|
||||
/// All render attachments, including depth/stencil
|
||||
render_attachments: AttachmentDataVec<RenderAttachment<'a, A>>,
|
||||
is_depth_read_only: bool,
|
||||
|
|
@ -754,7 +754,7 @@ struct RenderPassInfo<'a, A: HalApi> {
|
|||
multiview: Option<NonZeroU32>,
|
||||
}
|
||||
|
||||
impl<'a, A: HalApi> RenderPassInfo<'a, A> {
|
||||
impl<'a, 'd, A: HalApi> RenderPassInfo<'a, 'd, A> {
|
||||
fn add_pass_texture_init_actions<V>(
|
||||
channel: &PassChannel<V>,
|
||||
texture_memory_actions: &mut CommandBufferTextureMemoryActions<A>,
|
||||
|
|
@ -790,7 +790,7 @@ impl<'a, A: HalApi> RenderPassInfo<'a, A> {
|
|||
}
|
||||
|
||||
fn start(
|
||||
device: &Device<A>,
|
||||
device: &'d Device<A>,
|
||||
label: Option<&str>,
|
||||
color_attachments: &[Option<RenderPassColorAttachment>],
|
||||
depth_stencil_attachment: Option<&RenderPassDepthStencilAttachment>,
|
||||
|
|
@ -1214,7 +1214,7 @@ impl<'a, A: HalApi> RenderPassInfo<'a, A> {
|
|||
|
||||
Ok(Self {
|
||||
context,
|
||||
usage_scope: UsageScope::new(&device.tracker_indices),
|
||||
usage_scope: device.new_usage_scope(),
|
||||
render_attachments,
|
||||
is_depth_read_only,
|
||||
is_stencil_read_only,
|
||||
|
|
@ -1230,7 +1230,7 @@ impl<'a, A: HalApi> RenderPassInfo<'a, A> {
|
|||
mut self,
|
||||
raw: &mut A::CommandEncoder,
|
||||
snatch_guard: &SnatchGuard,
|
||||
) -> Result<(UsageScope<A>, SurfacesInDiscardState<A>), RenderPassErrorInner> {
|
||||
) -> Result<(UsageScope<'d, A>, SurfacesInDiscardState<A>), RenderPassErrorInner> {
|
||||
profiling::scope!("RenderPassInfo::finish");
|
||||
unsafe {
|
||||
raw.end_render_pass();
|
||||
|
|
@ -2374,7 +2374,7 @@ impl Global {
|
|||
.extend(texture_memory_actions.register_init_action(action));
|
||||
}
|
||||
|
||||
unsafe { bundle.execute(raw) }
|
||||
unsafe { bundle.execute(raw, &snatch_guard) }
|
||||
.map_err(|e| match e {
|
||||
ExecutionError::DestroyedBuffer(id) => {
|
||||
RenderCommandError::DestroyedBuffer(id)
|
||||
|
|
@ -2427,6 +2427,7 @@ impl Global {
|
|||
transit,
|
||||
&mut tracker.textures,
|
||||
&cmd_buf.device,
|
||||
&snatch_guard,
|
||||
);
|
||||
|
||||
cmd_buf_data
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use crate::{
|
|||
TextureInitTrackerAction,
|
||||
},
|
||||
resource::{Resource, Texture, TextureErrorDimension},
|
||||
snatch::SnatchGuard,
|
||||
track::{TextureSelector, Tracker},
|
||||
};
|
||||
|
||||
|
|
@ -452,6 +453,7 @@ fn handle_texture_init<A: HalApi>(
|
|||
copy_texture: &ImageCopyTexture,
|
||||
copy_size: &Extent3d,
|
||||
texture: &Arc<Texture<A>>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), ClearError> {
|
||||
let init_action = TextureInitTrackerAction {
|
||||
texture: texture.clone(),
|
||||
|
|
@ -480,6 +482,7 @@ fn handle_texture_init<A: HalApi>(
|
|||
&mut trackers.textures,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
snatch_guard,
|
||||
)?;
|
||||
}
|
||||
}
|
||||
|
|
@ -499,6 +502,7 @@ fn handle_src_texture_init<A: HalApi>(
|
|||
source: &ImageCopyTexture,
|
||||
copy_size: &Extent3d,
|
||||
texture: &Arc<Texture<A>>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), TransferError> {
|
||||
handle_texture_init(
|
||||
MemoryInitKind::NeedsInitializedMemory,
|
||||
|
|
@ -509,6 +513,7 @@ fn handle_src_texture_init<A: HalApi>(
|
|||
source,
|
||||
copy_size,
|
||||
texture,
|
||||
snatch_guard,
|
||||
)?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -525,6 +530,7 @@ fn handle_dst_texture_init<A: HalApi>(
|
|||
destination: &ImageCopyTexture,
|
||||
copy_size: &Extent3d,
|
||||
texture: &Arc<Texture<A>>,
|
||||
snatch_guard: &SnatchGuard<'_>,
|
||||
) -> Result<(), TransferError> {
|
||||
// Attention: If we don't write full texture subresources, we need to a full
|
||||
// clear first since we don't track subrects. This means that in rare cases
|
||||
|
|
@ -549,6 +555,7 @@ fn handle_dst_texture_init<A: HalApi>(
|
|||
destination,
|
||||
copy_size,
|
||||
texture,
|
||||
snatch_guard,
|
||||
)?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -779,6 +786,8 @@ impl Global {
|
|||
|
||||
let (dst_range, dst_base) = extract_texture_selector(destination, copy_size, &dst_texture)?;
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
|
||||
// Handle texture init *before* dealing with barrier transitions so we
|
||||
// have an easier time inserting "immediate-inits" that may be required
|
||||
// by prior discards in rare cases.
|
||||
|
|
@ -790,10 +799,9 @@ impl Global {
|
|||
destination,
|
||||
copy_size,
|
||||
&dst_texture,
|
||||
&snatch_guard,
|
||||
)?;
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
|
||||
let (src_buffer, src_pending) = {
|
||||
let buffer_guard = hub.buffers.read();
|
||||
let src_buffer = buffer_guard
|
||||
|
|
@ -935,6 +943,8 @@ impl Global {
|
|||
|
||||
let (src_range, src_base) = extract_texture_selector(source, copy_size, &src_texture)?;
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
|
||||
// Handle texture init *before* dealing with barrier transitions so we
|
||||
// have an easier time inserting "immediate-inits" that may be required
|
||||
// by prior discards in rare cases.
|
||||
|
|
@ -946,10 +956,9 @@ impl Global {
|
|||
source,
|
||||
copy_size,
|
||||
&src_texture,
|
||||
&snatch_guard,
|
||||
)?;
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
|
||||
let src_pending = tracker
|
||||
.textures
|
||||
.set_single(&src_texture, src_range, hal::TextureUses::COPY_SRC)
|
||||
|
|
@ -1152,6 +1161,7 @@ impl Global {
|
|||
source,
|
||||
copy_size,
|
||||
&src_texture,
|
||||
&snatch_guard,
|
||||
)?;
|
||||
handle_dst_texture_init(
|
||||
encoder,
|
||||
|
|
@ -1161,6 +1171,7 @@ impl Global {
|
|||
destination,
|
||||
copy_size,
|
||||
&dst_texture,
|
||||
&snatch_guard,
|
||||
)?;
|
||||
|
||||
let src_pending = cmd_buf_data
|
||||
|
|
|
|||
33
third_party/rust/wgpu-core/src/device/global.rs
vendored
33
third_party/rust/wgpu-core/src/device/global.rs
vendored
|
|
@ -192,7 +192,15 @@ impl Global {
|
|||
let ptr = if map_size == 0 {
|
||||
std::ptr::NonNull::dangling()
|
||||
} else {
|
||||
match map_buffer(device.raw(), &buffer, 0, map_size, HostMap::Write) {
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
match map_buffer(
|
||||
device.raw(),
|
||||
&buffer,
|
||||
0,
|
||||
map_size,
|
||||
HostMap::Write,
|
||||
&snatch_guard,
|
||||
) {
|
||||
Ok(ptr) => ptr,
|
||||
Err(e) => {
|
||||
to_destroy.push(buffer);
|
||||
|
|
@ -2008,9 +2016,10 @@ impl Global {
|
|||
}
|
||||
|
||||
// Wait for all work to finish before configuring the surface.
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
let fence = device.fence.read();
|
||||
let fence = fence.as_ref().unwrap();
|
||||
match device.maintain(fence, wgt::Maintain::Wait) {
|
||||
match device.maintain(fence, wgt::Maintain::Wait, snatch_guard) {
|
||||
Ok((closures, _)) => {
|
||||
user_callbacks = closures;
|
||||
}
|
||||
|
|
@ -2120,9 +2129,10 @@ impl Global {
|
|||
device: &crate::device::Device<A>,
|
||||
maintain: wgt::Maintain<queue::WrappedSubmissionIndex>,
|
||||
) -> Result<DevicePoll, WaitIdleError> {
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
let fence = device.fence.read();
|
||||
let fence = fence.as_ref().unwrap();
|
||||
let (closures, queue_empty) = device.maintain(fence, maintain)?;
|
||||
let (closures, queue_empty) = device.maintain(fence, maintain, snatch_guard)?;
|
||||
|
||||
// Some deferred destroys are scheduled in maintain so run this right after
|
||||
// to avoid holding on to them until the next device poll.
|
||||
|
|
@ -2240,6 +2250,15 @@ impl Global {
|
|||
}
|
||||
}
|
||||
|
||||
// This is a test-only function to force the device into an
|
||||
// invalid state by inserting an error value in its place in
|
||||
// the registry.
|
||||
pub fn device_make_invalid<A: HalApi>(&self, device_id: DeviceId) {
|
||||
let hub = A::hub(self);
|
||||
hub.devices
|
||||
.force_replace_with_error(device_id, "Made invalid.");
|
||||
}
|
||||
|
||||
pub fn device_drop<A: HalApi>(&self, device_id: DeviceId) {
|
||||
profiling::scope!("Device::drop");
|
||||
api_log!("Device::drop {device_id:?}");
|
||||
|
|
@ -2275,7 +2294,7 @@ impl Global {
|
|||
) {
|
||||
let hub = A::hub(self);
|
||||
|
||||
if let Ok(device) = hub.devices.get(device_id) {
|
||||
if let Ok(Some(device)) = hub.devices.try_get(device_id) {
|
||||
let mut life_tracker = device.lock_life();
|
||||
if let Some(existing_closure) = life_tracker.device_lost_closure.take() {
|
||||
// It's important to not hold the lock while calling the closure.
|
||||
|
|
@ -2284,6 +2303,12 @@ impl Global {
|
|||
life_tracker = device.lock_life();
|
||||
}
|
||||
life_tracker.device_lost_closure = Some(device_lost_closure);
|
||||
} else {
|
||||
// No device? Okay. Just like we have to call any existing closure
|
||||
// before we drop it, we need to call this closure before we exit
|
||||
// this function, because there's no device that is ever going to
|
||||
// call it.
|
||||
device_lost_closure.call(DeviceLostReason::DeviceInvalid, "".to_string());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
11
third_party/rust/wgpu-core/src/device/life.rs
vendored
11
third_party/rust/wgpu-core/src/device/life.rs
vendored
|
|
@ -12,6 +12,7 @@ use crate::{
|
|||
self, Buffer, DestroyedBuffer, DestroyedTexture, QuerySet, Resource, Sampler,
|
||||
StagingBuffer, Texture, TextureView,
|
||||
},
|
||||
snatch::SnatchGuard,
|
||||
track::{ResourceTracker, Tracker, TrackerIndex},
|
||||
FastHashMap, SubmissionIndex,
|
||||
};
|
||||
|
|
@ -780,6 +781,7 @@ impl<A: HalApi> LifetimeTracker<A> {
|
|||
&mut self,
|
||||
raw: &A::Device,
|
||||
trackers: &Mutex<Tracker<A>>,
|
||||
snatch_guard: &SnatchGuard,
|
||||
) -> Vec<super::BufferMapPendingClosure> {
|
||||
if self.ready_to_map.is_empty() {
|
||||
return Vec::new();
|
||||
|
|
@ -816,7 +818,14 @@ impl<A: HalApi> LifetimeTracker<A> {
|
|||
log::debug!("Buffer {tracker_index:?} map state -> Active");
|
||||
let host = mapping.op.host;
|
||||
let size = mapping.range.end - mapping.range.start;
|
||||
match super::map_buffer(raw, &buffer, mapping.range.start, size, host) {
|
||||
match super::map_buffer(
|
||||
raw,
|
||||
&buffer,
|
||||
mapping.range.start,
|
||||
size,
|
||||
host,
|
||||
snatch_guard,
|
||||
) {
|
||||
Ok(ptr) => {
|
||||
*buffer.map_state.lock() = resource::BufferMapState::Active {
|
||||
ptr,
|
||||
|
|
|
|||
11
third_party/rust/wgpu-core/src/device/mod.rs
vendored
11
third_party/rust/wgpu-core/src/device/mod.rs
vendored
|
|
@ -3,9 +3,10 @@ use crate::{
|
|||
hal_api::HalApi,
|
||||
hub::Hub,
|
||||
id::{BindGroupLayoutId, PipelineLayoutId},
|
||||
resource::{Buffer, BufferAccessResult},
|
||||
resource::{BufferAccessError, BufferMapOperation},
|
||||
resource_log, Label, DOWNLEVEL_ERROR_MESSAGE,
|
||||
resource::{Buffer, BufferAccessError, BufferAccessResult, BufferMapOperation},
|
||||
resource_log,
|
||||
snatch::SnatchGuard,
|
||||
Label, DOWNLEVEL_ERROR_MESSAGE,
|
||||
};
|
||||
|
||||
use arrayvec::ArrayVec;
|
||||
|
|
@ -317,10 +318,10 @@ fn map_buffer<A: HalApi>(
|
|||
offset: BufferAddress,
|
||||
size: BufferAddress,
|
||||
kind: HostMap,
|
||||
snatch_guard: &SnatchGuard,
|
||||
) -> Result<ptr::NonNull<u8>, BufferAccessError> {
|
||||
let snatch_guard = buffer.device.snatchable_lock.read();
|
||||
let raw_buffer = buffer
|
||||
.raw(&snatch_guard)
|
||||
.raw(snatch_guard)
|
||||
.ok_or(BufferAccessError::Destroyed)?;
|
||||
let mapping = unsafe {
|
||||
raw.map_buffer(raw_buffer, offset..offset + size)
|
||||
|
|
|
|||
17
third_party/rust/wgpu-core/src/device/queue.rs
vendored
17
third_party/rust/wgpu-core/src/device/queue.rs
vendored
|
|
@ -815,6 +815,7 @@ impl Global {
|
|||
&mut trackers.textures,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
&device.snatchable_lock.read(),
|
||||
)
|
||||
.map_err(QueueWriteError::from)?;
|
||||
}
|
||||
|
|
@ -1084,6 +1085,7 @@ impl Global {
|
|||
&mut trackers.textures,
|
||||
&device.alignments,
|
||||
device.zero_buffer.as_ref().unwrap(),
|
||||
&device.snatchable_lock.read(),
|
||||
)
|
||||
.map_err(QueueWriteError::from)?;
|
||||
}
|
||||
|
|
@ -1147,6 +1149,9 @@ impl Global {
|
|||
|
||||
let device = queue.device.as_ref().unwrap();
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
|
||||
// Fence lock must be acquired after the snatch lock everywhere to avoid deadlocks.
|
||||
let mut fence = device.fence.write();
|
||||
let fence = fence.as_mut().unwrap();
|
||||
let submit_index = device
|
||||
|
|
@ -1155,9 +1160,7 @@ impl Global {
|
|||
+ 1;
|
||||
let mut active_executions = Vec::new();
|
||||
|
||||
let mut used_surface_textures = track::TextureUsageScope::new();
|
||||
|
||||
let snatch_guard = device.snatchable_lock.read();
|
||||
let mut used_surface_textures = track::TextureUsageScope::default();
|
||||
|
||||
let mut submit_surface_textures_owned = SmallVec::<[_; 2]>::new();
|
||||
|
||||
|
|
@ -1391,10 +1394,10 @@ impl Global {
|
|||
//Note: locking the trackers has to be done after the storages
|
||||
let mut trackers = device.trackers.lock();
|
||||
baked
|
||||
.initialize_buffer_memory(&mut *trackers)
|
||||
.initialize_buffer_memory(&mut *trackers, &snatch_guard)
|
||||
.map_err(|err| QueueSubmitError::DestroyedBuffer(err.0))?;
|
||||
baked
|
||||
.initialize_texture_memory(&mut *trackers, device)
|
||||
.initialize_texture_memory(&mut *trackers, device, &snatch_guard)
|
||||
.map_err(|err| QueueSubmitError::DestroyedTexture(err.0))?;
|
||||
//Note: stateless trackers are not merged:
|
||||
// device already knows these resources exist.
|
||||
|
|
@ -1435,7 +1438,7 @@ impl Global {
|
|||
baked.encoder.end_encoding().unwrap()
|
||||
};
|
||||
baked.list.push(present);
|
||||
used_surface_textures = track::TextureUsageScope::new();
|
||||
used_surface_textures = track::TextureUsageScope::default();
|
||||
}
|
||||
|
||||
// done
|
||||
|
|
@ -1542,7 +1545,7 @@ impl Global {
|
|||
|
||||
// This will schedule destruction of all resources that are no longer needed
|
||||
// by the user but used in the command stream, among other things.
|
||||
let (closures, _) = match device.maintain(fence, wgt::Maintain::Poll) {
|
||||
let (closures, _) = match device.maintain(fence, wgt::Maintain::Poll, snatch_guard) {
|
||||
Ok(closures) => closures,
|
||||
Err(WaitIdleError::Device(err)) => return Err(QueueSubmitError::Queue(err)),
|
||||
Err(WaitIdleError::StuckGpu) => return Err(QueueSubmitError::StuckGpu),
|
||||
|
|
|
|||
|
|
@ -28,7 +28,10 @@ use crate::{
|
|||
resource_log,
|
||||
snatch::{SnatchGuard, SnatchLock, Snatchable},
|
||||
storage::Storage,
|
||||
track::{BindGroupStates, TextureSelector, Tracker, TrackerIndexAllocators},
|
||||
track::{
|
||||
BindGroupStates, TextureSelector, Tracker, TrackerIndexAllocators, UsageScope,
|
||||
UsageScopePool,
|
||||
},
|
||||
validation::{
|
||||
self, check_buffer_usage, check_texture_usage, validate_color_attachment_bytes_per_sample,
|
||||
},
|
||||
|
|
@ -97,6 +100,8 @@ pub struct Device<A: HalApi> {
|
|||
pub(crate) command_allocator: Mutex<Option<CommandAllocator<A>>>,
|
||||
//Note: The submission index here corresponds to the last submission that is done.
|
||||
pub(crate) active_submission_index: AtomicU64, //SubmissionIndex,
|
||||
// NOTE: if both are needed, the `snatchable_lock` must be consistently acquired before the
|
||||
// `fence` lock to avoid deadlocks.
|
||||
pub(crate) fence: RwLock<Option<A::Fence>>,
|
||||
pub(crate) snatchable_lock: SnatchLock,
|
||||
|
||||
|
|
@ -135,6 +140,7 @@ pub struct Device<A: HalApi> {
|
|||
pub(crate) deferred_destroy: Mutex<Vec<DeferredDestroy<A>>>,
|
||||
#[cfg(feature = "trace")]
|
||||
pub(crate) trace: Mutex<Option<trace::Trace>>,
|
||||
pub(crate) usage_scopes: UsageScopePool<A>,
|
||||
}
|
||||
|
||||
pub(crate) enum DeferredDestroy<A: HalApi> {
|
||||
|
|
@ -296,6 +302,7 @@ impl<A: HalApi> Device<A> {
|
|||
instance_flags,
|
||||
pending_writes: Mutex::new(Some(pending_writes)),
|
||||
deferred_destroy: Mutex::new(Vec::new()),
|
||||
usage_scopes: Default::default(),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -387,6 +394,7 @@ impl<A: HalApi> Device<A> {
|
|||
&'this self,
|
||||
fence: &A::Fence,
|
||||
maintain: wgt::Maintain<queue::WrappedSubmissionIndex>,
|
||||
snatch_guard: SnatchGuard,
|
||||
) -> Result<(UserClosures, bool), WaitIdleError> {
|
||||
profiling::scope!("Device::maintain");
|
||||
let last_done_index = if maintain.is_wait() {
|
||||
|
|
@ -440,7 +448,8 @@ impl<A: HalApi> Device<A> {
|
|||
life_tracker.triage_mapped();
|
||||
}
|
||||
|
||||
let mapping_closures = life_tracker.handle_mapping(self.raw(), &self.trackers);
|
||||
let mapping_closures =
|
||||
life_tracker.handle_mapping(self.raw(), &self.trackers, &snatch_guard);
|
||||
|
||||
let queue_empty = life_tracker.queue_empty();
|
||||
|
||||
|
|
@ -467,8 +476,9 @@ impl<A: HalApi> Device<A> {
|
|||
}
|
||||
}
|
||||
|
||||
// Don't hold the lock while calling release_gpu_resources.
|
||||
// Don't hold the locks while calling release_gpu_resources.
|
||||
drop(life_tracker);
|
||||
drop(snatch_guard);
|
||||
|
||||
if should_release_gpu_resource {
|
||||
self.release_gpu_resources();
|
||||
|
|
@ -3568,6 +3578,10 @@ impl<A: HalApi> Device<A> {
|
|||
let _ = texture.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn new_usage_scope(&self) -> UsageScope<'_, A> {
|
||||
UsageScope::new_pooled(&self.usage_scopes, &self.tracker_indices)
|
||||
}
|
||||
}
|
||||
|
||||
impl<A: HalApi> Device<A> {
|
||||
|
|
|
|||
35
third_party/rust/wgpu-core/src/snatch.rs
vendored
35
third_party/rust/wgpu-core/src/snatch.rs
vendored
|
|
@ -1,7 +1,12 @@
|
|||
#![allow(unused)]
|
||||
|
||||
use parking_lot::{RwLock, RwLockReadGuard, RwLockWriteGuard};
|
||||
use std::cell::UnsafeCell;
|
||||
use std::{
|
||||
backtrace::Backtrace,
|
||||
cell::{Cell, RefCell, UnsafeCell},
|
||||
panic::{self, Location},
|
||||
thread,
|
||||
};
|
||||
|
||||
/// A guard that provides read access to snatchable data.
|
||||
pub struct SnatchGuard<'a>(RwLockReadGuard<'a, ()>);
|
||||
|
|
@ -59,6 +64,10 @@ impl<T> std::fmt::Debug for Snatchable<T> {
|
|||
|
||||
unsafe impl<T> Sync for Snatchable<T> {}
|
||||
|
||||
thread_local! {
|
||||
static READ_LOCK_LOCATION: Cell<Option<(&'static Location<'static>, Backtrace)>> = const { Cell::new(None) };
|
||||
}
|
||||
|
||||
/// A Device-global lock for all snatchable data.
|
||||
pub struct SnatchLock {
|
||||
lock: RwLock<()>,
|
||||
|
|
@ -76,7 +85,24 @@ impl SnatchLock {
|
|||
}
|
||||
|
||||
/// Request read access to snatchable resources.
|
||||
#[track_caller]
|
||||
pub fn read(&self) -> SnatchGuard {
|
||||
if cfg!(debug_assertions) {
|
||||
let caller = Location::caller();
|
||||
let backtrace = Backtrace::capture();
|
||||
if let Some((prev, bt)) = READ_LOCK_LOCATION.take() {
|
||||
let current = thread::current();
|
||||
let name = current.name().unwrap_or("<unnamed>");
|
||||
panic!(
|
||||
"thread '{name}' attempted to acquire a snatch read lock recursively.\n
|
||||
- {prev}\n{bt}\n
|
||||
- {caller}\n{backtrace}"
|
||||
);
|
||||
} else {
|
||||
READ_LOCK_LOCATION.set(Some((caller, backtrace)));
|
||||
}
|
||||
}
|
||||
|
||||
SnatchGuard(self.lock.read())
|
||||
}
|
||||
|
||||
|
|
@ -89,3 +115,10 @@ impl SnatchLock {
|
|||
ExclusiveSnatchGuard(self.lock.write())
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for SnatchGuard<'_> {
|
||||
fn drop(&mut self) {
|
||||
#[cfg(debug_assertions)]
|
||||
READ_LOCK_LOCATION.take();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
third_party/rust/wgpu-core/src/track/buffer.rs
vendored
12
third_party/rust/wgpu-core/src/track/buffer.rs
vendored
|
|
@ -108,23 +108,27 @@ impl<A: HalApi> BufferBindGroupState<A> {
|
|||
#[derive(Debug)]
|
||||
pub(crate) struct BufferUsageScope<A: HalApi> {
|
||||
state: Vec<BufferUses>,
|
||||
|
||||
metadata: ResourceMetadata<Buffer<A>>,
|
||||
}
|
||||
|
||||
impl<A: HalApi> BufferUsageScope<A> {
|
||||
pub fn new() -> Self {
|
||||
impl<A: HalApi> Default for BufferUsageScope<A> {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
state: Vec::new(),
|
||||
|
||||
metadata: ResourceMetadata::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<A: HalApi> BufferUsageScope<A> {
|
||||
fn tracker_assert_in_bounds(&self, index: usize) {
|
||||
strict_assert!(index < self.state.len());
|
||||
self.metadata.tracker_assert_in_bounds(index);
|
||||
}
|
||||
pub fn clear(&mut self) {
|
||||
self.state.clear();
|
||||
self.metadata.clear();
|
||||
}
|
||||
|
||||
/// Sets the size of all the vectors inside the tracker.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@ impl<T: Resource> ResourceMetadata<T> {
|
|||
resize_bitvec(&mut self.owned, size);
|
||||
}
|
||||
|
||||
pub(super) fn clear(&mut self) {
|
||||
self.resources.clear();
|
||||
self.owned.clear();
|
||||
}
|
||||
|
||||
/// Ensures a given index is in bounds for all arrays and does
|
||||
/// sanity checks of the presence of a refcount.
|
||||
///
|
||||
|
|
|
|||
50
third_party/rust/wgpu-core/src/track/mod.rs
vendored
50
third_party/rust/wgpu-core/src/track/mod.rs
vendored
|
|
@ -480,8 +480,8 @@ impl<A: HalApi> RenderBundleScope<A> {
|
|||
/// Create the render bundle scope and pull the maximum IDs from the hubs.
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
buffers: RwLock::new(BufferUsageScope::new()),
|
||||
textures: RwLock::new(TextureUsageScope::new()),
|
||||
buffers: RwLock::new(BufferUsageScope::default()),
|
||||
textures: RwLock::new(TextureUsageScope::default()),
|
||||
bind_groups: RwLock::new(StatelessTracker::new()),
|
||||
render_pipelines: RwLock::new(StatelessTracker::new()),
|
||||
query_sets: RwLock::new(StatelessTracker::new()),
|
||||
|
|
@ -512,28 +512,52 @@ impl<A: HalApi> RenderBundleScope<A> {
|
|||
}
|
||||
}
|
||||
|
||||
/// A pool for storing the memory used by [`UsageScope`]s. We take and store this memory when the
|
||||
/// scope is dropped to avoid reallocating. The memory required only grows and allocation cost is
|
||||
/// significant when a large number of resources have been used.
|
||||
pub(crate) type UsageScopePool<A> = Mutex<Vec<(BufferUsageScope<A>, TextureUsageScope<A>)>>;
|
||||
|
||||
/// A usage scope tracker. Only needs to store stateful resources as stateless
|
||||
/// resources cannot possibly have a usage conflict.
|
||||
#[derive(Debug)]
|
||||
pub(crate) struct UsageScope<A: HalApi> {
|
||||
pub(crate) struct UsageScope<'a, A: HalApi> {
|
||||
pub pool: &'a UsageScopePool<A>,
|
||||
pub buffers: BufferUsageScope<A>,
|
||||
pub textures: TextureUsageScope<A>,
|
||||
}
|
||||
|
||||
impl<A: HalApi> UsageScope<A> {
|
||||
/// Create the render bundle scope and pull the maximum IDs from the hubs.
|
||||
pub fn new(tracker_indices: &TrackerIndexAllocators) -> Self {
|
||||
let mut value = Self {
|
||||
buffers: BufferUsageScope::new(),
|
||||
textures: TextureUsageScope::new(),
|
||||
impl<'a, A: HalApi> Drop for UsageScope<'a, A> {
|
||||
fn drop(&mut self) {
|
||||
// clear vecs and push into pool
|
||||
self.buffers.clear();
|
||||
self.textures.clear();
|
||||
self.pool.lock().push((
|
||||
std::mem::take(&mut self.buffers),
|
||||
std::mem::take(&mut self.textures),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
impl<A: HalApi> UsageScope<'static, A> {
|
||||
pub fn new_pooled<'d>(
|
||||
pool: &'d UsageScopePool<A>,
|
||||
tracker_indices: &TrackerIndexAllocators,
|
||||
) -> UsageScope<'d, A> {
|
||||
let pooled = pool.lock().pop().unwrap_or_default();
|
||||
|
||||
let mut scope = UsageScope::<'d, A> {
|
||||
pool,
|
||||
buffers: pooled.0,
|
||||
textures: pooled.1,
|
||||
};
|
||||
|
||||
value.buffers.set_size(tracker_indices.buffers.size());
|
||||
value.textures.set_size(tracker_indices.textures.size());
|
||||
|
||||
value
|
||||
scope.buffers.set_size(tracker_indices.buffers.size());
|
||||
scope.textures.set_size(tracker_indices.textures.size());
|
||||
scope
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, A: HalApi> UsageScope<'a, A> {
|
||||
/// Merge the inner contents of a bind group into the usage scope.
|
||||
///
|
||||
/// Only stateful things are merged in here, all other resources are owned
|
||||
|
|
|
|||
13
third_party/rust/wgpu-core/src/track/texture.rs
vendored
13
third_party/rust/wgpu-core/src/track/texture.rs
vendored
|
|
@ -210,6 +210,7 @@ pub(crate) struct TextureStateSet {
|
|||
simple: Vec<TextureUses>,
|
||||
complex: FastHashMap<usize, ComplexTextureState>,
|
||||
}
|
||||
|
||||
impl TextureStateSet {
|
||||
fn new() -> Self {
|
||||
Self {
|
||||
|
|
@ -235,15 +236,16 @@ pub(crate) struct TextureUsageScope<A: HalApi> {
|
|||
metadata: ResourceMetadata<Texture<A>>,
|
||||
}
|
||||
|
||||
impl<A: HalApi> TextureUsageScope<A> {
|
||||
pub fn new() -> Self {
|
||||
impl<A: HalApi> Default for TextureUsageScope<A> {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
set: TextureStateSet::new(),
|
||||
|
||||
metadata: ResourceMetadata::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<A: HalApi> TextureUsageScope<A> {
|
||||
fn tracker_assert_in_bounds(&self, index: usize) {
|
||||
self.metadata.tracker_assert_in_bounds(index);
|
||||
|
||||
|
|
@ -258,6 +260,11 @@ impl<A: HalApi> TextureUsageScope<A> {
|
|||
});
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
self.set.clear();
|
||||
self.metadata.clear();
|
||||
}
|
||||
|
||||
/// Sets the size of all the vectors inside the tracker.
|
||||
///
|
||||
/// Must be called with the highest possible Texture ID before
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -432,7 +432,9 @@ impl super::Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Adapter<super::Api> for super::Adapter {
|
||||
impl crate::Adapter for super::Adapter {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
_features: wgt::Features,
|
||||
|
|
|
|||
|
|
@ -249,7 +249,9 @@ impl super::CommandEncoder {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::CommandEncoder<super::Api> for super::CommandEncoder {
|
||||
impl crate::CommandEncoder for super::CommandEncoder {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn begin_encoding(&mut self, label: crate::Label) -> Result<(), crate::DeviceError> {
|
||||
let list = loop {
|
||||
if let Some(list) = self.free_lists.pop() {
|
||||
|
|
|
|||
15
third_party/rust/wgpu-hal/src/dx12/device.rs
vendored
15
third_party/rust/wgpu-hal/src/dx12/device.rs
vendored
|
|
@ -323,7 +323,9 @@ impl super::Device {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Device<super::Api> for super::Device {
|
||||
impl crate::Device for super::Device {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn exit(mut self, _queue: super::Queue) {
|
||||
self.rtv_pool.lock().free_handle(self.null_rtv_handle);
|
||||
self.mem_allocator = None;
|
||||
|
|
@ -1098,7 +1100,16 @@ impl crate::Device<super::Api> for super::Device {
|
|||
}
|
||||
let mut dynamic_buffers = Vec::new();
|
||||
|
||||
for (layout, entry) in desc.layout.entries.iter().zip(desc.entries.iter()) {
|
||||
let layout_and_entry_iter = desc.entries.iter().map(|entry| {
|
||||
let layout = desc
|
||||
.layout
|
||||
.entries
|
||||
.iter()
|
||||
.find(|layout_entry| layout_entry.binding == entry.binding)
|
||||
.expect("internal error: no layout entry found with binding slot");
|
||||
(layout, entry)
|
||||
});
|
||||
for (layout, entry) in layout_and_entry_iter {
|
||||
match layout.ty {
|
||||
wgt::BindingType::Buffer {
|
||||
has_dynamic_offset: true,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ impl Drop for super::Instance {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Instance<super::Api> for super::Instance {
|
||||
impl crate::Instance for super::Instance {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn init(desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init DX12 Backend");
|
||||
let lib_main = d3d12::D3D12Lib::new().map_err(|e| {
|
||||
|
|
|
|||
8
third_party/rust/wgpu-hal/src/dx12/mod.rs
vendored
8
third_party/rust/wgpu-hal/src/dx12/mod.rs
vendored
|
|
@ -639,7 +639,9 @@ impl SwapChain {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<Api> for Surface {
|
||||
impl crate::Surface for Surface {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &Device,
|
||||
|
|
@ -884,7 +886,9 @@ impl crate::Surface<Api> for Surface {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Queue<Api> for Queue {
|
||||
impl crate::Queue for Queue {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&CommandBuffer],
|
||||
|
|
|
|||
24
third_party/rust/wgpu-hal/src/empty.rs
vendored
24
third_party/rust/wgpu-hal/src/empty.rs
vendored
|
|
@ -39,7 +39,9 @@ impl crate::Api for Api {
|
|||
type ComputePipeline = Resource;
|
||||
}
|
||||
|
||||
impl crate::Instance<Api> for Context {
|
||||
impl crate::Instance for Context {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn init(desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
Ok(Context)
|
||||
}
|
||||
|
|
@ -56,7 +58,9 @@ impl crate::Instance<Api> for Context {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<Api> for Context {
|
||||
impl crate::Surface for Context {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &Context,
|
||||
|
|
@ -76,7 +80,9 @@ impl crate::Surface<Api> for Context {
|
|||
unsafe fn discard_texture(&self, texture: Resource) {}
|
||||
}
|
||||
|
||||
impl crate::Adapter<Api> for Context {
|
||||
impl crate::Adapter for Context {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
features: wgt::Features,
|
||||
|
|
@ -100,7 +106,9 @@ impl crate::Adapter<Api> for Context {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Queue<Api> for Context {
|
||||
impl crate::Queue for Context {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&Resource],
|
||||
|
|
@ -122,7 +130,9 @@ impl crate::Queue<Api> for Context {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Device<Api> for Context {
|
||||
impl crate::Device for Context {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn exit(self, queue: Context) {}
|
||||
unsafe fn create_buffer(&self, desc: &crate::BufferDescriptor) -> DeviceResult<Resource> {
|
||||
Ok(Resource)
|
||||
|
|
@ -259,7 +269,9 @@ impl crate::Device<Api> for Context {
|
|||
unsafe fn destroy_acceleration_structure(&self, _acceleration_structure: Resource) {}
|
||||
}
|
||||
|
||||
impl crate::CommandEncoder<Api> for Encoder {
|
||||
impl crate::CommandEncoder for Encoder {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn begin_encoding(&mut self, label: crate::Label) -> DeviceResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -922,7 +922,9 @@ impl super::Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Adapter<super::Api> for super::Adapter {
|
||||
impl crate::Adapter for super::Adapter {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
features: wgt::Features,
|
||||
|
|
|
|||
|
|
@ -250,7 +250,9 @@ impl super::CommandEncoder {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::CommandEncoder<super::Api> for super::CommandEncoder {
|
||||
impl crate::CommandEncoder for super::CommandEncoder {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn begin_encoding(&mut self, label: crate::Label) -> Result<(), crate::DeviceError> {
|
||||
self.state = State::default();
|
||||
self.cmd_buffer.label = label.map(str::to_string);
|
||||
|
|
|
|||
21
third_party/rust/wgpu-hal/src/gles/device.rs
vendored
21
third_party/rust/wgpu-hal/src/gles/device.rs
vendored
|
|
@ -483,7 +483,9 @@ impl super::Device {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Device<super::Api> for super::Device {
|
||||
impl crate::Device for super::Device {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn exit(self, queue: super::Queue) {
|
||||
let gl = &self.shared.context.lock();
|
||||
unsafe { gl.delete_vertex_array(self.main_vao) };
|
||||
|
|
@ -1123,8 +1125,10 @@ impl crate::Device<super::Api> for super::Device {
|
|||
!0;
|
||||
bg_layout
|
||||
.entries
|
||||
.last()
|
||||
.map_or(0, |b| b.binding as usize + 1)
|
||||
.iter()
|
||||
.map(|b| b.binding)
|
||||
.max()
|
||||
.map_or(0, |idx| idx as usize + 1)
|
||||
]
|
||||
.into_boxed_slice();
|
||||
|
||||
|
|
@ -1177,7 +1181,16 @@ impl crate::Device<super::Api> for super::Device {
|
|||
) -> Result<super::BindGroup, crate::DeviceError> {
|
||||
let mut contents = Vec::new();
|
||||
|
||||
for (entry, layout) in desc.entries.iter().zip(desc.layout.entries.iter()) {
|
||||
let layout_and_entry_iter = desc.entries.iter().map(|entry| {
|
||||
let layout = desc
|
||||
.layout
|
||||
.entries
|
||||
.iter()
|
||||
.find(|layout_entry| layout_entry.binding == entry.binding)
|
||||
.expect("internal error: no layout entry found with binding slot");
|
||||
(entry, layout)
|
||||
});
|
||||
for (entry, layout) in layout_and_entry_iter {
|
||||
let binding = match layout.ty {
|
||||
wgt::BindingType::Buffer { .. } => {
|
||||
let bb = &desc.buffers[entry.resource_index as usize];
|
||||
|
|
|
|||
8
third_party/rust/wgpu-hal/src/gles/egl.rs
vendored
8
third_party/rust/wgpu-hal/src/gles/egl.rs
vendored
|
|
@ -703,7 +703,9 @@ impl Instance {
|
|||
unsafe impl Send for Instance {}
|
||||
unsafe impl Sync for Instance {}
|
||||
|
||||
impl crate::Instance<super::Api> for Instance {
|
||||
impl crate::Instance for Instance {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn init(desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init OpenGL (EGL) Backend");
|
||||
#[cfg(Emscripten)]
|
||||
|
|
@ -1165,7 +1167,9 @@ impl Surface {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<super::Api> for Surface {
|
||||
impl crate::Surface for Surface {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &super::Device,
|
||||
|
|
|
|||
4
third_party/rust/wgpu-hal/src/gles/queue.rs
vendored
4
third_party/rust/wgpu-hal/src/gles/queue.rs
vendored
|
|
@ -1748,7 +1748,9 @@ impl super::Queue {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Queue<super::Api> for super::Queue {
|
||||
impl crate::Queue for super::Queue {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&super::CommandBuffer],
|
||||
|
|
|
|||
8
third_party/rust/wgpu-hal/src/gles/web.rs
vendored
8
third_party/rust/wgpu-hal/src/gles/web.rs
vendored
|
|
@ -116,7 +116,9 @@ unsafe impl Sync for Instance {}
|
|||
#[cfg(send_sync)]
|
||||
unsafe impl Send for Instance {}
|
||||
|
||||
impl crate::Instance<super::Api> for Instance {
|
||||
impl crate::Instance for Instance {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn init(_desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init OpenGL (WebGL) Backend");
|
||||
Ok(Instance {
|
||||
|
|
@ -309,7 +311,9 @@ impl Surface {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<super::Api> for Surface {
|
||||
impl crate::Surface for Surface {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &super::Device,
|
||||
|
|
|
|||
8
third_party/rust/wgpu-hal/src/gles/wgl.rs
vendored
8
third_party/rust/wgpu-hal/src/gles/wgl.rs
vendored
|
|
@ -422,7 +422,9 @@ fn create_instance_device() -> Result<InstanceDevice, crate::InstanceError> {
|
|||
Ok(InstanceDevice { dc, _tx: drop_tx })
|
||||
}
|
||||
|
||||
impl crate::Instance<super::Api> for Instance {
|
||||
impl crate::Instance for Instance {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn init(desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init OpenGL (WGL) Backend");
|
||||
let opengl_module = unsafe { LoadLibraryA("opengl32.dll\0".as_ptr() as *const _) };
|
||||
|
|
@ -676,7 +678,9 @@ impl Surface {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<super::Api> for Surface {
|
||||
impl crate::Surface for Surface {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &super::Device,
|
||||
|
|
|
|||
253
third_party/rust/wgpu-hal/src/lib.rs
vendored
253
third_party/rust/wgpu-hal/src/lib.rs
vendored
|
|
@ -191,13 +191,13 @@ impl InstanceError {
|
|||
}
|
||||
|
||||
pub trait Api: Clone + fmt::Debug + Sized {
|
||||
type Instance: Instance<Self>;
|
||||
type Surface: Surface<Self>;
|
||||
type Adapter: Adapter<Self>;
|
||||
type Device: Device<Self>;
|
||||
type Instance: Instance<A = Self>;
|
||||
type Surface: Surface<A = Self>;
|
||||
type Adapter: Adapter<A = Self>;
|
||||
type Device: Device<A = Self>;
|
||||
|
||||
type Queue: Queue<Self>;
|
||||
type CommandEncoder: CommandEncoder<Self>;
|
||||
type Queue: Queue<A = Self>;
|
||||
type CommandEncoder: CommandEncoder<A = Self>;
|
||||
type CommandBuffer: WasmNotSendSync + fmt::Debug;
|
||||
|
||||
type Buffer: fmt::Debug + WasmNotSendSync + 'static;
|
||||
|
|
@ -218,18 +218,22 @@ pub trait Api: Clone + fmt::Debug + Sized {
|
|||
type AccelerationStructure: fmt::Debug + WasmNotSendSync + 'static;
|
||||
}
|
||||
|
||||
pub trait Instance<A: Api>: Sized + WasmNotSendSync {
|
||||
pub trait Instance: Sized + WasmNotSendSync {
|
||||
type A: Api;
|
||||
|
||||
unsafe fn init(desc: &InstanceDescriptor) -> Result<Self, InstanceError>;
|
||||
unsafe fn create_surface(
|
||||
&self,
|
||||
display_handle: raw_window_handle::RawDisplayHandle,
|
||||
window_handle: raw_window_handle::RawWindowHandle,
|
||||
) -> Result<A::Surface, InstanceError>;
|
||||
unsafe fn destroy_surface(&self, surface: A::Surface);
|
||||
unsafe fn enumerate_adapters(&self) -> Vec<ExposedAdapter<A>>;
|
||||
) -> Result<<Self::A as Api>::Surface, InstanceError>;
|
||||
unsafe fn destroy_surface(&self, surface: <Self::A as Api>::Surface);
|
||||
unsafe fn enumerate_adapters(&self) -> Vec<ExposedAdapter<Self::A>>;
|
||||
}
|
||||
|
||||
pub trait Surface<A: Api>: WasmNotSendSync {
|
||||
pub trait Surface: WasmNotSendSync {
|
||||
type A: Api;
|
||||
|
||||
/// Configures the surface to use the given device.
|
||||
///
|
||||
/// # Safety
|
||||
|
|
@ -240,7 +244,7 @@ pub trait Surface<A: Api>: WasmNotSendSync {
|
|||
/// - All surfaces created using other devices must have been unconfigured before this call.
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &A::Device,
|
||||
device: &<Self::A as Api>::Device,
|
||||
config: &SurfaceConfiguration,
|
||||
) -> Result<(), SurfaceError>;
|
||||
|
||||
|
|
@ -252,7 +256,7 @@ pub trait Surface<A: Api>: WasmNotSendSync {
|
|||
/// - All [`AcquiredSurfaceTexture`]s must have been destroyed.
|
||||
/// - All [`Api::TextureView`]s derived from the [`AcquiredSurfaceTexture`]s must have been destroyed.
|
||||
/// - The surface must have been configured on the given device.
|
||||
unsafe fn unconfigure(&self, device: &A::Device);
|
||||
unsafe fn unconfigure(&self, device: &<Self::A as Api>::Device);
|
||||
|
||||
/// Returns the next texture to be presented by the swapchain for drawing
|
||||
///
|
||||
|
|
@ -267,16 +271,18 @@ pub trait Surface<A: Api>: WasmNotSendSync {
|
|||
unsafe fn acquire_texture(
|
||||
&self,
|
||||
timeout: Option<std::time::Duration>,
|
||||
) -> Result<Option<AcquiredSurfaceTexture<A>>, SurfaceError>;
|
||||
unsafe fn discard_texture(&self, texture: A::SurfaceTexture);
|
||||
) -> Result<Option<AcquiredSurfaceTexture<Self::A>>, SurfaceError>;
|
||||
unsafe fn discard_texture(&self, texture: <Self::A as Api>::SurfaceTexture);
|
||||
}
|
||||
|
||||
pub trait Adapter<A: Api>: WasmNotSendSync {
|
||||
pub trait Adapter: WasmNotSendSync {
|
||||
type A: Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
features: wgt::Features,
|
||||
limits: &wgt::Limits,
|
||||
) -> Result<OpenDevice<A>, DeviceError>;
|
||||
) -> Result<OpenDevice<Self::A>, DeviceError>;
|
||||
|
||||
/// Return the set of supported capabilities for a texture format.
|
||||
unsafe fn texture_format_capabilities(
|
||||
|
|
@ -287,7 +293,10 @@ pub trait Adapter<A: Api>: WasmNotSendSync {
|
|||
/// Returns the capabilities of working with a specified surface.
|
||||
///
|
||||
/// `None` means presentation is not supported for it.
|
||||
unsafe fn surface_capabilities(&self, surface: &A::Surface) -> Option<SurfaceCapabilities>;
|
||||
unsafe fn surface_capabilities(
|
||||
&self,
|
||||
surface: &<Self::A as Api>::Surface,
|
||||
) -> Option<SurfaceCapabilities>;
|
||||
|
||||
/// Creates a [`PresentationTimestamp`] using the adapter's WSI.
|
||||
///
|
||||
|
|
@ -295,97 +304,111 @@ pub trait Adapter<A: Api>: WasmNotSendSync {
|
|||
unsafe fn get_presentation_timestamp(&self) -> wgt::PresentationTimestamp;
|
||||
}
|
||||
|
||||
pub trait Device<A: Api>: WasmNotSendSync {
|
||||
pub trait Device: WasmNotSendSync {
|
||||
type A: Api;
|
||||
|
||||
/// Exit connection to this logical device.
|
||||
unsafe fn exit(self, queue: A::Queue);
|
||||
unsafe fn exit(self, queue: <Self::A as Api>::Queue);
|
||||
/// Creates a new buffer.
|
||||
///
|
||||
/// The initial usage is `BufferUses::empty()`.
|
||||
unsafe fn create_buffer(&self, desc: &BufferDescriptor) -> Result<A::Buffer, DeviceError>;
|
||||
unsafe fn destroy_buffer(&self, buffer: A::Buffer);
|
||||
unsafe fn create_buffer(
|
||||
&self,
|
||||
desc: &BufferDescriptor,
|
||||
) -> Result<<Self::A as Api>::Buffer, DeviceError>;
|
||||
unsafe fn destroy_buffer(&self, buffer: <Self::A as Api>::Buffer);
|
||||
//TODO: clarify if zero-sized mapping is allowed
|
||||
unsafe fn map_buffer(
|
||||
&self,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
range: MemoryRange,
|
||||
) -> Result<BufferMapping, DeviceError>;
|
||||
unsafe fn unmap_buffer(&self, buffer: &A::Buffer) -> Result<(), DeviceError>;
|
||||
unsafe fn flush_mapped_ranges<I>(&self, buffer: &A::Buffer, ranges: I)
|
||||
unsafe fn unmap_buffer(&self, buffer: &<Self::A as Api>::Buffer) -> Result<(), DeviceError>;
|
||||
unsafe fn flush_mapped_ranges<I>(&self, buffer: &<Self::A as Api>::Buffer, ranges: I)
|
||||
where
|
||||
I: Iterator<Item = MemoryRange>;
|
||||
unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &A::Buffer, ranges: I)
|
||||
unsafe fn invalidate_mapped_ranges<I>(&self, buffer: &<Self::A as Api>::Buffer, ranges: I)
|
||||
where
|
||||
I: Iterator<Item = MemoryRange>;
|
||||
|
||||
/// Creates a new texture.
|
||||
///
|
||||
/// The initial usage for all subresources is `TextureUses::UNINITIALIZED`.
|
||||
unsafe fn create_texture(&self, desc: &TextureDescriptor) -> Result<A::Texture, DeviceError>;
|
||||
unsafe fn destroy_texture(&self, texture: A::Texture);
|
||||
unsafe fn create_texture(
|
||||
&self,
|
||||
desc: &TextureDescriptor,
|
||||
) -> Result<<Self::A as Api>::Texture, DeviceError>;
|
||||
unsafe fn destroy_texture(&self, texture: <Self::A as Api>::Texture);
|
||||
unsafe fn create_texture_view(
|
||||
&self,
|
||||
texture: &A::Texture,
|
||||
texture: &<Self::A as Api>::Texture,
|
||||
desc: &TextureViewDescriptor,
|
||||
) -> Result<A::TextureView, DeviceError>;
|
||||
unsafe fn destroy_texture_view(&self, view: A::TextureView);
|
||||
unsafe fn create_sampler(&self, desc: &SamplerDescriptor) -> Result<A::Sampler, DeviceError>;
|
||||
unsafe fn destroy_sampler(&self, sampler: A::Sampler);
|
||||
) -> Result<<Self::A as Api>::TextureView, DeviceError>;
|
||||
unsafe fn destroy_texture_view(&self, view: <Self::A as Api>::TextureView);
|
||||
unsafe fn create_sampler(
|
||||
&self,
|
||||
desc: &SamplerDescriptor,
|
||||
) -> Result<<Self::A as Api>::Sampler, DeviceError>;
|
||||
unsafe fn destroy_sampler(&self, sampler: <Self::A as Api>::Sampler);
|
||||
|
||||
/// Create a fresh [`CommandEncoder`].
|
||||
///
|
||||
/// The new `CommandEncoder` is in the "closed" state.
|
||||
unsafe fn create_command_encoder(
|
||||
&self,
|
||||
desc: &CommandEncoderDescriptor<A>,
|
||||
) -> Result<A::CommandEncoder, DeviceError>;
|
||||
unsafe fn destroy_command_encoder(&self, pool: A::CommandEncoder);
|
||||
desc: &CommandEncoderDescriptor<Self::A>,
|
||||
) -> Result<<Self::A as Api>::CommandEncoder, DeviceError>;
|
||||
unsafe fn destroy_command_encoder(&self, pool: <Self::A as Api>::CommandEncoder);
|
||||
|
||||
/// Creates a bind group layout.
|
||||
unsafe fn create_bind_group_layout(
|
||||
&self,
|
||||
desc: &BindGroupLayoutDescriptor,
|
||||
) -> Result<A::BindGroupLayout, DeviceError>;
|
||||
unsafe fn destroy_bind_group_layout(&self, bg_layout: A::BindGroupLayout);
|
||||
) -> Result<<Self::A as Api>::BindGroupLayout, DeviceError>;
|
||||
unsafe fn destroy_bind_group_layout(&self, bg_layout: <Self::A as Api>::BindGroupLayout);
|
||||
unsafe fn create_pipeline_layout(
|
||||
&self,
|
||||
desc: &PipelineLayoutDescriptor<A>,
|
||||
) -> Result<A::PipelineLayout, DeviceError>;
|
||||
unsafe fn destroy_pipeline_layout(&self, pipeline_layout: A::PipelineLayout);
|
||||
desc: &PipelineLayoutDescriptor<Self::A>,
|
||||
) -> Result<<Self::A as Api>::PipelineLayout, DeviceError>;
|
||||
unsafe fn destroy_pipeline_layout(&self, pipeline_layout: <Self::A as Api>::PipelineLayout);
|
||||
unsafe fn create_bind_group(
|
||||
&self,
|
||||
desc: &BindGroupDescriptor<A>,
|
||||
) -> Result<A::BindGroup, DeviceError>;
|
||||
unsafe fn destroy_bind_group(&self, group: A::BindGroup);
|
||||
desc: &BindGroupDescriptor<Self::A>,
|
||||
) -> Result<<Self::A as Api>::BindGroup, DeviceError>;
|
||||
unsafe fn destroy_bind_group(&self, group: <Self::A as Api>::BindGroup);
|
||||
|
||||
unsafe fn create_shader_module(
|
||||
&self,
|
||||
desc: &ShaderModuleDescriptor,
|
||||
shader: ShaderInput,
|
||||
) -> Result<A::ShaderModule, ShaderError>;
|
||||
unsafe fn destroy_shader_module(&self, module: A::ShaderModule);
|
||||
) -> Result<<Self::A as Api>::ShaderModule, ShaderError>;
|
||||
unsafe fn destroy_shader_module(&self, module: <Self::A as Api>::ShaderModule);
|
||||
unsafe fn create_render_pipeline(
|
||||
&self,
|
||||
desc: &RenderPipelineDescriptor<A>,
|
||||
) -> Result<A::RenderPipeline, PipelineError>;
|
||||
unsafe fn destroy_render_pipeline(&self, pipeline: A::RenderPipeline);
|
||||
desc: &RenderPipelineDescriptor<Self::A>,
|
||||
) -> Result<<Self::A as Api>::RenderPipeline, PipelineError>;
|
||||
unsafe fn destroy_render_pipeline(&self, pipeline: <Self::A as Api>::RenderPipeline);
|
||||
unsafe fn create_compute_pipeline(
|
||||
&self,
|
||||
desc: &ComputePipelineDescriptor<A>,
|
||||
) -> Result<A::ComputePipeline, PipelineError>;
|
||||
unsafe fn destroy_compute_pipeline(&self, pipeline: A::ComputePipeline);
|
||||
desc: &ComputePipelineDescriptor<Self::A>,
|
||||
) -> Result<<Self::A as Api>::ComputePipeline, PipelineError>;
|
||||
unsafe fn destroy_compute_pipeline(&self, pipeline: <Self::A as Api>::ComputePipeline);
|
||||
|
||||
unsafe fn create_query_set(
|
||||
&self,
|
||||
desc: &wgt::QuerySetDescriptor<Label>,
|
||||
) -> Result<A::QuerySet, DeviceError>;
|
||||
unsafe fn destroy_query_set(&self, set: A::QuerySet);
|
||||
unsafe fn create_fence(&self) -> Result<A::Fence, DeviceError>;
|
||||
unsafe fn destroy_fence(&self, fence: A::Fence);
|
||||
unsafe fn get_fence_value(&self, fence: &A::Fence) -> Result<FenceValue, DeviceError>;
|
||||
) -> Result<<Self::A as Api>::QuerySet, DeviceError>;
|
||||
unsafe fn destroy_query_set(&self, set: <Self::A as Api>::QuerySet);
|
||||
unsafe fn create_fence(&self) -> Result<<Self::A as Api>::Fence, DeviceError>;
|
||||
unsafe fn destroy_fence(&self, fence: <Self::A as Api>::Fence);
|
||||
unsafe fn get_fence_value(
|
||||
&self,
|
||||
fence: &<Self::A as Api>::Fence,
|
||||
) -> Result<FenceValue, DeviceError>;
|
||||
/// Calling wait with a lower value than the current fence value will immediately return.
|
||||
unsafe fn wait(
|
||||
&self,
|
||||
fence: &A::Fence,
|
||||
fence: &<Self::A as Api>::Fence,
|
||||
value: FenceValue,
|
||||
timeout_ms: u32,
|
||||
) -> Result<bool, DeviceError>;
|
||||
|
|
@ -396,22 +419,24 @@ pub trait Device<A: Api>: WasmNotSendSync {
|
|||
unsafe fn create_acceleration_structure(
|
||||
&self,
|
||||
desc: &AccelerationStructureDescriptor,
|
||||
) -> Result<A::AccelerationStructure, DeviceError>;
|
||||
) -> Result<<Self::A as Api>::AccelerationStructure, DeviceError>;
|
||||
unsafe fn get_acceleration_structure_build_sizes(
|
||||
&self,
|
||||
desc: &GetAccelerationStructureBuildSizesDescriptor<A>,
|
||||
desc: &GetAccelerationStructureBuildSizesDescriptor<Self::A>,
|
||||
) -> AccelerationStructureBuildSizes;
|
||||
unsafe fn get_acceleration_structure_device_address(
|
||||
&self,
|
||||
acceleration_structure: &A::AccelerationStructure,
|
||||
acceleration_structure: &<Self::A as Api>::AccelerationStructure,
|
||||
) -> wgt::BufferAddress;
|
||||
unsafe fn destroy_acceleration_structure(
|
||||
&self,
|
||||
acceleration_structure: A::AccelerationStructure,
|
||||
acceleration_structure: <Self::A as Api>::AccelerationStructure,
|
||||
);
|
||||
}
|
||||
|
||||
pub trait Queue<A: Api>: WasmNotSendSync {
|
||||
pub trait Queue: WasmNotSendSync {
|
||||
type A: Api;
|
||||
|
||||
/// Submits the command buffers for execution on GPU.
|
||||
///
|
||||
/// Valid usage:
|
||||
|
|
@ -422,14 +447,14 @@ pub trait Queue<A: Api>: WasmNotSendSync {
|
|||
/// passed to the surface_textures argument.
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&A::CommandBuffer],
|
||||
surface_textures: &[&A::SurfaceTexture],
|
||||
signal_fence: Option<(&mut A::Fence, FenceValue)>,
|
||||
command_buffers: &[&<Self::A as Api>::CommandBuffer],
|
||||
surface_textures: &[&<Self::A as Api>::SurfaceTexture],
|
||||
signal_fence: Option<(&mut <Self::A as Api>::Fence, FenceValue)>,
|
||||
) -> Result<(), DeviceError>;
|
||||
unsafe fn present(
|
||||
&self,
|
||||
surface: &A::Surface,
|
||||
texture: A::SurfaceTexture,
|
||||
surface: &<Self::A as Api>::Surface,
|
||||
texture: <Self::A as Api>::SurfaceTexture,
|
||||
) -> Result<(), SurfaceError>;
|
||||
unsafe fn get_timestamp_period(&self) -> f32;
|
||||
}
|
||||
|
|
@ -472,7 +497,9 @@ pub trait Queue<A: Api>: WasmNotSendSync {
|
|||
/// built it.
|
||||
///
|
||||
/// - A `CommandEncoder` must not outlive its `Device`.
|
||||
pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
||||
pub trait CommandEncoder: WasmNotSendSync + fmt::Debug {
|
||||
type A: Api;
|
||||
|
||||
/// Begin encoding a new command buffer.
|
||||
///
|
||||
/// This puts this `CommandEncoder` in the "recording" state.
|
||||
|
|
@ -510,7 +537,7 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
///
|
||||
/// [`CommandBuffer`]: Api::CommandBuffer
|
||||
/// [`begin_encoding`]: CommandEncoder::begin_encoding
|
||||
unsafe fn end_encoding(&mut self) -> Result<A::CommandBuffer, DeviceError>;
|
||||
unsafe fn end_encoding(&mut self) -> Result<<Self::A as Api>::CommandBuffer, DeviceError>;
|
||||
|
||||
/// Reclaim all resources belonging to this `CommandEncoder`.
|
||||
///
|
||||
|
|
@ -525,22 +552,26 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// [`CommandBuffer`]: Api::CommandBuffer
|
||||
unsafe fn reset_all<I>(&mut self, command_buffers: I)
|
||||
where
|
||||
I: Iterator<Item = A::CommandBuffer>;
|
||||
I: Iterator<Item = <Self::A as Api>::CommandBuffer>;
|
||||
|
||||
unsafe fn transition_buffers<'a, T>(&mut self, barriers: T)
|
||||
where
|
||||
T: Iterator<Item = BufferBarrier<'a, A>>;
|
||||
T: Iterator<Item = BufferBarrier<'a, Self::A>>;
|
||||
|
||||
unsafe fn transition_textures<'a, T>(&mut self, barriers: T)
|
||||
where
|
||||
T: Iterator<Item = TextureBarrier<'a, A>>;
|
||||
T: Iterator<Item = TextureBarrier<'a, Self::A>>;
|
||||
|
||||
// copy operations
|
||||
|
||||
unsafe fn clear_buffer(&mut self, buffer: &A::Buffer, range: MemoryRange);
|
||||
unsafe fn clear_buffer(&mut self, buffer: &<Self::A as Api>::Buffer, range: MemoryRange);
|
||||
|
||||
unsafe fn copy_buffer_to_buffer<T>(&mut self, src: &A::Buffer, dst: &A::Buffer, regions: T)
|
||||
where
|
||||
unsafe fn copy_buffer_to_buffer<T>(
|
||||
&mut self,
|
||||
src: &<Self::A as Api>::Buffer,
|
||||
dst: &<Self::A as Api>::Buffer,
|
||||
regions: T,
|
||||
) where
|
||||
T: Iterator<Item = BufferCopy>;
|
||||
|
||||
/// Copy from an external image to an internal texture.
|
||||
|
|
@ -551,7 +582,7 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
unsafe fn copy_external_image_to_texture<T>(
|
||||
&mut self,
|
||||
src: &wgt::ImageCopyExternalImage,
|
||||
dst: &A::Texture,
|
||||
dst: &<Self::A as Api>::Texture,
|
||||
dst_premultiplication: bool,
|
||||
regions: T,
|
||||
) where
|
||||
|
|
@ -563,9 +594,9 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// Note: the copy extent is in physical size (rounded to the block size)
|
||||
unsafe fn copy_texture_to_texture<T>(
|
||||
&mut self,
|
||||
src: &A::Texture,
|
||||
src: &<Self::A as Api>::Texture,
|
||||
src_usage: TextureUses,
|
||||
dst: &A::Texture,
|
||||
dst: &<Self::A as Api>::Texture,
|
||||
regions: T,
|
||||
) where
|
||||
T: Iterator<Item = TextureCopy>;
|
||||
|
|
@ -574,8 +605,12 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// Works with a single array layer.
|
||||
/// Note: `dst` current usage has to be `TextureUses::COPY_DST`.
|
||||
/// Note: the copy extent is in physical size (rounded to the block size)
|
||||
unsafe fn copy_buffer_to_texture<T>(&mut self, src: &A::Buffer, dst: &A::Texture, regions: T)
|
||||
where
|
||||
unsafe fn copy_buffer_to_texture<T>(
|
||||
&mut self,
|
||||
src: &<Self::A as Api>::Buffer,
|
||||
dst: &<Self::A as Api>::Texture,
|
||||
regions: T,
|
||||
) where
|
||||
T: Iterator<Item = BufferTextureCopy>;
|
||||
|
||||
/// Copy from texture to buffer.
|
||||
|
|
@ -583,9 +618,9 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// Note: the copy extent is in physical size (rounded to the block size)
|
||||
unsafe fn copy_texture_to_buffer<T>(
|
||||
&mut self,
|
||||
src: &A::Texture,
|
||||
src: &<Self::A as Api>::Texture,
|
||||
src_usage: TextureUses,
|
||||
dst: &A::Buffer,
|
||||
dst: &<Self::A as Api>::Buffer,
|
||||
regions: T,
|
||||
) where
|
||||
T: Iterator<Item = BufferTextureCopy>;
|
||||
|
|
@ -596,9 +631,9 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// of all the preceding groups to be taken from `layout`.
|
||||
unsafe fn set_bind_group(
|
||||
&mut self,
|
||||
layout: &A::PipelineLayout,
|
||||
layout: &<Self::A as Api>::PipelineLayout,
|
||||
index: u32,
|
||||
group: &A::BindGroup,
|
||||
group: &<Self::A as Api>::BindGroup,
|
||||
dynamic_offsets: &[wgt::DynamicOffset],
|
||||
);
|
||||
|
||||
|
|
@ -612,7 +647,7 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// - The range of push constants written must be valid for the pipeline layout at draw time.
|
||||
unsafe fn set_push_constants(
|
||||
&mut self,
|
||||
layout: &A::PipelineLayout,
|
||||
layout: &<Self::A as Api>::PipelineLayout,
|
||||
stages: wgt::ShaderStages,
|
||||
offset_bytes: u32,
|
||||
data: &[u32],
|
||||
|
|
@ -627,18 +662,18 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
/// # Safety:
|
||||
///
|
||||
/// - If `set` is an occlusion query set, it must be the same one as used in the [`RenderPassDescriptor::occlusion_query_set`] parameter.
|
||||
unsafe fn begin_query(&mut self, set: &A::QuerySet, index: u32);
|
||||
unsafe fn begin_query(&mut self, set: &<Self::A as Api>::QuerySet, index: u32);
|
||||
/// # Safety:
|
||||
///
|
||||
/// - If `set` is an occlusion query set, it must be the same one as used in the [`RenderPassDescriptor::occlusion_query_set`] parameter.
|
||||
unsafe fn end_query(&mut self, set: &A::QuerySet, index: u32);
|
||||
unsafe fn write_timestamp(&mut self, set: &A::QuerySet, index: u32);
|
||||
unsafe fn reset_queries(&mut self, set: &A::QuerySet, range: Range<u32>);
|
||||
unsafe fn end_query(&mut self, set: &<Self::A as Api>::QuerySet, index: u32);
|
||||
unsafe fn write_timestamp(&mut self, set: &<Self::A as Api>::QuerySet, index: u32);
|
||||
unsafe fn reset_queries(&mut self, set: &<Self::A as Api>::QuerySet, range: Range<u32>);
|
||||
unsafe fn copy_query_results(
|
||||
&mut self,
|
||||
set: &A::QuerySet,
|
||||
set: &<Self::A as Api>::QuerySet,
|
||||
range: Range<u32>,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
stride: wgt::BufferSize,
|
||||
);
|
||||
|
|
@ -646,17 +681,17 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
// render passes
|
||||
|
||||
// Begins a render pass, clears all active bindings.
|
||||
unsafe fn begin_render_pass(&mut self, desc: &RenderPassDescriptor<A>);
|
||||
unsafe fn begin_render_pass(&mut self, desc: &RenderPassDescriptor<Self::A>);
|
||||
unsafe fn end_render_pass(&mut self);
|
||||
|
||||
unsafe fn set_render_pipeline(&mut self, pipeline: &A::RenderPipeline);
|
||||
unsafe fn set_render_pipeline(&mut self, pipeline: &<Self::A as Api>::RenderPipeline);
|
||||
|
||||
unsafe fn set_index_buffer<'a>(
|
||||
&mut self,
|
||||
binding: BufferBinding<'a, A>,
|
||||
binding: BufferBinding<'a, Self::A>,
|
||||
format: wgt::IndexFormat,
|
||||
);
|
||||
unsafe fn set_vertex_buffer<'a>(&mut self, index: u32, binding: BufferBinding<'a, A>);
|
||||
unsafe fn set_vertex_buffer<'a>(&mut self, index: u32, binding: BufferBinding<'a, Self::A>);
|
||||
unsafe fn set_viewport(&mut self, rect: &Rect<f32>, depth_range: Range<f32>);
|
||||
unsafe fn set_scissor_rect(&mut self, rect: &Rect<u32>);
|
||||
unsafe fn set_stencil_reference(&mut self, value: u32);
|
||||
|
|
@ -679,29 +714,29 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
);
|
||||
unsafe fn draw_indirect(
|
||||
&mut self,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
draw_count: u32,
|
||||
);
|
||||
unsafe fn draw_indexed_indirect(
|
||||
&mut self,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
draw_count: u32,
|
||||
);
|
||||
unsafe fn draw_indirect_count(
|
||||
&mut self,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
count_buffer: &A::Buffer,
|
||||
count_buffer: &<Self::A as Api>::Buffer,
|
||||
count_offset: wgt::BufferAddress,
|
||||
max_count: u32,
|
||||
);
|
||||
unsafe fn draw_indexed_indirect_count(
|
||||
&mut self,
|
||||
buffer: &A::Buffer,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
count_buffer: &A::Buffer,
|
||||
count_buffer: &<Self::A as Api>::Buffer,
|
||||
count_offset: wgt::BufferAddress,
|
||||
max_count: u32,
|
||||
);
|
||||
|
|
@ -709,13 +744,17 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
// compute passes
|
||||
|
||||
// Begins a compute pass, clears all active bindings.
|
||||
unsafe fn begin_compute_pass(&mut self, desc: &ComputePassDescriptor<A>);
|
||||
unsafe fn begin_compute_pass(&mut self, desc: &ComputePassDescriptor<Self::A>);
|
||||
unsafe fn end_compute_pass(&mut self);
|
||||
|
||||
unsafe fn set_compute_pipeline(&mut self, pipeline: &A::ComputePipeline);
|
||||
unsafe fn set_compute_pipeline(&mut self, pipeline: &<Self::A as Api>::ComputePipeline);
|
||||
|
||||
unsafe fn dispatch(&mut self, count: [u32; 3]);
|
||||
unsafe fn dispatch_indirect(&mut self, buffer: &A::Buffer, offset: wgt::BufferAddress);
|
||||
unsafe fn dispatch_indirect(
|
||||
&mut self,
|
||||
buffer: &<Self::A as Api>::Buffer,
|
||||
offset: wgt::BufferAddress,
|
||||
);
|
||||
|
||||
/// To get the required sizes for the buffer allocations use `get_acceleration_structure_build_sizes` per descriptor
|
||||
/// All buffers must be synchronized externally
|
||||
|
|
@ -729,8 +768,8 @@ pub trait CommandEncoder<A: Api>: WasmNotSendSync + fmt::Debug {
|
|||
descriptor_count: u32,
|
||||
descriptors: T,
|
||||
) where
|
||||
A: 'a,
|
||||
T: IntoIterator<Item = BuildAccelerationStructureDescriptor<'a, A>>;
|
||||
Self::A: 'a,
|
||||
T: IntoIterator<Item = BuildAccelerationStructureDescriptor<'a, Self::A>>;
|
||||
|
||||
unsafe fn place_acceleration_structure_barrier(
|
||||
&mut self,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ impl super::Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Adapter<super::Api> for super::Adapter {
|
||||
impl crate::Adapter for super::Adapter {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
features: wgt::Features,
|
||||
|
|
|
|||
|
|
@ -168,7 +168,9 @@ impl super::CommandState {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::CommandEncoder<super::Api> for super::CommandEncoder {
|
||||
impl crate::CommandEncoder for super::CommandEncoder {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn begin_encoding(&mut self, label: crate::Label) -> Result<(), crate::DeviceError> {
|
||||
let queue = &self.raw_queue.lock();
|
||||
let retain_references = self.shared.settings.retain_command_buffer_references;
|
||||
|
|
|
|||
15
third_party/rust/wgpu-hal/src/metal/device.rs
vendored
15
third_party/rust/wgpu-hal/src/metal/device.rs
vendored
|
|
@ -273,7 +273,9 @@ impl super::Device {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Device<super::Api> for super::Device {
|
||||
impl crate::Device for super::Device {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn exit(self, _queue: super::Queue) {}
|
||||
|
||||
unsafe fn create_buffer(&self, desc: &crate::BufferDescriptor) -> DeviceResult<super::Buffer> {
|
||||
|
|
@ -706,7 +708,16 @@ impl crate::Device<super::Api> for super::Device {
|
|||
for (&stage, counter) in super::NAGA_STAGES.iter().zip(bg.counters.iter_mut()) {
|
||||
let stage_bit = map_naga_stage(stage);
|
||||
let mut dynamic_offsets_count = 0u32;
|
||||
for (entry, layout) in desc.entries.iter().zip(desc.layout.entries.iter()) {
|
||||
let layout_and_entry_iter = desc.entries.iter().map(|entry| {
|
||||
let layout = desc
|
||||
.layout
|
||||
.entries
|
||||
.iter()
|
||||
.find(|layout_entry| layout_entry.binding == entry.binding)
|
||||
.expect("internal error: no layout entry found with binding slot");
|
||||
(entry, layout)
|
||||
});
|
||||
for (entry, layout) in layout_and_entry_iter {
|
||||
let size = layout.count.map_or(1, |c| c.get());
|
||||
if let wgt::BindingType::Buffer {
|
||||
has_dynamic_offset: true,
|
||||
|
|
|
|||
8
third_party/rust/wgpu-hal/src/metal/mod.rs
vendored
8
third_party/rust/wgpu-hal/src/metal/mod.rs
vendored
|
|
@ -80,7 +80,9 @@ impl Instance {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Instance<Api> for Instance {
|
||||
impl crate::Instance for Instance {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn init(_desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init Metal Backend");
|
||||
// We do not enable metal validation based on the validation flags as it affects the entire
|
||||
|
|
@ -365,7 +367,9 @@ impl std::borrow::Borrow<Texture> for SurfaceTexture {
|
|||
unsafe impl Send for SurfaceTexture {}
|
||||
unsafe impl Sync for SurfaceTexture {}
|
||||
|
||||
impl crate::Queue<Api> for Queue {
|
||||
impl crate::Queue for Queue {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&CommandBuffer],
|
||||
|
|
|
|||
|
|
@ -169,7 +169,9 @@ impl super::Surface {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<super::Api> for super::Surface {
|
||||
impl crate::Surface for super::Surface {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &super::Device,
|
||||
|
|
|
|||
181
third_party/rust/wgpu-hal/src/vulkan/adapter.rs
vendored
181
third_party/rust/wgpu-hal/src/vulkan/adapter.rs
vendored
|
|
@ -20,25 +20,85 @@ fn indexing_features() -> wgt::Features {
|
|||
| wgt::Features::PARTIALLY_BOUND_BINDING_ARRAY
|
||||
}
|
||||
|
||||
/// Aggregate of the `vk::PhysicalDevice*Features` structs used by `gfx`.
|
||||
/// Features supported by a [`vk::PhysicalDevice`] and its extensions.
|
||||
///
|
||||
/// This is used in two phases:
|
||||
///
|
||||
/// - When enumerating adapters, this represents the features offered by the
|
||||
/// adapter. [`Instance::expose_adapter`] calls `vkGetPhysicalDeviceFeatures2`
|
||||
/// (or `vkGetPhysicalDeviceFeatures` if that is not available) to collect
|
||||
/// this information about the `VkPhysicalDevice` represented by the
|
||||
/// `wgpu_hal::ExposedAdapter`.
|
||||
///
|
||||
/// - When opening a device, this represents the features we would like to
|
||||
/// enable. At `wgpu_hal::Device` construction time,
|
||||
/// [`PhysicalDeviceFeatures::from_extensions_and_requested_features`]
|
||||
/// constructs an value of this type indicating which Vulkan features to
|
||||
/// enable, based on the `wgpu_types::Features` requested.
|
||||
#[derive(Debug, Default)]
|
||||
pub struct PhysicalDeviceFeatures {
|
||||
/// Basic Vulkan 1.0 features.
|
||||
core: vk::PhysicalDeviceFeatures,
|
||||
|
||||
/// Features provided by `VK_EXT_descriptor_indexing`, promoted to Vulkan 1.2.
|
||||
pub(super) descriptor_indexing: Option<vk::PhysicalDeviceDescriptorIndexingFeaturesEXT>,
|
||||
|
||||
/// Features provided by `VK_KHR_imageless_framebuffer`, promoted to Vulkan 1.2.
|
||||
imageless_framebuffer: Option<vk::PhysicalDeviceImagelessFramebufferFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_KHR_timeline_semaphore`, promoted to Vulkan 1.2
|
||||
timeline_semaphore: Option<vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_EXT_image_robustness`, promoted to Vulkan 1.3
|
||||
image_robustness: Option<vk::PhysicalDeviceImageRobustnessFeaturesEXT>,
|
||||
|
||||
/// Features provided by `VK_EXT_robustness2`.
|
||||
robustness2: Option<vk::PhysicalDeviceRobustness2FeaturesEXT>,
|
||||
|
||||
/// Features provided by `VK_KHR_multiview`, promoted to Vulkan 1.1.
|
||||
multiview: Option<vk::PhysicalDeviceMultiviewFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_KHR_sampler_ycbcr_conversion`, promoted to Vulkan 1.1.
|
||||
sampler_ycbcr_conversion: Option<vk::PhysicalDeviceSamplerYcbcrConversionFeatures>,
|
||||
|
||||
/// Features provided by `VK_EXT_texture_compression_astc_hdr`, promoted to Vulkan 1.3.
|
||||
astc_hdr: Option<vk::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>,
|
||||
|
||||
/// Features provided by `VK_KHR_shader_float16_int8` (promoted to Vulkan
|
||||
/// 1.2) and `VK_KHR_16bit_storage` (promoted to Vulkan 1.1). We use these
|
||||
/// features together, or not at all.
|
||||
shader_float16: Option<(
|
||||
vk::PhysicalDeviceShaderFloat16Int8Features,
|
||||
vk::PhysicalDevice16BitStorageFeatures,
|
||||
)>,
|
||||
|
||||
/// Features provided by `VK_KHR_acceleration_structure`.
|
||||
acceleration_structure: Option<vk::PhysicalDeviceAccelerationStructureFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_KHR_buffer_device_address`, promoted to Vulkan 1.2.
|
||||
///
|
||||
/// We only use this feature for
|
||||
/// [`Features::RAY_TRACING_ACCELERATION_STRUCTURE`], which requires
|
||||
/// `VK_KHR_acceleration_structure`, which depends on
|
||||
/// `VK_KHR_buffer_device_address`, so [`Instance::expose_adapter`] only
|
||||
/// bothers to check if `VK_KHR_acceleration_structure` is available,
|
||||
/// leaving this `None`.
|
||||
///
|
||||
/// However, we do populate this when creating a device if
|
||||
/// [`Features::RAY_TRACING_ACCELERATION_STRUCTURE`] is requested.
|
||||
buffer_device_address: Option<vk::PhysicalDeviceBufferDeviceAddressFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_KHR_ray_query`,
|
||||
///
|
||||
/// Vulkan requires that the feature be present if the `VK_KHR_ray_query`
|
||||
/// extension is present, so [`Instance::expose_adapter`] doesn't bother retrieving
|
||||
/// this from `vkGetPhysicalDeviceFeatures2`.
|
||||
///
|
||||
/// However, we do populate this when creating a device if ray tracing is requested.
|
||||
ray_query: Option<vk::PhysicalDeviceRayQueryFeaturesKHR>,
|
||||
|
||||
/// Features provided by `VK_KHR_zero_initialize_workgroup_memory`, promoted
|
||||
/// to Vulkan 1.3.
|
||||
zero_initialize_workgroup_memory:
|
||||
Option<vk::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>,
|
||||
}
|
||||
|
|
@ -91,9 +151,32 @@ impl PhysicalDeviceFeatures {
|
|||
info
|
||||
}
|
||||
|
||||
/// Create a `PhysicalDeviceFeatures` that will be used to create a logical device.
|
||||
/// Create a `PhysicalDeviceFeatures` that can be used to create a logical
|
||||
/// device.
|
||||
///
|
||||
/// `requested_features` should be the same as what was used to generate `enabled_extensions`.
|
||||
/// Return a `PhysicalDeviceFeatures` value capturing all the Vulkan
|
||||
/// features needed for the given [`Features`], [`DownlevelFlags`], and
|
||||
/// [`PrivateCapabilities`]. You can use the returned value's
|
||||
/// [`add_to_device_create_builder`] method to configure a
|
||||
/// [`DeviceCreateInfoBuilder`] to build a logical device providing those
|
||||
/// features.
|
||||
///
|
||||
/// To ensure that the returned value is able to select all the Vulkan
|
||||
/// features needed to express `requested_features`, `downlevel_flags`, and
|
||||
/// `private_caps`:
|
||||
///
|
||||
/// - The given `enabled_extensions` set must include all the extensions
|
||||
/// selected by [`Adapter::required_device_extensions`] when passed
|
||||
/// `features`.
|
||||
///
|
||||
/// - The given `device_api_version` must be the Vulkan API version of the
|
||||
/// physical device we will use to create the logical device.
|
||||
///
|
||||
/// [`Features`]: wgt::Features
|
||||
/// [`DownlevelFlags`]: wgt::DownlevelFlags
|
||||
/// [`PrivateCapabilities`]: super::PrivateCapabilities
|
||||
/// [`DeviceCreateInfoBuilder`]: vk::DeviceCreateInfoBuilder
|
||||
/// [`Adapter::required_device_extensions`]: super::Adapter::required_device_extensions
|
||||
fn from_extensions_and_requested_features(
|
||||
device_api_version: u32,
|
||||
enabled_extensions: &[&'static CStr],
|
||||
|
|
@ -354,11 +437,16 @@ impl PhysicalDeviceFeatures {
|
|||
}
|
||||
}
|
||||
|
||||
/// Compute the wgpu [`Features`] and [`DownlevelFlags`] supported by a physical device.
|
||||
///
|
||||
/// Given `self`, together with the instance and physical device it was
|
||||
/// built from, and a `caps` also built from those, determine which wgpu
|
||||
/// features and downlevel flags the device can support.
|
||||
fn to_wgpu(
|
||||
&self,
|
||||
instance: &ash::Instance,
|
||||
phd: vk::PhysicalDevice,
|
||||
caps: &PhysicalDeviceCapabilities,
|
||||
caps: &PhysicalDeviceProperties,
|
||||
) -> (wgt::Features, wgt::DownlevelFlags) {
|
||||
use crate::auxil::db;
|
||||
use wgt::{DownlevelFlags as Df, Features as F};
|
||||
|
|
@ -639,15 +727,52 @@ impl PhysicalDeviceFeatures {
|
|||
}
|
||||
}
|
||||
|
||||
/// Information gathered about a physical device capabilities.
|
||||
/// Vulkan "properties" structures gathered about a physical device.
|
||||
///
|
||||
/// This structure holds the properties of a [`vk::PhysicalDevice`]:
|
||||
/// - the standard Vulkan device properties
|
||||
/// - the `VkExtensionProperties` structs for all available extensions, and
|
||||
/// - the per-extension properties structures for the available extensions that
|
||||
/// `wgpu` cares about.
|
||||
///
|
||||
/// Generally, if you get it from any of these functions, it's stored
|
||||
/// here:
|
||||
/// - `vkEnumerateDeviceExtensionProperties`
|
||||
/// - `vkGetPhysicalDeviceProperties`
|
||||
/// - `vkGetPhysicalDeviceProperties2`
|
||||
///
|
||||
/// This also includes a copy of the device API version, since we can
|
||||
/// use that as a shortcut for searching for an extension, if the
|
||||
/// extension has been promoted to core in the current version.
|
||||
///
|
||||
/// This does not include device features; for those, see
|
||||
/// [`PhysicalDeviceFeatures`].
|
||||
#[derive(Default, Debug)]
|
||||
pub struct PhysicalDeviceCapabilities {
|
||||
pub struct PhysicalDeviceProperties {
|
||||
/// Extensions supported by the `vk::PhysicalDevice`,
|
||||
/// as returned by `vkEnumerateDeviceExtensionProperties`.
|
||||
supported_extensions: Vec<vk::ExtensionProperties>,
|
||||
|
||||
/// Properties of the `vk::PhysicalDevice`, as returned by
|
||||
/// `vkGetPhysicalDeviceProperties`.
|
||||
properties: vk::PhysicalDeviceProperties,
|
||||
|
||||
/// Additional `vk::PhysicalDevice` properties from the
|
||||
/// `VK_KHR_maintenance3` extension, promoted to Vulkan 1.1.
|
||||
maintenance_3: Option<vk::PhysicalDeviceMaintenance3Properties>,
|
||||
|
||||
/// Additional `vk::PhysicalDevice` properties from the
|
||||
/// `VK_EXT_descriptor_indexing` extension, promoted to Vulkan 1.2.
|
||||
descriptor_indexing: Option<vk::PhysicalDeviceDescriptorIndexingPropertiesEXT>,
|
||||
|
||||
/// Additional `vk::PhysicalDevice` properties from the
|
||||
/// `VK_KHR_acceleration_structure` extension.
|
||||
acceleration_structure: Option<vk::PhysicalDeviceAccelerationStructurePropertiesKHR>,
|
||||
|
||||
/// Additional `vk::PhysicalDevice` properties from the
|
||||
/// `VK_KHR_driver_properties` extension, promoted to Vulkan 1.2.
|
||||
driver: Option<vk::PhysicalDeviceDriverPropertiesKHR>,
|
||||
|
||||
/// The device API version.
|
||||
///
|
||||
/// Which is the version of Vulkan supported for device-level functionality.
|
||||
|
|
@ -657,10 +782,10 @@ pub struct PhysicalDeviceCapabilities {
|
|||
}
|
||||
|
||||
// This is safe because the structs have `p_next: *mut c_void`, which we null out/never read.
|
||||
unsafe impl Send for PhysicalDeviceCapabilities {}
|
||||
unsafe impl Sync for PhysicalDeviceCapabilities {}
|
||||
unsafe impl Send for PhysicalDeviceProperties {}
|
||||
unsafe impl Sync for PhysicalDeviceProperties {}
|
||||
|
||||
impl PhysicalDeviceCapabilities {
|
||||
impl PhysicalDeviceProperties {
|
||||
pub fn properties(&self) -> vk::PhysicalDeviceProperties {
|
||||
self.properties
|
||||
}
|
||||
|
|
@ -899,9 +1024,9 @@ impl super::InstanceShared {
|
|||
fn inspect(
|
||||
&self,
|
||||
phd: vk::PhysicalDevice,
|
||||
) -> (PhysicalDeviceCapabilities, PhysicalDeviceFeatures) {
|
||||
) -> (PhysicalDeviceProperties, PhysicalDeviceFeatures) {
|
||||
let capabilities = {
|
||||
let mut capabilities = PhysicalDeviceCapabilities::default();
|
||||
let mut capabilities = PhysicalDeviceProperties::default();
|
||||
capabilities.supported_extensions =
|
||||
unsafe { self.raw.enumerate_device_extension_properties(phd).unwrap() };
|
||||
capabilities.properties = unsafe { self.raw.get_physical_device_properties(phd) };
|
||||
|
|
@ -923,9 +1048,10 @@ impl super::InstanceShared {
|
|||
|
||||
let mut builder = vk::PhysicalDeviceProperties2KHR::builder();
|
||||
if supports_maintenance3 {
|
||||
capabilities.maintenance_3 =
|
||||
Some(vk::PhysicalDeviceMaintenance3Properties::default());
|
||||
builder = builder.push_next(capabilities.maintenance_3.as_mut().unwrap());
|
||||
let next = capabilities
|
||||
.maintenance_3
|
||||
.insert(vk::PhysicalDeviceMaintenance3Properties::default());
|
||||
builder = builder.push_next(next);
|
||||
}
|
||||
|
||||
if supports_descriptor_indexing {
|
||||
|
|
@ -1001,7 +1127,8 @@ impl super::InstanceShared {
|
|||
builder = builder.push_next(next);
|
||||
}
|
||||
|
||||
// `VK_KHR_imageless_framebuffer` is promoted to 1.2, but has no changes, so we can keep using the extension unconditionally.
|
||||
// `VK_KHR_imageless_framebuffer` is promoted to 1.2, but has no
|
||||
// changes, so we can keep using the extension unconditionally.
|
||||
if capabilities.supports_extension(vk::KhrImagelessFramebufferFn::name()) {
|
||||
let next = features
|
||||
.imageless_framebuffer
|
||||
|
|
@ -1009,7 +1136,8 @@ impl super::InstanceShared {
|
|||
builder = builder.push_next(next);
|
||||
}
|
||||
|
||||
// `VK_KHR_timeline_semaphore` is promoted to 1.2, but has no changes, so we can keep using the extension unconditionally.
|
||||
// `VK_KHR_timeline_semaphore` is promoted to 1.2, but has no
|
||||
// changes, so we can keep using the extension unconditionally.
|
||||
if capabilities.supports_extension(vk::KhrTimelineSemaphoreFn::name()) {
|
||||
let next = features
|
||||
.timeline_semaphore
|
||||
|
|
@ -1295,7 +1423,7 @@ impl super::Adapter {
|
|||
self.raw
|
||||
}
|
||||
|
||||
pub fn physical_device_capabilities(&self) -> &PhysicalDeviceCapabilities {
|
||||
pub fn physical_device_capabilities(&self) -> &PhysicalDeviceProperties {
|
||||
&self.phd_capabilities
|
||||
}
|
||||
|
||||
|
|
@ -1320,7 +1448,20 @@ impl super::Adapter {
|
|||
supported_extensions
|
||||
}
|
||||
|
||||
/// `features` must be the same features used to create `enabled_extensions`.
|
||||
/// Create a `PhysicalDeviceFeatures` for opening a logical device with
|
||||
/// `features` from this adapter.
|
||||
///
|
||||
/// The given `enabled_extensions` set must include all the extensions
|
||||
/// selected by [`required_device_extensions`] when passed `features`.
|
||||
/// Otherwise, the `PhysicalDeviceFeatures` value may not be able to select
|
||||
/// all the Vulkan features needed to represent `features` and this
|
||||
/// adapter's characteristics.
|
||||
///
|
||||
/// Typically, you'd simply call `required_device_extensions`, and then pass
|
||||
/// its return value and the feature set you gave it directly to this
|
||||
/// function. But it's fine to add more extensions to the list.
|
||||
///
|
||||
/// [`required_device_extensions`]: Self::required_device_extensions
|
||||
pub fn physical_device_features(
|
||||
&self,
|
||||
enabled_extensions: &[&'static CStr],
|
||||
|
|
@ -1607,7 +1748,9 @@ impl super::Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Adapter<super::Api> for super::Adapter {
|
||||
impl crate::Adapter for super::Adapter {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn open(
|
||||
&self,
|
||||
features: wgt::Features,
|
||||
|
|
|
|||
|
|
@ -60,7 +60,9 @@ impl super::CommandEncoder {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::CommandEncoder<super::Api> for super::CommandEncoder {
|
||||
impl crate::CommandEncoder for super::CommandEncoder {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn begin_encoding(&mut self, label: crate::Label) -> Result<(), crate::DeviceError> {
|
||||
if self.free.is_empty() {
|
||||
let vk_info = vk::CommandBufferAllocateInfo::builder()
|
||||
|
|
|
|||
|
|
@ -830,7 +830,9 @@ impl super::Device {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Device<super::Api> for super::Device {
|
||||
impl crate::Device for super::Device {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn exit(self, queue: super::Queue) {
|
||||
unsafe { self.mem_allocator.into_inner().cleanup(&*self.shared) };
|
||||
unsafe { self.desc_allocator.into_inner().cleanup(&*self.shared) };
|
||||
|
|
|
|||
|
|
@ -579,7 +579,9 @@ impl Drop for super::InstanceShared {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Instance<super::Api> for super::Instance {
|
||||
impl crate::Instance for super::Instance {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn init(desc: &crate::InstanceDescriptor) -> Result<Self, crate::InstanceError> {
|
||||
profiling::scope!("Init Vulkan Backend");
|
||||
use crate::auxil::cstr_from_bytes_until_nul;
|
||||
|
|
@ -956,7 +958,9 @@ impl crate::Instance<super::Api> for super::Instance {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Surface<super::Api> for super::Surface {
|
||||
impl crate::Surface for super::Surface {
|
||||
type A = super::Api;
|
||||
|
||||
unsafe fn configure(
|
||||
&self,
|
||||
device: &super::Device,
|
||||
|
|
|
|||
6
third_party/rust/wgpu-hal/src/vulkan/mod.rs
vendored
6
third_party/rust/wgpu-hal/src/vulkan/mod.rs
vendored
|
|
@ -189,7 +189,7 @@ pub struct Adapter {
|
|||
instance: Arc<InstanceShared>,
|
||||
//queue_families: Vec<vk::QueueFamilyProperties>,
|
||||
known_memory_flags: vk::MemoryPropertyFlags,
|
||||
phd_capabilities: adapter::PhysicalDeviceCapabilities,
|
||||
phd_capabilities: adapter::PhysicalDeviceProperties,
|
||||
//phd_features: adapter::PhysicalDeviceFeatures,
|
||||
downlevel_flags: wgt::DownlevelFlags,
|
||||
private_caps: PrivateCapabilities,
|
||||
|
|
@ -594,7 +594,9 @@ impl Fence {
|
|||
}
|
||||
}
|
||||
|
||||
impl crate::Queue<Api> for Queue {
|
||||
impl crate::Queue for Queue {
|
||||
type A = Api;
|
||||
|
||||
unsafe fn submit(
|
||||
&self,
|
||||
command_buffers: &[&CommandBuffer],
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"0bcb9c2d557d01677740fea4690c79544898fe749880a72512dca33db171e590","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"3fe98027aa73970c8ab7874a3e13dbfd6faa87df2081beb5c83aeec4c60f372f","src/lib.rs":"13255166ac006b93ec6c89a984e9e2368afd39a6750b4852016c6ac0e200c51a","src/math.rs":"4d03039736dd6926feb139bc68734cb59df34ede310427bbf059e5c925e0af3b"},"package":null}
|
||||
{"files":{"Cargo.toml":"0bcb9c2d557d01677740fea4690c79544898fe749880a72512dca33db171e590","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"c7fea58d1cfe49634cd92e54fc10a9d871f4b275321a4cd8c09e449122caaeb4","src/assertions.rs":"3fe98027aa73970c8ab7874a3e13dbfd6faa87df2081beb5c83aeec4c60f372f","src/lib.rs":"b9fda00d1b61364cdd7e544aee731ce075ea8403349ed286711d39aa8d414c28","src/math.rs":"4d03039736dd6926feb139bc68734cb59df34ede310427bbf059e5c925e0af3b"},"package":null}
|
||||
20
third_party/rust/wgpu-types/src/lib.rs
vendored
20
third_party/rust/wgpu-types/src/lib.rs
vendored
|
|
@ -337,7 +337,7 @@ bitflags::bitflags! {
|
|||
/// For arbitrary timestamp write commands on encoders refer to [`Features::TIMESTAMP_QUERY_INSIDE_ENCODERS`].
|
||||
/// For arbitrary timestamp write commands on passes refer to [`Features::TIMESTAMP_QUERY_INSIDE_PASSES`].
|
||||
///
|
||||
/// They must be resolved using [`CommandEncoder::resolve_query_sets`] into a buffer,
|
||||
/// They must be resolved using [`CommandEncoder::resolve_query_set`] into a buffer,
|
||||
/// then the result must be multiplied by the timestamp period [`Queue::get_timestamp_period`]
|
||||
/// to get the timestamp in nanoseconds. Multiple timestamps can then be diffed to get the
|
||||
/// time for operations between them to finish.
|
||||
|
|
@ -480,10 +480,10 @@ bitflags::bitflags! {
|
|||
// API:
|
||||
|
||||
/// Enables use of Pipeline Statistics Queries. These queries tell the count of various operations
|
||||
/// performed between the start and stop call. Call [`RenderPassEncoder::begin_pipeline_statistics_query`] to start
|
||||
/// a query, then call [`RenderPassEncoder::end_pipeline_statistics_query`] to stop one.
|
||||
/// performed between the start and stop call. Call [`RenderPass::begin_pipeline_statistics_query`] to start
|
||||
/// a query, then call [`RenderPass::end_pipeline_statistics_query`] to stop one.
|
||||
///
|
||||
/// They must be resolved using [`CommandEncoder::resolve_query_sets`] into a buffer.
|
||||
/// They must be resolved using [`CommandEncoder::resolve_query_set`] into a buffer.
|
||||
/// The rules on how these resolve into buffers are detailed in the documentation for [`PipelineStatisticsTypes`].
|
||||
///
|
||||
/// Supported Platforms:
|
||||
|
|
@ -511,8 +511,8 @@ bitflags::bitflags! {
|
|||
/// Implies [`Features::TIMESTAMP_QUERY`] & [`Features::TIMESTAMP_QUERY_INSIDE_ENCODERS`] is supported.
|
||||
///
|
||||
/// Additionally allows for timestamp queries to be used inside render & compute passes using:
|
||||
/// - [`RenderPassEncoder::write_timestamp`]
|
||||
/// - [`ComputePassEncoder::write_timestamp`]
|
||||
/// - [`RenderPass::write_timestamp`]
|
||||
/// - [`ComputePass::write_timestamp`]
|
||||
///
|
||||
/// Supported platforms:
|
||||
/// - Vulkan
|
||||
|
|
@ -7190,7 +7190,7 @@ mod send_sync {
|
|||
///
|
||||
/// Corresponds to [WebGPU `GPUDeviceLostReason`](https://gpuweb.github.io/gpuweb/#enumdef-gpudevicelostreason).
|
||||
#[repr(u8)]
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||
pub enum DeviceLostReason {
|
||||
/// Triggered by driver
|
||||
Unknown = 0,
|
||||
|
|
@ -7210,4 +7210,10 @@ pub enum DeviceLostReason {
|
|||
/// exactly once before it is dropped, which helps with managing the
|
||||
/// memory owned by the callback.
|
||||
ReplacedCallback = 3,
|
||||
/// When setting the callback, but the device is already invalid
|
||||
///
|
||||
/// As above, when the callback is provided, wgpu guarantees that it
|
||||
/// will eventually be called. If the device is already invalid, wgpu
|
||||
/// will call the callback immediately, with this reason.
|
||||
DeviceInvalid = 4,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue