From a4c12e7fa2fe047d7fb64204284773fa751b3314 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 11 Oct 2018 14:57:54 +0100 Subject: [PATCH] Add special case when the count/maxcount for indirect draw is 0. --- .../driver/vulkan/wrappers/vk_draw_funcs.cpp | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index 91ee6d680..9d9b02bf4 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -571,7 +571,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirect(SerialiserType &ser, VkCommandBu SDChunk *baseChunk = m_StructuredFile->chunks.back(); // for 'single' draws, don't do complex multi-draw just inline it - if(count <= 1) + if(count == 1) { DrawcallDescription draw; @@ -612,6 +612,10 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirect(SerialiserType &ser, VkCommandBu DrawcallDescription draw; draw.name = name; draw.flags = DrawFlags::MultiDraw | DrawFlags::PushMarker; + + if(count == 0) + draw.name = name + "(0)"; + AddEvent(); AddDrawcall(draw, true); @@ -930,7 +934,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser, SDChunk *baseChunk = m_StructuredFile->chunks.back(); // for 'single' draws, don't do complex multi-draw just inline it - if(count <= 1) + if(count == 1) { DrawcallDescription draw; @@ -972,6 +976,10 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser, DrawcallDescription draw; draw.name = name; draw.flags = DrawFlags::MultiDraw | DrawFlags::PushMarker; + + if(count == 0) + draw.name = name + "(0)"; + AddEvent(); AddDrawcall(draw, true); @@ -2626,6 +2634,10 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirectCountKHR( DrawcallDescription draw; draw.name = name; draw.flags = DrawFlags::MultiDraw | DrawFlags::PushMarker; + + if(maxDrawCount == 0) + draw.name = name + "(0)"; + AddEvent(); AddDrawcall(draw, true); @@ -2941,6 +2953,10 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirectCountKHR( DrawcallDescription draw; draw.name = name; draw.flags = DrawFlags::MultiDraw | DrawFlags::PushMarker; + + if(maxDrawCount == 0) + draw.name = name + "(0)"; + AddEvent(); AddDrawcall(draw, true);