CNA-VGAP-061: SDL_GPU is the default renderer on Windows, macOS and iOS but is not qualified there
Evidence basis: source-verified at the pinned commit; recorded by CNA's own run (not repeated here); tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit c6dec91f; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
Since the native Windows and Apple renderers were retired, a build for Windows, macOS or iOS defaults to SDL_GPU, yet CNA records no native Windows run of it, no Apple run since the retirement and no iOS build.
- Identifier
CNA-VGAP-061- Category
- Verification gap
- Subsystem
- Testing & evidence
- Status
- Open
- Verified against
- CNA
c6dec91f(c6dec91fbf3ef5440f60e5329e4a4758b2d80c22) - Evidence basis
- Recorded by CNA: CNA's own recorded run, not repeated here
- Tests touching this area
- Yes: see Current tests
- Affected contract
- The per-host default renderer (CNA_GRAPHICS_RENDERER left unset) on Windows, macOS and iOS: SDL_GPU, through SDL's Direct3D 12 and Metal drivers
Expected behaviour
A renderer that a build selects by default on a host has recorded evidence on that host: at least one native run of its suite, or of a named qualification set, on the driver SDL uses there.
Actual behaviour at TARGET
RendererIdentityDefault.cmake sets the default to SDL_GPU when CMAKE_SYSTEM_NAME is Windows, Darwin or iOS. CNA's own handoff (handoff.md, section 5.2) records that SDL_GPU “is the default renderer on Windows, macOS and iOS but is not qualified there”: the evidence that exists is a full-tree pass with SDL's Metal driver on a Mac mini M4 during the AM4 campaign, before the retirement, and Wine runs of SDL's Direct3D 12 driver through vkd3d-proton; not done are a native Windows run, a re-run on Apple hardware and any iOS build. The workflows agree: the SDL_GPU leg of d3d-windows-ci.yml runs only on manual dispatch and is recorded as not run yet; apple-ci.yml gates a focused macOS smoke set (run-sdlgpu-smoke.sh: device, swapchain, 2D drawing and a handful of conformance programs) that its own header calls “not the full SDL_GPU Apple qualification” and that handoff.md records as not run yet, and its iOS SDL_GPU legs are non-gating because SDL_GPU “has never been built for iOS by a recorded run”. The same handoff entry lists the gaps against the retired native renderers on those hosts: ShaderEffect is compiled out on Windows, Apple and the browser, and occlusion queries are unavailable (CNA-PLAT-005).
Source locations
cmake/RendererIdentityDefault.cmake— per-host default: SDL_GPU for Windows, Darwin and iOShandoff.md— section 5.2: SDL_GPU is the default on Windows, macOS and iOS but is not qualified there; Platforms table.github/workflows/apple-ci.yml— header: SDL_GPU not qualified on Apple; macos-sdlgpu smoke set; non-gating iOS SDL_GPU legs.github/workflows/d3d-windows-ci.yml— SDL_GPU leg: workflow_dispatch onlyscripts/ci/run-sdlgpu-smoke.sh— the focused SDL_GPU smoke set run on macOS and native Windowsscripts/run-wine-vkd3d-headless.sh— SDL's Direct3D 12 driver under Wine and vkd3d-proton
Evidence
Recorded by CNA: handoff.md section 5.2 and the headers of the two workflows state the qualification status; read at c6dec91f together with the per-host default in RendererIdentityDefault.cmake. Nothing was built or run for this entry. Related entries cover parts of the same ground: the manual Windows workflow (CNA-VGAP-026), the iOS evidence (CNA-VGAP-008) and the SDL_GPU suites outside CI (CNA-VGAP-025); this entry is about the default selection on the three hosts.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
The SDL_GPU suites run on Linux (lavapipe in CI for the glTF-conformance, input and platform labels; full trees on CNA's own runner). On the three default hosts there are only the gating macOS smoke set and the manual Windows smoke leg, both recorded as not run yet, and the non-gating iOS legs.
Regression test
A recorded native run of the SDL_GPU suite, or of a named qualification set, on Windows (SDL's Direct3D 12 driver) and on Apple hardware (SDL's Metal driver), and a first iOS build, each written down with its result.
Blast radius
Every game built for Windows, macOS or iOS without an explicit CNA_GRAPHICS_RENDERER: its renderer is the one with the least evidence on that host. Linux, Android and the browser default to other renderers.
Workaround
Run the game's own tests on the target hardware before shipping a Windows or Apple build; on Windows DIRECTX9 can be selected explicitly, though it too is validated under Wine only (CNA-VGAP-026).
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Platforms: default renderers
- Internals
- SDL_GPU internals: tests
- Deep dives
- Native GPU evidence tiers
- Known issues
- Verification gap index