From 57ceb652e30a1889a01514e239ecec1122512ec0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 24 Feb 2025 15:39:11 +0000 Subject: [PATCH] Don't show internal buffers in external replay on D3D12 --- renderdoc/driver/d3d12/d3d12_commands.cpp | 1 + renderdoc/driver/d3d12/d3d12_debug.cpp | 1 + renderdoc/driver/d3d12/d3d12_device.cpp | 1 + renderdoc/driver/d3d12/d3d12_initstate.cpp | 1 + 4 files changed, 4 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_commands.cpp b/renderdoc/driver/d3d12/d3d12_commands.cpp index 9f3a84c40..bfeab713b 100644 --- a/renderdoc/driver/d3d12/d3d12_commands.cpp +++ b/renderdoc/driver/d3d12/d3d12_commands.cpp @@ -1818,6 +1818,7 @@ void D3D12CommandData::GetIndirectBuffer(size_t size, ID3D12Resource **buf, uint HRESULT hr = m_pDevice->CreateCommittedResource(&heapProps, D3D12_HEAP_FLAG_NONE, &indirectDesc, D3D12_RESOURCE_STATE_COPY_DEST, NULL, __uuidof(ID3D12Resource), (void **)&argbuf); + m_pDevice->RemoveReplayResource(GetResID(argbuf)); SetObjName(argbuf, StringFormat::Fmt("Indirect Readback Buf (%llu bytes)", (uint64_t)size)); diff --git a/renderdoc/driver/d3d12/d3d12_debug.cpp b/renderdoc/driver/d3d12/d3d12_debug.cpp index 1e3b1fa05..00ab31646 100644 --- a/renderdoc/driver/d3d12/d3d12_debug.cpp +++ b/renderdoc/driver/d3d12/d3d12_debug.cpp @@ -2102,6 +2102,7 @@ void D3D12DebugManager::PrepareExecuteIndirectPatching(GPUAddressRangeTracker &o hr = m_pDevice->CreateCommittedResource( &heapProps, D3D12_HEAP_FLAG_NONE, &desc, D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT, NULL, __uuidof(ID3D12Resource), (void **)&m_EIPatchScratchBuffer); + m_pDevice->RemoveReplayResource(GetResID(m_EIPatchScratchBuffer)); m_EIPatchScratchBuffer->SetName(L"m_EIPatchScratchBuffer"); diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 5d713e82b..caee1622f 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1613,6 +1613,7 @@ ID3D12Resource *WrappedID3D12Device::GetUploadBuffer(uint64_t chunkOffset, uint6 HRESULT hr = CreateCommittedResource(&heapProps, D3D12_HEAP_FLAG_NONE, &soBufDesc, D3D12_RESOURCE_STATE_GENERIC_READ, NULL, __uuidof(ID3D12Resource), (void **)&buf); + RemoveReplayResource(GetResID(buf)); m_UploadBuffers[chunkOffset] = buf; diff --git a/renderdoc/driver/d3d12/d3d12_initstate.cpp b/renderdoc/driver/d3d12/d3d12_initstate.cpp index edcc71492..55da51183 100644 --- a/renderdoc/driver/d3d12/d3d12_initstate.cpp +++ b/renderdoc/driver/d3d12/d3d12_initstate.cpp @@ -997,6 +997,7 @@ bool D3D12ResourceManager::Serialise_InitialState(SerialiserType &ser, ResourceI HRESULT hr = m_Device->CreateCommittedResource(&heapProps, D3D12_HEAP_FLAG_NONE, &desc, D3D12_RESOURCE_STATE_GENERIC_READ, NULL, __uuidof(ID3D12Resource), (void **)©Src); + m_Device->RemoveReplayResource(GetResID(copySrc)); if(SUCCEEDED(hr)) {