Fix event counting edge-case for empty command buffers

This commit is contained in:
baldurk
2016-02-07 18:41:15 +01:00
parent 118bc91ec0
commit ca3c283528
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -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)
@@ -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;