diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index 23256a9a8..245295828 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -1635,6 +1635,9 @@ void WrappedID3D11Device::ReleaseSwapchainResources(IDXGISwapper *swapper, UINT IUnknown *const *ppPresentQueue, IUnknown **unwrappedQueues) { + if(m_LastSwap == swapper) + m_LastSwap = NULL; + RDCASSERT(ppPresentQueue == NULL); if(ppPresentQueue) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 9b0bdf03d..87768eaa8 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1701,6 +1701,9 @@ void WrappedID3D12Device::ReleaseSwapchainResources(IDXGISwapper *swapper, UINT IUnknown *const *ppPresentQueue, IUnknown **unwrappedQueues) { + if(m_LastSwap == swapper) + m_LastSwap = NULL; + if(ppPresentQueue) { for(UINT i = 0; i < QueueCount; i++)