tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 1ef3191647caf481adba333b924f9781b8e2cda9
parent 16afaac73ca2b78f4ef6a0cd73fa46c9efce6ee3
Author: Erich Gubler <erichdongubler@gmail.com>
Date:   Tue, 14 Oct 2025 22:25:20 +0000

Bug 1993808 - test(webgpu): update CTS to 4adb750084943d08f521f18cb36d85c792ff20ba r=webgpu-reviewers,teoxoy

Differential Revision: https://phabricator.services.mozilla.com/D268319

Diffstat:
Mdom/webgpu/tests/cts/checkout/src/webgpu/listing_meta.json | 1+
Adom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/override.spec.ts | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdom/webgpu/tests/cts/checkout/src/webgpu/shader/validation/decl/override.spec.ts | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdom/webgpu/tests/cts/checkout/tools/gen_version | 2+-
Mdom/webgpu/tests/cts/moz.yaml | 4++--
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/sampling/sampler_texture/cts.https.html.ini | 1+
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/indirect_draw/cts.https.html.ini | 2++
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGatherCompare/cts.https.html.ini | 4++--
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini | 8++++----
Atesting/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/override/cts.https.html.ini | 6++++++
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html.ini | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/cts.https.html.ini | 15++++++++++-----
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/dedicated.https.html.ini | 6+++---
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/shared.https.html.ini | 6+++---
Mtesting/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/canvas/cts.https.html.ini | 576++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mtesting/web-platform/mozilla/tests/webgpu/common/internal/version.js | 2+-
Atesting/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/execution/override/cts.https.html | 36++++++++++++++++++++++++++++++++++++
Mtesting/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html | 1+
Mtesting/web-platform/mozilla/tests/webgpu/webgpu/listing.js | 7+++++++
Atesting/web-platform/mozilla/tests/webgpu/webgpu/shader/execution/override.spec.js | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtesting/web-platform/mozilla/tests/webgpu/webgpu/shader/validation/decl/override.spec.js | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/web-platform/mozilla/tests/webgpu/webgpu/webworker/shader/execution/override.as_worker.js | 6++++++
22 files changed, 852 insertions(+), 229 deletions(-)

diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/listing_meta.json b/dom/webgpu/tests/cts/checkout/src/webgpu/listing_meta.json @@ -2002,6 +2002,7 @@ "webgpu:shader,validation,decl,let:initializer:*": { "subcaseMS": 0.706 }, "webgpu:shader,validation,decl,let:module_scope:*": { "subcaseMS": 0.619 }, "webgpu:shader,validation,decl,let:type:*": { "subcaseMS": 122.199 }, + "webgpu:shader,validation,decl,override:array_size:*": { "subcaseMS": 44.868 }, "webgpu:shader,validation,decl,override:function_scope:*": { "subcaseMS": 1.003 }, "webgpu:shader,validation,decl,override:id:*": { "subcaseMS": 69.432 }, "webgpu:shader,validation,decl,override:initializer:*": { "subcaseMS": 4.810 }, diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/override.spec.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/override.spec.ts @@ -0,0 +1,87 @@ +export const description = `Test override execution`; + +import { makeTestGroup } from '../../../common/framework/test_group.js'; +import { keysOf } from '../../../common/util/data_tables.js'; +import { AllFeaturesMaxLimitsGPUTest } from '../../gpu_test.js'; +import { checkElementsEqual } from '../../util/check_contents.js'; + +export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest); + +const kOverrideCases = { + logical_lhs_override: { + code: `x == 2 && 1 < 2`, + }, + logical_rhs_override: { + code: `1 > 2 || x == 2`, + }, + logical_both_override: { + code: `x > 2 || x == 2`, + }, +}; + +g.test('logical') + .desc(`Test replacing an override in the LHS of a logical statement`) + .params(u => u.combine('case', keysOf(kOverrideCases))) + .fn(async t => { + const expr = kOverrideCases[t.params.case].code; + const code = ` +override x: u32 = 2; +override y: bool = ${expr}; + +@group(0) @binding(0) var<storage, read_write> v : vec4u; + +@compute @workgroup_size(1) +fn main() { + if (y) { + v = vec4u(4, 4, 4, 4); + } else { + v = vec4u(1, 1, 1, 1); + } +}`; + + const pipeline = t.device.createComputePipeline({ + layout: 'auto', + compute: { + module: t.device.createShaderModule({ + code, + }), + entryPoint: 'main', + }, + }); + + const buffer = t.makeBufferWithContents( + new Uint32Array([0, 0, 0, 0]), + GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + ); + + const bg = t.device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { + binding: 0, + resource: { + buffer, + }, + }, + ], + }); + + const encoder = t.device.createCommandEncoder(); + const pass = encoder.beginComputePass(); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bg); + pass.dispatchWorkgroups(1, 1, 1); + pass.end(); + t.queue.submit([encoder.finish()]); + + const bufferReadback = await t.readGPUBufferRangeTyped(buffer, { + srcByteOffset: 0, + type: Uint32Array, + typedLength: 4, + method: 'copy', + }); + const got: Uint32Array = bufferReadback.data; + const expected = new Uint32Array([4, 4, 4, 4]); + + t.expectOK(checkElementsEqual(got, expected)); + }); diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/shader/validation/decl/override.spec.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/shader/validation/decl/override.spec.ts @@ -206,6 +206,21 @@ const kInitCases = { override y : i32;`, valid: true, }, + logical_lhs_override: { + code: `override x = 2; + override y = x == 2 && 1 < 2;`, + valid: true, + }, + logical_rhs_override: { + code: `override x = 2; + override y = 1 < 2 || x == 2;`, + valid: true, + }, + logical_both_override: { + code: `override x = 2; + override y = x > 2 || x == 2;`, + valid: true, + }, }; g.test('initializer') @@ -224,3 +239,70 @@ g.test('function_scope') const code = `fn foo() { override x : u32; }`; t.expectCompileResult(false, code); }); + +const kArrayCases = { + workgroup_var: { + code: `var<workgroup> a: array<u32, size>;`, + valid_with_override_size: true, + }, + private_var: { + code: `var<private> a: array<u32, size>;`, + valid_with_override_size: false, + }, + uniform_var: { + code: `@group(0) @binding(0) var<uniform> a: array<vec4u, size>;`, + valid_with_override_size: false, + }, + storage_var: { + code: `@group(0) @binding(0) var<storage> a: array<u32, size>;`, + valid_with_override_size: false, + }, + function_var: { + code: `fn f() { var a: array<u32, size>; }`, + valid_with_override_size: false, + }, + workgroup_ptr_param: { + code: `fn f(a: ptr<workgroup, array<u32, size>>) {}`, + valid_with_override_size: true, + }, + private_ptr_param: { + code: `fn f(a: ptr<private, array<u32, size>>) {}`, + valid_with_override_size: false, + }, + workgroup_ptr_let: { + code: `var<workgroup> a: array<u32, size>; fn f() { let a = &a; }`, + valid_with_override_size: true, + }, + private_ptr_let: { + code: `var<private> a: array<u32, size>; fn f() { let a = &a; }`, + valid_with_override_size: false, + }, + array_in_struct: { + code: `struct S { a: array<u32, size> };`, + valid_with_override_size: false, + }, + array_in_array: { + code: `var<workgroup> a: array<array<u32, size>, 4>;`, + valid_with_override_size: false, + }, + construct_array: { + code: `fn a() -> u32 { return array<u32, size>()[0]; }`, + valid_with_override_size: false, + }, +}; + +g.test('array_size') + .desc( + 'Test that override-sized arrays are only allowed in the workgroup address space, and cannot be nested in other types or constructed.' + ) + .params(u => u.combine('case', keysOf(kArrayCases)).combine('stage', ['const', 'override'])) + .fn(t => { + const testcase = kArrayCases[t.params.case]; + const wgsl = ` +${t.params.stage} size = 1; +${testcase.code} +`; + + // Using a `const` size is the control case that should always pass. + t.expectCompileResult(t.params.stage === 'const' || testcase.valid_with_override_size, wgsl); + }); diff --git a/dom/webgpu/tests/cts/checkout/tools/gen_version b/dom/webgpu/tests/cts/checkout/tools/gen_version @@ -14,7 +14,7 @@ if (!fs.existsSync(myself)) { process.exit(1); } -const version = 'd822a3cff5bd96c5ed68fe35d5a0e9e041776a00'; +const version = '4adb750084943d08f521f18cb36d85c792ff20ba'; fs.mkdirSync('./gen/common/internal', { recursive: true }); // This will be copied into the various other build directories. diff --git a/dom/webgpu/tests/cts/moz.yaml b/dom/webgpu/tests/cts/moz.yaml @@ -8,8 +8,8 @@ origin: name: WebGPU CTS description: WebGPU Compliance Test Suite url: https://gpuweb.github.io/cts/ - release: d822a3cff5bd96c5ed68fe35d5a0e9e041776a00 (2025-10-02T02:02:11Z). - revision: d822a3cff5bd96c5ed68fe35d5a0e9e041776a00 + release: 4adb750084943d08f521f18cb36d85c792ff20ba (2025-10-08T15:58:37Z). + revision: 4adb750084943d08f521f18cb36d85c792ff20ba license: ['BSD-3-Clause'] updatebot: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/sampling/sampler_texture/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/operation/sampling/sampler_texture/cts.https.html.ini @@ -8,3 +8,4 @@ [:] expected: if os == "linux": [TIMEOUT, NOTRUN] + if os == "mac": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/indirect_draw/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/api/validation/encoding/cmds/render/indirect_draw/cts.https.html.ini @@ -8,6 +8,7 @@ [:] expected: if os == "win": FAIL + if os == "mac": FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_buffer_usage:*] @@ -26,3 +27,4 @@ [:] expected: if os == "win": FAIL + if os == "mac": FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGatherCompare/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureGatherCompare/cts.https.html.ini @@ -751,13 +751,13 @@ [:stage="f";format="depth24plus";filt="linear";modeU="m";modeV="c";offset=false] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] - if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN] + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] if os == "mac" and debug: [TIMEOUT, NOTRUN] [:stage="f";format="depth24plus";filt="linear";modeU="m";modeV="c";offset=true] expected: if os == "win" and debug: [TIMEOUT, NOTRUN] - if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN] + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] if os == "mac" and debug: [TIMEOUT, NOTRUN] [:stage="f";format="depth24plus";filt="linear";modeU="m";modeV="m";offset=false] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/expression/call/builtin/textureSampleCompareLevel/cts.https.html.ini @@ -1992,7 +1992,7 @@ [:stage="v";format="depth32float-stencil8";filt="nearest";modeU="m";modeV="c";offset=true] expected: - if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN] + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] if os == "mac": [TIMEOUT, NOTRUN] [:stage="v";format="depth32float-stencil8";filt="nearest";modeU="m";modeV="m";offset=false] @@ -2612,7 +2612,7 @@ [:stage="c";format="depth24plus";filt="nearest";modeU="m";modeV="r";offset=true] expected: if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN] - if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN] + if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN] if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN] if os == "mac" and not debug: FAIL @@ -3678,7 +3678,7 @@ if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux" and debug: [TIMEOUT, NOTRUN] if os == "mac" and debug: [TIMEOUT, NOTRUN] - if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] + if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="depth24plus-stencil8";filt="linear";modeU="c";modeV="r";offset=false] expected: @@ -3736,7 +3736,7 @@ if os == "win" and debug: [TIMEOUT, NOTRUN] if os == "linux" and debug: [TIMEOUT, NOTRUN] if os == "mac" and debug: [TIMEOUT, NOTRUN] - if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN] + if os == "mac" and not debug: [PASS, TIMEOUT, NOTRUN] [:stage="f";format="depth24plus-stencil8";filt="linear";modeU="r";modeV="c";offset=true] expected: diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/override/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/execution/override/cts.https.html.ini @@ -0,0 +1,6 @@ +[cts.https.html?q=webgpu:shader,execution,override:logical:*] + [:case="logical_both_override"] + + [:case="logical_lhs_override"] + + [:case="logical_rhs_override"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html.ini @@ -1,3 +1,56 @@ +[cts.https.html?q=webgpu:shader,validation,decl,override:array_size:*] + [:case="array_in_array";stage="const"] + + [:case="array_in_array";stage="override"] + + [:case="array_in_struct";stage="const"] + + [:case="array_in_struct";stage="override"] + + [:case="construct_array";stage="const"] + + [:case="construct_array";stage="override"] + + [:case="function_var";stage="const"] + + [:case="function_var";stage="override"] + + [:case="private_ptr_let";stage="const"] + + [:case="private_ptr_let";stage="override"] + + [:case="private_ptr_param";stage="const"] + + [:case="private_ptr_param";stage="override"] + expected: FAIL + + [:case="private_var";stage="const"] + + [:case="private_var";stage="override"] + + [:case="storage_var";stage="const"] + + [:case="storage_var";stage="override"] + + [:case="uniform_var";stage="const"] + + [:case="uniform_var";stage="override"] + + [:case="workgroup_ptr_let";stage="const"] + + [:case="workgroup_ptr_let";stage="override"] + + [:case="workgroup_ptr_param";stage="const"] + expected: FAIL + + [:case="workgroup_ptr_param";stage="override"] + expected: FAIL + + [:case="workgroup_var";stage="const"] + + [:case="workgroup_var";stage="override"] + + [cts.https.html?q=webgpu:shader,validation,decl,override:function_scope:*] [:] @@ -33,6 +86,12 @@ [:case="init_runtime_expr"] + [:case="logical_both_override"] + + [:case="logical_lhs_override"] + + [:case="logical_rhs_override"] + [:case="mix_order_init"] [:case="no_init"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/cts.https.html.ini @@ -16,22 +16,24 @@ [:canvasType="offscreen";prevFrameCallsite="requestAnimationFrame";getCurrentTextureAgain=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";prevFrameCallsite="requestAnimationFrame";getCurrentTextureAgain=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";prevFrameCallsite="runInNewCanvasFrame";getCurrentTextureAgain=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";prevFrameCallsite="runInNewCanvasFrame";getCurrentTextureAgain=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";prevFrameCallsite="requestAnimationFrame";getCurrentTextureAgain=false] @@ -40,7 +42,7 @@ if os == "win" and debug: [PASS, FAIL] if os == "win" and not debug: FAIL if os == "linux" and not debug: [PASS, FAIL] - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";prevFrameCallsite="runInNewCanvasFrame";getCurrentTextureAgain=false] @@ -49,6 +51,7 @@ if os == "win" and debug: [PASS, FAIL] if os == "win" and not debug: FAIL if os == "linux" and not debug: [PASS, FAIL] + if os == "mac" and debug: FAIL if os == "mac" and not debug: [PASS, FAIL] @@ -60,13 +63,13 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen"] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:resize:*] @@ -90,8 +93,10 @@ expected: if os == "win" and debug: FAIL if os == "linux" and not debug: [PASS, FAIL] + if os == "mac" and debug: FAIL [:canvasType="onscreen"] expected: if os == "win" and debug: FAIL if os == "linux" and debug: [PASS, FAIL] + if os == "mac" and debug: FAIL diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/dedicated.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/dedicated.https.html.ini @@ -21,13 +21,13 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";prevFrameCallsite="runInNewCanvasFrame";getCurrentTextureAgain=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";prevFrameCallsite="requestAnimationFrame";getCurrentTextureAgain=false] @@ -46,7 +46,7 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/shared.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/canvas/getCurrentTexture/shared.https.html.ini @@ -16,13 +16,13 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";prevFrameCallsite="runInNewCanvasFrame";getCurrentTextureAgain=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";prevFrameCallsite="requestAnimationFrame";getCurrentTextureAgain=false] @@ -41,7 +41,7 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen"] diff --git a/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/canvas/cts.https.html.ini b/testing/web-platform/mozilla/meta/webgpu/cts/webgpu/web_platform/copyToTexture/canvas/cts.https.html.ini @@ -4263,1886 +4263,2046 @@ expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="bgra8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="r8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg11b10ufloat";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba16unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba32float";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8snorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win" and debug: FAIL + if os == "mac" and debug: FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=false] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL [:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgba8unorm-srgb";srcAlphaMode="premultiplied";dstAlphaMode="premultiplied";srcDoFlipYDuringCopy=true] expected: if os == "win": FAIL if os == "linux" and not debug: FAIL - if os == "mac" and not debug: FAIL + if os == "mac": FAIL diff --git a/testing/web-platform/mozilla/tests/webgpu/common/internal/version.js b/testing/web-platform/mozilla/tests/webgpu/common/internal/version.js @@ -1,3 +1,3 @@ // AUTO-GENERATED - DO NOT EDIT. See tools/gen_version. -export const version = 'd822a3cff5bd96c5ed68fe35d5a0e9e041776a00'; +export const version = '4adb750084943d08f521f18cb36d85c792ff20ba'; diff --git a/testing/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/execution/override/cts.https.html b/testing/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/execution/override/cts.https.html @@ -0,0 +1,36 @@ +<!-- AUTO-GENERATED - DO NOT EDIT. See WebGPU CTS: tools/gen_wpt_cts_html. --> +<!-- + This test suite is built from the TypeScript sources at: + https://github.com/gpuweb/cts + + If you are debugging WebGPU conformance tests, it's highly recommended that + you use the standalone interactive runner in that repository, which + provides tools for easier debugging and editing (source maps, debug + logging, warn/skip functionality, etc.) + + NOTE: + The WPT version of this file is generated with *one variant per test spec + file*. If your harness needs more fine-grained suppressions, you'll need to + generate your own variants list from your suppression list. + See `tools/gen_wpt_cts_html` to do this. + + When run under browser CI, the original cts.https.html should be skipped, and + this alternate version should be run instead, under a non-exported WPT test + directory (e.g. Chromium's wpt_internal). +--> + +<!doctype html> +<title>WebGPU CTS</title> +<meta charset=utf-8> +<meta name="timeout" content="long"> <!-- TODO: narrow to only where it's needed, see https://bugzilla.mozilla.org/show_bug.cgi?id=1850537 --> +<link rel=help href='https://gpuweb.github.io/gpuweb/'> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script> + const loadWebGPUExpectations = undefined; + const shouldWebGPUCTSFailOnWarnings = undefined; +</script> +<script type=module src=/_mozilla/webgpu/common/runtime/wpt.js></script> + +<meta name=variant content='?q=webgpu:shader,execution,override:logical:*'> diff --git a/testing/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html b/testing/web-platform/mozilla/tests/webgpu/cts/webgpu/shader/validation/decl/override/cts.https.html @@ -33,6 +33,7 @@ </script> <script type=module src=/_mozilla/webgpu/common/runtime/wpt.js></script> +<meta name=variant content='?q=webgpu:shader,validation,decl,override:array_size:*'> <meta name=variant content='?q=webgpu:shader,validation,decl,override:function_scope:*'> <meta name=variant content='?q=webgpu:shader,validation,decl,override:id:*'> <meta name=variant content='?q=webgpu:shader,validation,decl,override:initializer:*'> diff --git a/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js b/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js @@ -4022,6 +4022,13 @@ export const listing = [ "file": [ "shader", "execution", + "override" + ] + }, + { + "file": [ + "shader", + "execution", "padding" ] }, diff --git a/testing/web-platform/mozilla/tests/webgpu/webgpu/shader/execution/override.spec.js b/testing/web-platform/mozilla/tests/webgpu/webgpu/shader/execution/override.spec.js @@ -0,0 +1,87 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/export const description = `Test override execution`;import { makeTestGroup } from '../../../common/framework/test_group.js'; +import { keysOf } from '../../../common/util/data_tables.js'; +import { AllFeaturesMaxLimitsGPUTest } from '../../gpu_test.js'; +import { checkElementsEqual } from '../../util/check_contents.js'; + +export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest); + +const kOverrideCases = { + logical_lhs_override: { + code: `x == 2 && 1 < 2` + }, + logical_rhs_override: { + code: `1 > 2 || x == 2` + }, + logical_both_override: { + code: `x > 2 || x == 2` + } +}; + +g.test('logical'). +desc(`Test replacing an override in the LHS of a logical statement`). +params((u) => u.combine('case', keysOf(kOverrideCases))). +fn(async (t) => { + const expr = kOverrideCases[t.params.case].code; + const code = ` +override x: u32 = 2; +override y: bool = ${expr}; + +@group(0) @binding(0) var<storage, read_write> v : vec4u; + +@compute @workgroup_size(1) +fn main() { + if (y) { + v = vec4u(4, 4, 4, 4); + } else { + v = vec4u(1, 1, 1, 1); + } +}`; + + const pipeline = t.device.createComputePipeline({ + layout: 'auto', + compute: { + module: t.device.createShaderModule({ + code + }), + entryPoint: 'main' + } + }); + + const buffer = t.makeBufferWithContents( + new Uint32Array([0, 0, 0, 0]), + GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + ); + + const bg = t.device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { + binding: 0, + resource: { + buffer + } + }] + + }); + + const encoder = t.device.createCommandEncoder(); + const pass = encoder.beginComputePass(); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bg); + pass.dispatchWorkgroups(1, 1, 1); + pass.end(); + t.queue.submit([encoder.finish()]); + + const bufferReadback = await t.readGPUBufferRangeTyped(buffer, { + srcByteOffset: 0, + type: Uint32Array, + typedLength: 4, + method: 'copy' + }); + const got = bufferReadback.data; + const expected = new Uint32Array([4, 4, 4, 4]); + + t.expectOK(checkElementsEqual(got, expected)); +}); +\ No newline at end of file diff --git a/testing/web-platform/mozilla/tests/webgpu/webgpu/shader/validation/decl/override.spec.js b/testing/web-platform/mozilla/tests/webgpu/webgpu/shader/validation/decl/override.spec.js @@ -205,6 +205,21 @@ const kInitCases = { code: `override x = y; override y : i32;`, valid: true + }, + logical_lhs_override: { + code: `override x = 2; + override y = x == 2 && 1 < 2;`, + valid: true + }, + logical_rhs_override: { + code: `override x = 2; + override y = 1 < 2 || x == 2;`, + valid: true + }, + logical_both_override: { + code: `override x = 2; + override y = x > 2 || x == 2;`, + valid: true } }; @@ -223,4 +238,71 @@ desc('Test that override declarations are disallowed in functions'). fn((t) => { const code = `fn foo() { override x : u32; }`; t.expectCompileResult(false, code); +}); + +const kArrayCases = { + workgroup_var: { + code: `var<workgroup> a: array<u32, size>;`, + valid_with_override_size: true + }, + private_var: { + code: `var<private> a: array<u32, size>;`, + valid_with_override_size: false + }, + uniform_var: { + code: `@group(0) @binding(0) var<uniform> a: array<vec4u, size>;`, + valid_with_override_size: false + }, + storage_var: { + code: `@group(0) @binding(0) var<storage> a: array<u32, size>;`, + valid_with_override_size: false + }, + function_var: { + code: `fn f() { var a: array<u32, size>; }`, + valid_with_override_size: false + }, + workgroup_ptr_param: { + code: `fn f(a: ptr<workgroup, array<u32, size>>) {}`, + valid_with_override_size: true + }, + private_ptr_param: { + code: `fn f(a: ptr<private, array<u32, size>>) {}`, + valid_with_override_size: false + }, + workgroup_ptr_let: { + code: `var<workgroup> a: array<u32, size>; fn f() { let a = &a; }`, + valid_with_override_size: true + }, + private_ptr_let: { + code: `var<private> a: array<u32, size>; fn f() { let a = &a; }`, + valid_with_override_size: false + }, + array_in_struct: { + code: `struct S { a: array<u32, size> };`, + valid_with_override_size: false + }, + array_in_array: { + code: `var<workgroup> a: array<array<u32, size>, 4>;`, + valid_with_override_size: false + }, + construct_array: { + code: `fn a() -> u32 { return array<u32, size>()[0]; }`, + valid_with_override_size: false + } +}; + +g.test('array_size'). +desc( + 'Test that override-sized arrays are only allowed in the workgroup address space, and cannot be nested in other types or constructed.' +). +params((u) => u.combine('case', keysOf(kArrayCases)).combine('stage', ['const', 'override'])). +fn((t) => { + const testcase = kArrayCases[t.params.case]; + const wgsl = ` +${t.params.stage} size = 1; +${testcase.code} +`; + + // Using a `const` size is the control case that should always pass. + t.expectCompileResult(t.params.stage === 'const' || testcase.valid_with_override_size, wgsl); }); \ No newline at end of file diff --git a/testing/web-platform/mozilla/tests/webgpu/webgpu/webworker/shader/execution/override.as_worker.js b/testing/web-platform/mozilla/tests/webgpu/webgpu/webworker/shader/execution/override.as_worker.js @@ -0,0 +1,6 @@ +// AUTO-GENERATED - DO NOT EDIT. See src/common/tools/gen_listings_and_webworkers.ts. + +import { g } from '../../../shader/execution/override.spec.js'; +import { wrapTestGroupForWorker } from '../../../../common/runtime/helper/wrap_for_worker.js'; + +wrapTestGroupForWorker(g);