From dd0a68c9c9a500fbb0cfcae4a600947923b58962 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Oct 2016 21:54:41 +0200 Subject: [PATCH] Sync on all queue fences to ensure work is done before shutdown --- renderdoc/driver/d3d12/d3d12_device.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index f94887d81..3f801e971 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -326,7 +326,15 @@ WrappedID3D12Device::~WrappedID3D12Device() RenderDoc::Inst().RemoveDeviceFrameCapturer((ID3D12Device *)this); for(size_t i = 0; i < m_QueueFences.size(); i++) + { + m_GPUSyncCounter++; + + m_Queues[i]->Signal(m_QueueFences[i], m_GPUSyncCounter); + m_QueueFences[i]->SetEventOnCompletion(m_GPUSyncCounter, m_GPUSyncHandle); + WaitForSingleObject(m_GPUSyncHandle, 10000); + SAFE_RELEASE(m_QueueFences[i]); + } DestroyInternalResources();