diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 6ef5a022b..63eda4cca 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -755,9 +755,15 @@ void WrappedVulkan::ContextReplayLog(LogState readType, uint32_t startEventID, u break; if(m_LastCmdBufferID != ResourceId()) - m_CmdBufferInfo[m_LastCmdBufferID].curEventID++; + { + // these events are completely omitted, so don't increment the curEventID + if(context != BEGIN_CMD_BUFFER && context != END_CMD_BUFFER) + m_CmdBufferInfo[m_LastCmdBufferID].curEventID++; + } else + { m_RootEventID++; + } } if(m_State == READING) diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index b92755872..ee145648d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -363,7 +363,7 @@ bool WrappedVulkan::Serialise_vkEndCommandBuffer(VkCmdBuffer cmdBuffer) { m_CmdBufferInfo[bakeId].draw = m_CmdBufferInfo[m_LastCmdBufferID].draw; m_CmdBufferInfo[bakeId].curEventID = 0; - m_CmdBufferInfo[bakeId].eventCount = m_CmdBufferInfo[m_LastCmdBufferID].curEventID; + m_CmdBufferInfo[bakeId].eventCount = m_CmdBufferInfo[m_LastCmdBufferID].curEventID-1; m_CmdBufferInfo[bakeId].drawCount = m_CmdBufferInfo[m_LastCmdBufferID].drawCount; m_CmdBufferInfo[m_LastCmdBufferID].draw = NULL;