wai-quantum WebGPU: the windows member, five adapters certified bit-exact #247
1 changed files with 56 additions and 6 deletions
62
.github/workflows/wai-quantum-webgpu.yml
vendored
62
.github/workflows/wai-quantum-webgpu.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue