wai-quantum WebGPU: the windows member, five adapters certified bit-exact #247

Merged
dcharlot merged 1 commit from wai/quantum-webgpu-windows into main 2026-10-14 11:52:18 -04:00
Owner

The windows runner is back (cbio-device-0000), so the member this workflow had only sketched in a trailing comment is now a job, replacing that comment.

One job, not one per backend. The member test enumerates every adapter wgpu finds in the one process, and this host exposes five — both GPUs through both backends, plus Microsoft's software adapter through DX12:

key adapter
gpu-dx12-10de discrete NVIDIA, DX12
gpu-dx12-8086 integrated Intel, DX12
gpu-vulkan-10de discrete NVIDIA, Vulkan
gpu-vulkan-8086 integrated Intel, Vulkan
swgpu-dx12-1414 WARP, class Cpu

The DX12 keys are the first coverage of the WGSL → HLSL path (naga) — every other member reaches its adapter through Metal or Vulkan. It is also the widest member in the fleet: Metal has one adapter, jetson-hub two.

Run on the host before this was written, at this tree

  • 14 of 14 member tests pass (647 s)
  • adapters found are exactly the declared five
  • 40 bit-exact certificates = 5 adapters × 4 pinned corpus digests × 2 implementations (per-gate kernel and tile runs)
  • 7/7 shader mutants and 3/3 tile mutants killed on every one of the five
  • the conformance corpus verifies through the member: statevector-equivalence holds, every reject file refused as listed, every accept file read as listed

The workflow's paths: filter includes this file, so this PR runs the new job for real.

Two host facts the steps must carry

Both would otherwise fail in a way that reads as a code defect:

  • bash here resolves to the WindowsApps WSL stub, and the machine PATH holds Git\cmd (git.exe) but not Git\bin (bash.exe). Under WSL the steps reach none of the Windows GPU drivers. Git Bash goes on PATH first, and the next step refuses to continue unless uname -s reports MINGW/MSYS — so that cannot recur silently.
  • The runner writes an unsigned .ps1 per step, so the process execution policy is set to Bypass — with pwsh, not Windows PowerShell, whose 5.1 parser rejects the PS7 syntax this repo's scripts use.

Not a required status, per the note it replaces.

🤖 Generated with Claude Code

The windows runner is back (`cbio-device-0000`), so the member this workflow had only sketched in a trailing comment is now a job, replacing that comment. **One job, not one per backend.** The member test enumerates every adapter wgpu finds in the one process, and this host exposes five — both GPUs through both backends, plus Microsoft's software adapter through DX12: | key | adapter | |---|---| | `gpu-dx12-10de` | discrete NVIDIA, DX12 | | `gpu-dx12-8086` | integrated Intel, DX12 | | `gpu-vulkan-10de` | discrete NVIDIA, Vulkan | | `gpu-vulkan-8086` | integrated Intel, Vulkan | | `swgpu-dx12-1414` | WARP, class `Cpu` | The DX12 keys are the **first coverage of the WGSL → HLSL path (naga)** — every other member reaches its adapter through Metal or Vulkan. It is also the widest member in the fleet: Metal has one adapter, jetson-hub two. ### Run on the host before this was written, at this tree - **14 of 14** member tests pass (647 s) - adapters found are exactly the declared five - **40 bit-exact certificates** = 5 adapters × 4 pinned corpus digests × 2 implementations (per-gate kernel and tile runs) - **7/7 shader mutants and 3/3 tile mutants killed on every one of the five** - the conformance corpus verifies through the member: statevector-equivalence holds, every reject file refused as listed, every accept file read as listed The workflow's `paths:` filter includes this file, so this PR runs the new job for real. ### Two host facts the steps must carry Both would otherwise fail in a way that reads as a code defect: - **`bash` here resolves to the WindowsApps WSL stub**, and the machine PATH holds `Git\cmd` (`git.exe`) but not `Git\bin` (`bash.exe`). Under WSL the steps reach none of the Windows GPU drivers. Git Bash goes on PATH first, and the next step refuses to continue unless `uname -s` reports MINGW/MSYS — so that cannot recur silently. - **The runner writes an unsigned `.ps1` per step**, so the process execution policy is set to Bypass — with `pwsh`, not Windows PowerShell, whose 5.1 parser rejects the PS7 syntax this repo's scripts use. Not a required status, per the note it replaces. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
wai-quantum WebGPU: the windows member, five adapters certified bit-exact
Some checks failed
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 10m43s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 13m32s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m42s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m28s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 59s
standards workspaces build + test / aac-rs (pull_request) Successful in 2m39s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 48s
standards workspaces build + test / map-rs (pull_request) Successful in 59s
standards workspaces build + test / mesh-rs (pull_request) Successful in 55s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 1m34s
standards workspaces build + test / openpay (pull_request) Successful in 3m14s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m32s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m36s
lockfiles / every Cargo.lock is current (pull_request) Successful in 35s
spec citations resolve / Code cites no section its SPEC lacks (pull_request) Successful in 4s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m18s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m6s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m32s
standards workspaces build + test / joulehook-rs (pull_request) Failing after 15s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m11s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m59s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m47s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m8s
tests in CI / every test file is run by a job or listed with its reason (pull_request) Successful in 3s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m16s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m55s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 5s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 1m53s
37c3ff7a1d
The windows runner is back (cbio-device-0000), so the member the workflow had
only sketched in a comment is now a job. It replaces that comment.

