From 6b40a82a80c2f7119b4f42aa81ce863ae93ec937 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 17 Dec 2018 13:05:33 +0000 Subject: [PATCH] marker/pass boundary calls should not have drawcall IDs. --- renderdoc/driver/d3d12/d3d12_commands.cpp | 13 +++++++++---- renderdoc/driver/vulkan/vk_core.cpp | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_commands.cpp b/renderdoc/driver/d3d12/d3d12_commands.cpp index df89a415e..e7a88e648 100644 --- a/renderdoc/driver/d3d12/d3d12_commands.cpp +++ b/renderdoc/driver/d3d12/d3d12_commands.cpp @@ -1529,10 +1529,15 @@ void D3D12CommandData::AddDrawcall(const DrawcallDescription &d, bool hasEvents, m_BakedCmdListInfo[m_LastCmdListID].state.GetDSVID()); } - if(m_LastCmdListID != ResourceId()) - m_BakedCmdListInfo[m_LastCmdListID].drawCount++; - else - m_RootDrawcallID++; + // markers don't increment drawcall ID + DrawFlags MarkerMask = DrawFlags::SetMarker | DrawFlags::PushMarker | DrawFlags::PassBoundary; + if(!(draw.flags & MarkerMask)) + { + if(m_LastCmdListID != ResourceId()) + m_BakedCmdListInfo[m_LastCmdListID].drawCount++; + else + m_RootDrawcallID++; + } if(hasEvents) { diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 0d43b89f5..5d1162866 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -3338,10 +3338,15 @@ void WrappedVulkan::AddDrawcall(const DrawcallDescription &d, bool hasEvents) } } - if(m_LastCmdBufferID != ResourceId()) - m_BakedCmdBufferInfo[m_LastCmdBufferID].drawCount++; - else - m_RootDrawcallID++; + // markers don't increment drawcall ID + DrawFlags MarkerMask = DrawFlags::SetMarker | DrawFlags::PushMarker | DrawFlags::PassBoundary; + if(!(draw.flags & MarkerMask)) + { + if(m_LastCmdBufferID != ResourceId()) + m_BakedCmdBufferInfo[m_LastCmdBufferID].drawCount++; + else + m_RootDrawcallID++; + } if(hasEvents) {