From d922db6dffcc66f946ea611879f1900471b819b5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Aug 2020 19:14:42 +0100 Subject: [PATCH] Fix broken re-use of resource shadow deferred ctx pointers. Closes #2023 --- renderdoc/driver/d3d11/d3d11_context.cpp | 2 ++ renderdoc/driver/d3d11/d3d11_manager.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_context.cpp b/renderdoc/driver/d3d11/d3d11_context.cpp index c13365338..cd8386f12 100644 --- a/renderdoc/driver/d3d11/d3d11_context.cpp +++ b/renderdoc/driver/d3d11/d3d11_context.cpp @@ -630,6 +630,8 @@ void WrappedID3D11DeviceContext::CleanupCapture() } } + m_MapResourceRecordAllocs.clear(); + if(RenderDoc::Inst().GetCaptureOptions().captureAllCmdLists) return; } diff --git a/renderdoc/driver/d3d11/d3d11_manager.h b/renderdoc/driver/d3d11/d3d11_manager.h index b69eed282..bc4b2dd6f 100644 --- a/renderdoc/driver/d3d11/d3d11_manager.h +++ b/renderdoc/driver/d3d11/d3d11_manager.h @@ -136,8 +136,13 @@ struct D3D11ResourceRecord : public ResourceRecord SCOPED_WRITELOCK(DeferredShadowLock); for(size_t i = 0; i < DeferredShadow.size(); i++) + { if(!DeferredShadow[i].used) + { + DeferredShadow[i].used = true; return i + 1; + } + } ShadowPointerData data = {}; data.used = true;