diff --git a/renderdoc/driver/d3d12/d3d12_device.h b/renderdoc/driver/d3d12/d3d12_device.h index 85d21b673..a5e49808f 100644 --- a/renderdoc/driver/d3d12/d3d12_device.h +++ b/renderdoc/driver/d3d12/d3d12_device.h @@ -366,6 +366,7 @@ public: FrameRecord &GetFrameRecord() { return m_FrameRecord; } const DrawcallDescription *GetDrawcall(uint32_t eventID); + ResourceId GetFrameCaptureResourceId() { return m_FrameCaptureRecord->GetResourceID(); } void AddDebugMessage(MessageCategory c, MessageSeverity sv, MessageSource src, std::string d); void AddDebugMessage(const DebugMessage &msg) { m_DebugMessages.push_back(msg); } vector GetDebugMessages(); diff --git a/renderdoc/driver/d3d12/d3d12_manager.cpp b/renderdoc/driver/d3d12/d3d12_manager.cpp index 085df5305..e044f03cc 100644 --- a/renderdoc/driver/d3d12/d3d12_manager.cpp +++ b/renderdoc/driver/d3d12/d3d12_manager.cpp @@ -618,7 +618,10 @@ void D3D12ResourceManager::SerialiseResourceStates(vectorSpecialResource) + if(record->type == Resource_GraphicsCommandList || record->type == Resource_CommandQueue) + return false; + + if(m_Device->GetFrameCaptureResourceId() == id) return false; return true;