From 77b5fb071fddc1f91ee1e8ac3d80b18a7234fccf Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 17 Oct 2016 15:52:12 +0200 Subject: [PATCH] Frame-reference heaps in CopyDescriptorsSimple --- renderdoc/driver/d3d12/d3d12_device_wrap.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp index 68b623688..6d225ae04 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp @@ -1480,6 +1480,17 @@ void WrappedID3D12Device::CopyDescriptorsSimple(UINT NumDescriptors, // assume descriptors are volatile if(m_State == WRITING_CAPFRAME) { + // reference the heaps + { + D3D12Descriptor *desc = GetWrapped(SrcDescriptorRangeStart); + GetResourceManager()->MarkResourceFrameReferenced(GetResID(desc->samp.heap), eFrameRef_Read); + } + + { + D3D12Descriptor *desc = GetWrapped(DestDescriptorRangeStart); + GetResourceManager()->MarkResourceFrameReferenced(GetResID(desc->samp.heap), eFrameRef_Read); + } + std::vector copies; copies.reserve(NumDescriptors); for(UINT i = 0; i < NumDescriptors; i++)