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

2026-10-14

Transaction Science
wai-quantum WebGPU: the windows member, five adapters certified bit-exact
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
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]>
2026-10-14 08:56:05 -04:00