From 95c2863ab283098f49aef81d57df05757eec0e00 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Oct 2016 19:02:06 +0200 Subject: [PATCH] When GPU syncing, check that it's successful & wait long enough for TDR * This means if we're trying to track a TDR by SINGLE_FLUSH_VALIDATE we will definitely catch it failing here. --- renderdoc/driver/d3d12/d3d12_device.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 4601c8e51..24c903bff 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1815,9 +1815,13 @@ void WrappedID3D12Device::GPUSync() { m_GPUSyncCounter++; - m_Queue->Signal(m_GPUSyncFence, m_GPUSyncCounter); + HRESULT hr = m_Queue->Signal(m_GPUSyncFence, m_GPUSyncCounter); m_GPUSyncFence->SetEventOnCompletion(m_GPUSyncCounter, m_GPUSyncHandle); - WaitForSingleObject(m_GPUSyncHandle, 2000); + WaitForSingleObject(m_GPUSyncHandle, 10000); + + RDCASSERTEQUAL(hr, S_OK); + hr = m_pDevice->GetDeviceRemovedReason(); + RDCASSERTEQUAL(hr, S_OK); } ID3D12GraphicsCommandList *WrappedID3D12Device::GetNewList()