One job, not one per backend. The member test enumerates every adapter wgpu
finds in the one process, and this host exposes five: both of its GPUs through
both backends, plus Microsoft's software adapter through DX12.

  gpu-dx12-10de    discrete NVIDIA, DX12
  gpu-dx12-8086    integrated Intel, DX12
  gpu-vulkan-10de  discrete NVIDIA, Vulkan
  gpu-vulkan-8086  integrated Intel, Vulkan
  swgpu-dx12-1414  WARP, class Cpu

The DX12 keys are the first coverage of the WGSL -> HLSL path (naga): every
other member reaches its adapter through Metal or Vulkan.

Run on the host before this was written, at this tree: 14 of 14 member tests
pass; the adapters found are exactly the declared five; 40 bit-exact
certificates, which is five adapters by four pinned corpus digests by both
implementations (the per-gate kernel and tile runs); 7 of 7 shader mutants and
3 of 3 tile mutants killed on every one of the five; and the conformance corpus
verifies through the member, statevector-equivalence holding, every reject file
refused as listed.

Two host facts the steps have to carry, both of which would otherwise fail in a
way that looks like a code defect:

  `bash` here resolves to the WindowsApps WSL stub, and the machine PATH holds
  Git\cmd (git.exe) but not Git\bin (bash.exe). Under WSL the steps would reach
  none of the Windows GPU drivers, so Git Bash is put on PATH first and the next
  step refuses to continue unless `uname -s` reports MINGW or MSYS.

  The runner writes an unsigned .ps1 per step, so the process execution policy
  is set to Bypass; pwsh rather than Windows PowerShell, whose 5.1 parser
  rejects the PS7 syntax this repo's scripts use.

Not a required status, per the note it replaces.

Co-Authored-By: Claude Opus 5 <[email protected]>
dcharlot force-pushed wai/quantum-webgpu-windows from 37c3ff7a1d
Some checks failed
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 10m43s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 13m32s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m42s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m28s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 59s
standards workspaces build + test / aac-rs (pull_request) Successful in 2m39s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 48s
standards workspaces build + test / map-rs (pull_request) Successful in 59s
standards workspaces build + test / mesh-rs (pull_request) Successful in 55s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 1m34s
standards workspaces build + test / openpay (pull_request) Successful in 3m14s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m32s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m36s
lockfiles / every Cargo.lock is current (pull_request) Successful in 35s
spec citations resolve / Code cites no section its SPEC lacks (pull_request) Successful in 4s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m18s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m6s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m32s
standards workspaces build + test / joulehook-rs (pull_request) Failing after 15s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m11s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m59s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m47s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m8s
tests in CI / every test file is run by a job or listed with its reason (pull_request) Successful in 3s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m16s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m55s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 5s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 1m53s
to 591becdac5
All checks were successful
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 6s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been skipped
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been skipped
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m9s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m24s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 11s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 6s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 5s
no-vanity-metrics / No new orphan source files (pull_request) Successful in 6s
lockfiles / every Cargo.lock is current (pull_request) Successful in 38s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 3m48s
standards workspaces build + test / aac-rs (pull_request) Successful in 4m0s
wai formal verification (integer core) / kani (rans64-t2) (pull_request) Successful in 29m7s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 1m8s
wai-ops integer operators / macos-arm64 (pull_request) Successful in 1m5s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m39s
standards workspaces build + test / map-rs (pull_request) Successful in 1m6s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m7s
tests in CI / every test file is run by a job or listed with its reason (pull_request) Successful in 5s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 36s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 4m17s
standards workspaces build + test / openpay (pull_request) Successful in 4m38s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 32s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 3m7s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 3m0s
wai-ops integer operators / linux-aarch64 (pull_request) Successful in 1m22s
WAI section references / cited sections exist (pull_request) Successful in 26s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 10s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 12m33s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 13m41s
2026-10-14 08:56:08 -04:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!247
No description provided.