From c08747d79231c09762b8744c1caca48077e5902d Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 5 Jul 2021 12:10:07 +0100 Subject: [PATCH] Fix D3D12 reference counting with missing internal refs --- renderdoc/driver/d3d12/d3d12_debug.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_debug.cpp b/renderdoc/driver/d3d12/d3d12_debug.cpp index 52ccaf159..6901e1c25 100644 --- a/renderdoc/driver/d3d12/d3d12_debug.cpp +++ b/renderdoc/driver/d3d12/d3d12_debug.cpp @@ -393,6 +393,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper) pattern.append(GetDiscardPattern(DiscardType::DiscardCall, fmt)); m_DiscardConstants = MakeCBuffer(pattern.size()); + m_pDevice->InternalRef(); FillBuffer(m_DiscardConstants, 0, pattern.data(), pattern.size()); ID3DBlob *root = shaderCache->MakeRootSig({ @@ -404,6 +405,7 @@ D3D12DebugManager::D3D12DebugManager(WrappedID3D12Device *wrapper) hr = m_pDevice->CreateRootSignature(0, root->GetBufferPointer(), root->GetBufferSize(), __uuidof(ID3D12RootSignature), (void **)&m_DiscardRootSig); + m_pDevice->InternalRef(); SAFE_RELEASE(root); }