From 99bbd9e5f08e498ed4ea5e12806dbc27eb842b7f Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 8 Nov 2021 11:25:43 +0000 Subject: [PATCH] Don't provide timers for copy-queue command buffers --- renderdoc/driver/d3d12/d3d12_counters.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_counters.cpp b/renderdoc/driver/d3d12/d3d12_counters.cpp index 0ba782327..8b5158b63 100644 --- a/renderdoc/driver/d3d12/d3d12_counters.cpp +++ b/renderdoc/driver/d3d12/d3d12_counters.cpp @@ -398,6 +398,9 @@ struct D3D12GPUTimerCallback : public D3D12ActionCallback ~D3D12GPUTimerCallback() { m_pDevice->GetQueue()->GetCommandData()->m_ActionCallback = NULL; } void PreDraw(uint32_t eid, ID3D12GraphicsCommandListX *cmd) override { + if(cmd->GetType() == D3D12_COMMAND_LIST_TYPE_COPY) + return; + if(cmd->GetType() == D3D12_COMMAND_LIST_TYPE_DIRECT) { cmd->BeginQuery(m_OcclusionQueryHeap, D3D12_QUERY_TYPE_OCCLUSION, m_NumStatsQueries); @@ -408,6 +411,9 @@ struct D3D12GPUTimerCallback : public D3D12ActionCallback bool PostDraw(uint32_t eid, ID3D12GraphicsCommandListX *cmd) override { + if(cmd->GetType() == D3D12_COMMAND_LIST_TYPE_COPY) + return false; + cmd->EndQuery(m_TimerQueryHeap, D3D12_QUERY_TYPE_TIMESTAMP, m_NumTimestampQueries * 2 + 1); m_NumTimestampQueries++;