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

View file

@ -339,9 +339,59 @@ jobs:
"$RUNNER_TEMP/browser-webgpu.log" \
|| { echo "::error::no GPU member certified bit-exact 4 of 4, per-gate and in tile runs, in the browser"; exit 1; }
# Windows, when its runner is back (DX12, translator naga+dxbc, and Vulkan, as separate members):
# member-windows:
# runs-on: windows
# env: { WAI_QUANTUM_WEBGPU_EXPECT: "<keys from the first run>" }
# steps: checkout; Set-ExecutionPolicy Bypass; run the script with `shell: bash`
# (Git Bash on PATH). Not a required status.
# Windows reaches both of this host's GPUs through both backends, so one job
# certifies five adapters rather than one per backend: the member test
# enumerates every adapter in the one process, and the DX12 keys exercise the
# WGSL -> HLSL path (naga) that no other member covers. Not a required status.
member-windows:
name: member · DX12 and Vulkan (cbio-windows)
runs-on: windows
timeout-minutes: 150
env:
# The key list this host's first run printed:
# 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 Microsoft's software adapter (WARP), class Cpu
# Adding or removing a driver changes this set, and the member test fails
# until this line matches it again.
WAI_QUANTUM_WEBGPU_EXPECT: gpu-dx12-10de,gpu-dx12-8086,gpu-vulkan-10de,gpu-vulkan-8086,swgpu-dx12-1414
steps:
- uses: actions/checkout@v5
# The runner writes an unsigned .ps1 per step, which the default policy
# refuses. pwsh, not Windows PowerShell: the 5.1 parser rejects the PS7
# syntax this repo's scripts use.
- name: Allow the runner's generated scripts to run
shell: pwsh
run: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
# `bash` on this host resolves to the WindowsApps WSL stub, and the machine
# PATH carries Git\cmd (git.exe) but not Git\bin (bash.exe). Without this
# every `shell: bash` step below would run under WSL, which reaches none of
# the Windows GPU drivers.
- name: Put Git Bash on PATH
shell: pwsh
run: |
$gitBash = 'C:\Program Files\Git\bin'
if (-not (Test-Path "$gitBash\bash.exe")) { throw "Git Bash is missing at $gitBash" }
$gitBash | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: The shell is Git Bash, not WSL
shell: bash
run: |
set -euo pipefail
command -v bash
# A WSL bash reports Linux; Git Bash reports MINGW or MSYS.
case "$(uname -s)" in
MINGW*|MSYS*) ;;
*) echo "::error::bash is $(uname -s), not Git Bash"; exit 1 ;;
esac
- name: The member's tests
shell: bash
run: scripts/wai-quantum-webgpu-member.sh
# wai-rs is built with --no-default-features here for the same reason as the
# other GPU members: its default `codecs` feature links system codec
# libraries this host does not have, and the corpus needs none of them.
- name: The conformance corpus through the member
shell: bash
working-directory: wai/wai-rs
run: cargo run --locked --no-default-features --features quantum_fabric_webgpu --bin wai_quantum_vectors -- verify ../quantum-conformance --webgpu