Manual-sync mirror of chromium.googlesource.com/external/github.com/gpuweb/cts.git
When the implementation selects a subgroup size < 8 for the test's
workgroup, the split predicate `id < subgroupSize / 2` bisects the
only quad in the subgroup, leaving no fully active quad — which is
undefined behavior for quad operations. This is observed on WARP
(which selects its native D3D12 wave size: 4 on arm64 NEON, often 4
on x86 for small workgroups) and may occur on any implementation
that picks a small native subgroup size at runtime.
Two coordinated guards:
* In the shader, the quad call is wrapped in
`if subgroupSize >= 8u { ... }` so it never executes when the
split predicate would be unsafe.
* In the JS checker, the actual subgroupSize is read out of
metadata.subgroup_size[0] and the test is skipped with t.skip
when it is < 8, so the missing output doesn't get flagged as a
failure.
Querying GPUAdapterInfo.subgroupMinSize would not be sufficient: the
size the implementation actually selects depends on the shader (its
workgroup size, register pressure, etc.), not just the adapter's
minimum supported size. Reading subgroupSize from inside the test
shader itself is the only reliable signal.
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| docs | ||
| src | ||
| standalone | ||
| tools | ||
| .eslint-resolver.js | ||
| .eslintignore | ||
| .eslintrc.json | ||
| .gitattributes | ||
| .gitignore | ||
| babel.config.js | ||
| CONTRIBUTING.md | ||
| cts.code-workspace | ||
| deploy_key.enc | ||
| Gruntfile.js | ||
| LICENSE.txt | ||
| node.tsconfig.json | ||
| package-lock.json | ||
| package.json | ||
| prettier.config.js | ||
| README.md | ||
| tsconfig.json | ||
| w3c.json | ||
WebGPU Conformance Test Suite
This is the conformance test suite for WebGPU. It tests the behaviors defined by the WebGPU specification.
The contents of this test suite are considered normative; implementations must pass them to be WebGPU-conformant. Mismatches between the specification and tests are bugs.
This test suite can be embedded inside WPT or run in standalone.
Launch the standalone CTS runner / test plan viewer
Contributing
Please read the introductory guidelines before contributing.
Other documentation may be found in docs/ and in the helper index (source).
Read CONTRIBUTING.md on licensing.
For realtime communication about WebGPU spec and test, join the #WebGPU:matrix.org room on Matrix.