c5cb1e78
by Kang Kang at 2026-07-17T19:33:02+02:00
dxgi: Return the first adapter from EnumWarpAdapter().
On Windows the WARP adapter is always present, so applications call
IDXGIFactory4::EnumWarpAdapter() without checking the result and
immediately dereference the returned adapter pointer. The stub
returned E_NOTIMPL without touching *adapter, crashing such
applications on startup; the 3DMark DX12 benchmarks (Time Spy,
Speed Way, Steel Nomad, Solar Bay) are affected.
Return the first adapter instead, matching what D3D11CreateDevice()
does for D3D_DRIVER_TYPE_WARP. Enumerating a proper software adapter
with DXGI_ADAPTER_FLAG_SOFTWARE set would require wined3d support
and is left for the future.