Files
Joseph MattielloandClaude Fable 5.1 4e39bcdd20 fix(windows): pick d3d12 only for a hardware Direct3D 12 adapter, llvmpipe otherwise
Left to itself, Mesa's d3d12 driver takes the Microsoft Basic Render
Driver (WARP) when that is the only D3D12 adapter: on the hosted ARM64
runner the retry came up as "D3D12 (Microsoft Basic Render Driver)" and
the app exited with status 87 before its first screenshot, where the
same runner renders fine on llvmpipe.  WARP is software D3D12 under a GL
translation, so it is the slower software path anyway.

The launcher now enumerates DXGI adapters (dxgi.dll and d3d12.dll loaded
by hand, no link dependency), skips DXGI_ADAPTER_FLAG_SOFTWARE ones and
asks D3D12CreateDevice at feature level 11_0.  First hit: GALLIUM_DRIVER=
d3d12 plus MESA_D3D12_DEFAULT_ADAPTER_NAME pinned to that adapter.  No
hit: GALLIUM_DRIVER=llvmpipe and LIBGL_ALWAYS_SOFTWARE=true as #1138 had.
A GALLIUM_DRIVER already in the environment wins.  Both outcomes are
logged on stderr and the GL test workflow asserts one of the two lines.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-11-01 18:09:05 -05:00
..
2026-04-30 23:36:48 -04:00