diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 14ccc81a3..17d3c56b2 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -3587,7 +3587,9 @@ ReplayStatus D3D12_CreateReplayDevice(RDCFile *rdc, IReplayDriver **driver) WrappedIDXGISwapChain4::RegisterD3DDeviceCallback(GetD3D12DeviceIfAlloc); - bool d3d12on7 = false; + // this needs to be static, because we don't unload d3d12.dll so the plain LoadLibraryA will + // succeed on subsequent capture loads. + static bool d3d12on7 = false; HMODULE lib = NULL; lib = LoadLibraryA("d3d12.dll");