From 78706d3d0105bde77cb2ed34735203e8ba7ba637 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 4 Jan 2017 16:56:12 +0000 Subject: [PATCH] Init copyheap after checking for errors * This doesn't actually fix any problems, but a couple of crash reports exposed the fact that we try to use the result of CreateDescriptorHeap before checking for errors - this leads to a crash and hides the real problem. --- renderdoc/driver/d3d12/d3d12_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_manager.cpp b/renderdoc/driver/d3d12/d3d12_manager.cpp index 5e27a8c65..2f6f44977 100644 --- a/renderdoc/driver/d3d12/d3d12_manager.cpp +++ b/renderdoc/driver/d3d12/d3d12_manager.cpp @@ -957,14 +957,14 @@ bool D3D12ResourceManager::Serialise_InitialState(ResourceId resid, ID3D12Device HRESULT hr = m_Device->GetReal()->CreateDescriptorHeap(&desc, __uuidof(ID3D12DescriptorHeap), (void **)©heap); - copyheap = new WrappedID3D12DescriptorHeap(copyheap, m_Device, desc); - if(FAILED(hr)) { RDCERR("Failed to create CPU descriptor heap for initial state: 0x%08x", hr); return false; } + copyheap = new WrappedID3D12DescriptorHeap(copyheap, m_Device, desc); + D3D12_CPU_DESCRIPTOR_HANDLE handle = copyheap->GetCPUDescriptorHandleForHeapStart(); UINT increment = m_Device->GetDescriptorHandleIncrementSize(desc.Type);