From 5bee6d799aeb7179507fd3473390cf8a8162fdf4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 16 May 2026 14:50:02 +0100 Subject: [PATCH] Fix D3D12 replay-only buffers being returned by GetBuffers properly * We do need buffers in the resource list to be able to call GetBufferData --- renderdoc/driver/d3d12/d3d12_replay.cpp | 3 ++- renderdoc/driver/d3d12/d3d12_resources.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 74b189f14..b1dd3ce5f 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -394,7 +394,8 @@ rdcarray D3D12Replay::GetBuffers() rdcarray ret; for(auto it = m_pDevice->GetResourceList().begin(); it != m_pDevice->GetResourceList().end(); it++) - if(it->second->GetDesc().Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) + if(it->second->GetDesc().Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && + !ResourceIDGen::IsReplayOnlyID(it->first)) ret.push_back(GetBuffer(it->first)); return ret; diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index 4b815c9c8..ebdb21bdd 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -1571,7 +1571,7 @@ public: : WrappedDeviceChild12(id, real, device) { m_OrigAddress = origAddress; - if(IsReplayMode(device->GetState()) && id != ResourceId()) + if(IsReplayMode(device->GetState())) device->AddReplayResource(GetResourceID(), this); m_Heap = (WrappedID3D12Heap *)heap;