Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create pseudo async Create*PipelineAsync #31194

Closed
wants to merge 24 commits into from

Conversation

sagudev
Copy link
Member

@sagudev sagudev commented Jan 26, 2024

Shader tests in CTS depends on CreateComputePipelineAsync.

I think having pseudo async functions is better than not having them at all.


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • There are tests for these changes in WebGPU CTS

@sagudev sagudev added the A-content/webgpu The WebGPU implementation. label Jan 26, 2024
@sagudev sagudev added the T-webgpu Do a try run on Linux of the WebGPU CTS label Jan 29, 2024
@github-actions github-actions bot removed the T-webgpu Do a try run on Linux of the WebGPU CTS label Jan 29, 2024
Copy link

🔨 Triggering try run (#7691818292) for WebGPU CTS

Copy link

Test results for linux-wpt-layout-2020 from try job (#7691818292):

Flaky unexpected result (24)
Stable unexpected results (9)
  • TIMEOUT [expected CRASH] /_webgpu/webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createRenderPipelineAsync:
    • TIMEOUT [expected PASS] subtest: :valid=true;awaitLost=true Test timed out
    • NOTRUN [expected PASS] subtest: :valid=true;awaitLost=false
    • NOTRUN [expected PASS] subtest: :valid=false;awaitLost=true
    • NOTRUN [expected PASS] subtest: :valid=false;awaitLost=false
  • ERROR [expected CRASH] /_webgpu/webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:
    • TIMEOUT [expected PASS] subtest: :inputSource="const";vectorize_rhs=2 Test timed out
    • NOTRUN [expected PASS] subtest: :inputSource="const";vectorize_rhs=3
    • NOTRUN [expected PASS] subtest: :inputSource="const";vectorize_rhs=4
    • NOTRUN [expected PASS] subtest: :inputSource="uniform";vectorize_rhs=2
    • NOTRUN [expected PASS] subtest: :inputSource="uniform";vectorize_rhs=3
    • NOTRUN [expected PASS] subtest: :inputSource="uniform";vectorize_rhs=4
    • NOTRUN [expected PASS] subtest: :inputSource="storage_r";vectorize_rhs=2
    • NOTRUN [expected PASS] subtest: :inputSource="storage_r";vectorize_rhs=3
    • NOTRUN [expected PASS] subtest: :inputSource="storage_r";vectorize_rhs=4
    • NOTRUN [expected PASS] subtest: :inputSource="storage_rw";vectorize_rhs=2
    • And 2 more unexpected results...
  • TIMEOUT /_webgpu/webgpu/cts.https.html?q=webgpu:shader,execution,robust_access:linear_memory:*
    • FAIL [expected PASS] subtest: :addressSpace="private";access="write";containerType="array";shadowingMode="module-scope";isAtomic=false assert_unreached:

      • INFO: subcase: baseType="i32";type="array<i32,3>"
        OK
      • INFO: subcase: baseType="u32";type="array<u32,3>"
        OK
      • INFO: subcase: baseType="f32";type="array<f32,3>"
        OK
      • INFO: subcase: baseType="bool";type="array<bool,3>"
        OK
      • EXCEPTION: Unexpected validation error occurred: Parsing(ShaderError { source: "\nstruct Constants {\n zero: u32\n};\n@group(1) @binding(0) var<uniform> constants: Constants;\n\nstruct Result {\n value: u32\n};\n@group(1) @binding(1) var<storage, read_write> result: Result;\n\n\n\nstruct S {\n startCanary: array<u32, 10>,\n data: array<i32,3>,\n endCanary: array<u32, 10>,\n};var<private> s: S;\n\nvar<private> min = 0;\nvar<private> max = 0;\nvar<private> arrayLength = 0;\n\n\nfn runTest() -> u32 {\n \n _ = min;\n _ = max;\n _ = arrayLength;\n\n \n for (var i = 0u; i < 10u; i = i + 1u) {\n s.startCanary[i] = 0xFFFFFFFFu;\n s.endCanary[i] = 0xFFFFFFFFu;\n }\n {\n let index = (0u);\n s.data[index] = i32();\n }\n {\n let index = (3u - 1u);\n s.data[index] = i32();\n }\n {\n let index = (3u);\n s.data[index] = i32();\n }\n {\n let index = (1000000u);\n s.data[index] = i32();\n }\n {\n let index = (4294967295u);\n s.data[index] = i32();\n }\n {\n let index = (2147483647u);\n s.data[index] = i32();\n }\n {\n let index = (0u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (3u - 1u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (3u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (1000000u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (4294967295u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (2147483647u) + 0u;\n s.data[index] = i32();\n }\n {\n let index = (0u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (3u - 1u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (3u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (1000000u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (4294967295u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (2147483647u) + u32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (0);\n s.data[index] = i32();\n }\n {\n let index = (3 - 1);\n s.data[index] = i32();\n }\n {\n let index = (-1);\n s.data[index] = i32();\n }\n {\n let index = (3);\n s.data[index] = i32();\n }\n {\n let index = (-1000000);\n s.data[index] = i32();\n }\n {\n let index = (1000000);\n s.data[index] = i32();\n }\n {\n let index = (-2147483648);\n s.data[index] = i32();\n }\n {\n let index = (2147483647);\n s.data[index] = i32();\n }\n {\n let index = (0) + 0;\n s.data[index] = i32();\n }\n {\n let index = (3 - 1) + 0;\n s.data[index] = i32();\n }\n {\n let index = (-1) + 0;\n s.data[index] = i32();\n }\n {\n let index = (3) + 0;\n s.data[index] = i32();\n }\n {\n let index = (-1000000) + 0;\n s.data[index] = i32();\n }\n {\n let index = (1000000) + 0;\n s.data[index] = i32();\n }\n {\n let index = (-2147483648) + 0;\n s.data[index] = i32();\n }\n {\n let index = (2147483647) + 0;\n s.data[index] = i32();\n }\n {\n let index = (0) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (3 - 1) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (-1) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (3) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (-1000000) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (1000000) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (-2147483648) + i32(constants.zero);\n s.data[index] = i32();\n }\n {\n let index = (2147483647) + i32(constants.zero);\n s.data[index] = i32();\n }\n for (var i = 0u; i < 10u; i = i + 1u) {\n if (s.startCanary[i] != 0xFFFFFFFFu) {\n return 0x1001u;\n }\n if (s.endCanary[i] != 0xFFFFFFFFu) {\n return 0x1002u;\n }\n }\n return 0u;\n}\n\n@compute @workgroup_size(1)\nfn main() {\n _ = constants.zero; // Ensure constants buffer is statically-accessed\n result.value = runTest();\n}", label: None, inner: ParseError { message: "expected ':', found '='", labels: [(Span { start: 323, end: 324 }, "expected ':'")], notes: [] } })
        TestFailedButDeviceReusable@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:20:1
        attemptEndTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:404:13
        async*endTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:356:41
        release@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:68:20
        finalize/<@https://web-platform.test:8443/_webgpu/webgpu/webgpu/gpu_test.js:112:43

      Reached unreachable code

    • TIMEOUT [expected PASS] subtest: :addressSpace="private";access="write";containerType="array";shadowingMode="function-scope";isAtomic=false Test timed out
    • NOTRUN [expected PASS] subtest: :addressSpace="private";access="write";containerType="matrix";shadowingMode="none";isAtomic=false
  • TIMEOUT /webgpu/webgpu/cts.https.html?q=webgpu:shader,execution,zero_init:compute,zero_init:*
    • FAIL [expected PASS] subtest: :addressSpace="workgroup";workgroupSize=[64,1,1];batch_=27 assert_unreached:

      • INFO: subcase: shaderTypeParam="struct { array<mat3x3<f32>, 1>, array<mat2x3<f32>, 1>, array<mat4x2<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat3x2<f32>, 1>, array<mat2x2<f32>, 1>, array<vec4<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<f32, 1>, array<vec2<u32>, 1>, array<u32, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<atomic<i32>, 1>, array<atomic<i32>, 1>, array<u32, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<vec2<u32>, 1>, array<f32, 1>, array<vec4<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x2<f32>, 1>, array<mat3x2<f32>, 1>, array<mat4x2<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 1>, array<mat3x3<f32>, 1>, array<mat4x3<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 1>, array<mat3x4<f32>, 1>, array<mat4x4<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 1>, array<atomic<i32>, 3>, array<u32, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<vec2<u32>, 3>, array<f32, 3>, array<vec4<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x2<f32>, 3>, array<mat3x2<f32>, 3>, array<mat4x2<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 3>, array<mat3x3<f32>, 3>, array<mat4x3<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 3>, array<mat3x4<f32>, 3>, array<mat4x4<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 3>, array<atomic<i32>, 67>, array<u32, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<vec2<u32>, 67>, array<f32, 67>, array<vec4<f32>, 67> }"
        OK
      • EXCEPTION: Unexpected validation error occurred: Parsing(ShaderError { source: "\n @group(0) @binding(0) var<storage, read> inputs : array<u32>;\n @group(0) @binding(1) var<storage, read_write> outputs : array<u32>;\n var<workgroup> wg_mem : array<u32, 16384 / 4>;\n\n @compute @workgroup_size(256)\n fn fill(@Builtin(local_invocation_index) lid : u32) {\n const num_u32_per_invocation = 16384 / (4 * 256);\n\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n wg_mem[idx] = inputs[idx];\n }\n workgroupBarrier();\n // Copy out to avoid wg_mem being elided.\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n outputs[idx] = wg_mem[idx];\n }\n }\n ", label: None, inner: ParseError { message: "expected '>', found '/'", labels: [(Span { start: 191, end: 192 }, "expected '>'")], notes: [] } })
        TestFailedButDeviceReusable@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:20:1
        attemptEndTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:404:13
        async*endTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:356:41
        release@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:68:20
        finalize/<@https://web-platform.test:8443/_webgpu/webgpu/webgpu/gpu_test.js:112:43

      Reached unreachable code

    • FAIL [expected PASS] subtest: :addressSpace="workgroup";workgroupSize=[64,1,1];batch__=28 assert_unreached:

      • INFO: subcase: shaderTypeParam="struct { array<mat2x2<f32>, 67>, array<mat3x2<f32>, 67>, array<mat4x2<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 67>, array<mat3x3<f32>, 67>, array<mat4x3<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 67>, array<mat3x4<f32>, 67>, array<mat4x4<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 67>, struct { atomic<i32> }, struct { u32 } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { vec2<u32> }, struct { f32 }, struct { vec4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32> }, struct { mat3x2<f32> }, struct { mat4x2<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x3<f32> }, struct { mat3x3<f32> }, struct { mat4x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x4<f32> }, struct { mat3x4<f32> }, struct { mat4x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool }, struct { atomic<i32>, u32, vec2<u32> }, struct { f32, vec4<f32>, mat2x2<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x2<f32>, mat4x2<f32>, mat2x3<f32> }, struct { mat3x3<f32>, mat4x3<f32>, mat2x4<f32> }, struct { mat3x4<f32>, mat4x4<f32>, bool } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool, mat4x4<f32>, mat3x4<f32> }, struct { mat2x4<f32>, mat4x3<f32>, mat3x3<f32> }, struct { mat2x3<f32>, mat4x2<f32>, mat3x2<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, vec4<f32>, f32 }, struct { vec2<u32>, u32, atomic<i32> }, struct { f32, u32, vec2<u32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x2<f32>, vec4<f32>, mat2x2<f32> }, struct { mat3x3<f32>, mat4x2<f32>, mat2x3<f32> }, struct { mat3x4<f32>, mat4x3<f32>, mat2x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool, mat4x4<f32>, bool }, struct { mat2x4<f32>, mat4x4<f32>, mat3x4<f32> }, struct { mat2x3<f32>, mat4x3<f32>, mat3x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, mat4x2<f32>, mat3x2<f32> }, struct { vec2<u32>, vec4<f32>, f32 }, struct { atomic<i32>, u32, atomic<i32> } }"
        OK
      • EXCEPTION: Unexpected validation error occurred: Parsing(ShaderError { source: "\n @group(0) @binding(0) var<storage, read> inputs : array<u32>;\n @group(0) @binding(1) var<storage, read_write> outputs : array<u32>;\n var<workgroup> wg_mem : array<u32, 16384 / 4>;\n\n @compute @workgroup_size(256)\n fn fill(@Builtin(local_invocation_index) lid : u32) {\n const num_u32_per_invocation = 16384 / (4 * 256);\n\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n wg_mem[idx] = inputs[idx];\n }\n workgroupBarrier();\n // Copy out to avoid wg_mem being elided.\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n outputs[idx] = wg_mem[idx];\n }\n }\n ", label: None, inner: ParseError { message: "expected '>', found '/'", labels: [(Span { start: 191, end: 192 }, "expected '>'")], notes: [] } })
        TestFailedButDeviceReusable@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:20:1
        attemptEndTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:404:13
        async*endTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:356:41
        release@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:68:20
        finalize/<@https://web-platform.test:8443/_webgpu/webgpu/webgpu/gpu_test.js:112:43

      Reached unreachable code

    • FAIL [expected PASS] subtest: :addressSpace="workgroup";workgroupSize=[64,1,1];batch__=29 assert_unreached:

      • INFO: subcase: shaderTypeParam="struct { struct { f32, vec4<f32>, vec2<u32> }, struct { mat3x2<f32>, mat4x2<f32>, mat2x2<f32> }, struct { mat3x3<f32>, mat4x3<f32>, mat2x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x4<f32>, mat4x4<f32>, mat2x4<f32> }, struct { mat2x4<f32>, mat4x3<f32>, mat3x4<f32> }, struct { mat2x3<f32>, mat4x2<f32>, mat3x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, vec4<f32>, mat3x2<f32> }, struct { vec2<u32>, u32, f32 }, struct { vec2<u32>, u32, f32 } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, vec4<f32>, mat3x2<f32> }, struct { mat2x3<f32>, mat4x2<f32>, mat3x3<f32> }, struct { mat2x4<f32>, mat4x3<f32>, mat3x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x4<f32>, mat4x4<f32>, mat2x4<f32> }, struct { mat3x3<f32>, mat4x3<f32>, mat2x3<f32> }, struct { mat3x2<f32>, mat4x2<f32>, mat2x2<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { f32, vec4<f32>, vec2<u32> }, struct { atomic<i32>, u32, atomic<i32> }, struct { vec2<u32>, vec4<f32>, f32 } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, mat4x2<f32>, mat3x2<f32> }, struct { mat2x3<f32>, mat4x3<f32>, mat3x3<f32> }, struct { mat2x4<f32>, mat4x4<f32>, mat3x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool, mat4x4<f32>, bool }, struct { mat3x4<f32>, mat4x3<f32>, mat2x4<f32> }, struct { mat3x3<f32>, mat4x2<f32>, mat2x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x2<f32>, vec4<f32>, mat2x2<f32> }, struct { f32, u32, vec2<u32> }, struct { vec2<u32>, u32, atomic<i32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32>, vec4<f32>, f32 }, struct { mat2x3<f32>, mat4x2<f32>, mat3x2<f32> }, struct { mat2x4<f32>, mat4x3<f32>, mat3x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool, mat4x4<f32>, mat3x4<f32> }, struct { mat3x4<f32>, mat4x4<f32>, bool }, struct { mat3x3<f32>, mat4x3<f32>, mat2x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat3x2<f32>, mat4x2<f32>, mat2x3<f32> }, struct { f32, vec4<f32>, mat2x2<f32> }, struct { atomic<i32>, u32, vec2<u32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { bool }, struct { mat4x4<f32> }, struct { mat3x4<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x4<f32> }, struct { mat4x3<f32> }, struct { mat3x3<f32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { mat2x3<f32> }, struct { mat4x2<f32> }, struct { mat3x2<f32> } }"
        OK
      • EXCEPTION: Unexpected validation error occurred: Parsing(ShaderError { source: "\n @group(0) @binding(0) var<storage, read> inputs : array<u32>;\n @group(0) @binding(1) var<storage, read_write> outputs : array<u32>;\n var<workgroup> wg_mem : array<u32, 16384 / 4>;\n\n @compute @workgroup_size(256)\n fn fill(@Builtin(local_invocation_index) lid : u32) {\n const num_u32_per_invocation = 16384 / (4 * 256);\n\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n wg_mem[idx] = inputs[idx];\n }\n workgroupBarrier();\n // Copy out to avoid wg_mem being elided.\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n outputs[idx] = wg_mem[idx];\n }\n }\n ", label: None, inner: ParseError { message: "expected '>', found '/'", labels: [(Span { start: 191, end: 192 }, "expected '>'")], notes: [] } })
        TestFailedButDeviceReusable@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:20:1
        attemptEndTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:404:13
        async*endTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:356:41
        release@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:68:20
        finalize/<@https://web-platform.test:8443/_webgpu/webgpu/webgpu/gpu_test.js:112:43

      Reached unreachable code

    • FAIL [expected PASS] subtest: :addressSpace="workgroup";workgroupSize=[64,1,1];batch__=30 assert_unreached:

      • INFO: subcase: shaderTypeParam="struct { struct { mat2x2<f32> }, struct { vec4<f32> }, struct { f32 } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { struct { vec2<u32> }, struct { u32 }, struct { atomic<i32> } }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 67>, array<mat4x4<f32>, 67>, array<mat3x4<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 67>, array<mat4x3<f32>, 67>, array<mat3x3<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 67>, array<mat4x2<f32>, 67>, array<mat3x2<f32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x2<f32>, 67>, array<vec4<f32>, 67>, array<f32, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<vec2<u32>, 67>, array<u32, 67>, array<atomic<i32>, 67> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 3>, array<mat4x4<f32>, 3>, array<mat3x4<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 3>, array<mat4x3<f32>, 3>, array<mat3x3<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 3>, array<mat4x2<f32>, 3>, array<mat3x2<f32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x2<f32>, 3>, array<vec4<f32>, 3>, array<f32, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<vec2<u32>, 3>, array<u32, 3>, array<atomic<i32>, 3> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<bool, 1>, array<mat4x4<f32>, 1>, array<mat3x4<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x4<f32>, 1>, array<mat4x3<f32>, 1>, array<mat3x3<f32>, 1> }"
        OK
      • INFO: subcase: shaderTypeParam="struct { array<mat2x3<f32>, 1>, array<mat4x2<f32>, 1>, array<mat3x2<f32>, 1> }"
        OK
      • EXCEPTION: Unexpected validation error occurred: Parsing(ShaderError { source: "\n @group(0) @binding(0) var<storage, read> inputs : array<u32>;\n @group(0) @binding(1) var<storage, read_write> outputs : array<u32>;\n var<workgroup> wg_mem : array<u32, 16384 / 4>;\n\n @compute @workgroup_size(256)\n fn fill(@Builtin(local_invocation_index) lid : u32) {\n const num_u32_per_invocation = 16384 / (4 * 256);\n\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n wg_mem[idx] = inputs[idx];\n }\n workgroupBarrier();\n // Copy out to avoid wg_mem being elided.\n for (var i = 0u; i < num_u32_per_invocation; i++) {\n let idx = num_u32_per_invocation * lid + i;\n outputs[idx] = wg_mem[idx];\n }\n }\n ", label: None, inner: ParseError { message: "expected '>', found '/'", labels: [(Span { start: 191, end: 192 }, "expected '>'")], notes: [] } })
        TestFailedButDeviceReusable@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:20:1
        attemptEndTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:404:13
        async*endTestScope@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:356:41
        release@https://web-platform.test:8443/_webgpu/webgpu/webgpu/util/device_pool.js:68:20
        finalize/<@https://web-platform.test:8443/_webgpu/webgpu/webgpu/gpu_test.js:112:43

      Reached unreachable code

    • FAIL [expected NOTRUN] subtest: :addressSpace="workgroup";workgroupSize=[64,1,1];batch__=31 assert_unreached:

      Reached unreachable code

    • TIMEOUT [expected NOTRUN] subtest: :addressSpace="workgroup";workgroupSize=[1,1,48];batch__=0 Test timed out
  • TIMEOUT /_webgpu/webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,compute:
    • TIMEOUT [expected NOTRUN] subtest: :videoName="four-colors-vp9-bt601.webm";sourceType="VideoFrame";dstColorSpace="srgb" Test timed out
  • TIMEOUT /_webgpu/webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,sample:
    • TIMEOUT [expected FAIL] subtest: :videoName="four-colors-vp9-bt601.webm";sourceType="VideoElement";dstColorSpace="srgb" Test timed out
    • NOTRUN [expected PASS] subtest: :videoName="four-colors-vp9-bt601.webm";sourceType="VideoFrame";dstColorSpace="display-p3"
    • NOTRUN [expected PASS] subtest: :videoName="four-colors-vp9-bt601.webm";sourceType="VideoFrame";dstColorSpace="srgb"
  • Copy link

    ⚠️ Try run (#7691818292) failed.

    @mrobinson
    Copy link
    Member

    Can this be closed now?

    @mrobinson
    Copy link
    Member

    mrobinson commented Mar 18, 2024

    Closing this as a duplicate of #31695.

    @mrobinson mrobinson closed this Mar 18, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    A-content/webgpu The WebGPU implementation.
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    None yet

    2 participants