Skip to content

Free macOS runners give CI real Metal for WebGL2 and WebGPU #199

Description

@hanayik

The e2e workflow runs 3 of 16 specs because we assumed hosted runners have no GPU. That is true for Ubuntu. The free macOS runners do have one, and it works for both backends.

Probe: run 35742921976 from .github/workflows/gpu-probe.yml (branch ci/gpu-runner-probe).

Runner Full Chromium (new headless) Headless shell (Playwright default)
macos-14, macos-15 Metal (Apple Paravirtual device), WebGPU renders and computes correctly SwiftShader only
ubuntu-latest SwiftShader only SwiftShader only

Why it matters. The WebGL2 versus WebGPU parity specs, and the render-mode tests from #196, only run on a developer's Mac today. This puts them in CI on the backend we actually tune against, at no cost.

Two things to know

  • It only works with channel: 'chromium' in the Playwright launch options. The default headless shell falls back to SwiftShader, even on a physical Mac.
  • The runner is a small VM (3 cores, 7 GB). Use it for correctness, not timing.

Next step. Add a macos-15 job to niivue-e2e.yml that runs the full spec list with the channel change, behind an env var so the Ubuntu job is untouched.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions