Fix event debug messages not being associated with the correct EIDs

This commit is contained in:
baldurk committed 2022-08-16 18:39:26 +01:00
1 parent 59a7be898a
commit dd47f5a341
2 files changed
+11 -19

No files matched your search

+10 -18
View File
@@ -3952,16 +3952,12 @@ void WrappedVulkan::Serialise_DebugMessages(SerialiserType &ser)
ProcessDebugMessage(msg);
}
SERIALISE_ELEMENT(DebugMessages);
SERIALISE_ELEMENT(DebugMessages).Hidden();
// if we're using debug messages from replay, discard any from the capture
if(ser.IsReading() && IsLoading(m_State) && m_ReplayOptions.apiValidation)
DebugMessages.clear();
// hide empty sets of messages.
if(ser.IsReading() && DebugMessages.empty())
ser.Hidden();
if(ser.IsReading() && IsLoading(m_State))
{
for(const DebugMessage &msg : DebugMessages)
@@ -4107,16 +4103,7 @@ void WrappedVulkan::AddDebugMessage(DebugMessage msg)
{
if(IsLoading(m_State))
{
if(m_LastCmdBufferID != ResourceId())
{
msg.eventId = m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID;
m_BakedCmdBufferInfo[m_LastCmdBufferID].debugMessages.push_back(msg);
}
else
{
msg.eventId = m_RootEventID;
m_RootEventMessages.push_back(msg);
}
m_EventMessages.push_back(msg);
}
else
{
@@ -4916,9 +4903,15 @@ void WrappedVulkan::AddEvent()
apievent.chunkIndex = uint32_t(m_StructuredFile->chunks.size() - 1);
for(DebugMessage &msg : m_EventMessages)
msg.eventId = apievent.eventId;
if(m_LastCmdBufferID != ResourceId())
{
m_BakedCmdBufferInfo[m_LastCmdBufferID].curEvents.push_back(apievent);
m_BakedCmdBufferInfo[m_LastCmdBufferID].debugMessages.append(m_EventMessages);
m_EventMessages.clear();
}
else
{
@@ -4926,9 +4919,8 @@ void WrappedVulkan::AddEvent()
m_Events.resize(apievent.eventId + 1);
m_Events[apievent.eventId] = apievent;
m_DebugMessages.append(m_RootEventMessages);
m_RootEventMessages.clear();
m_DebugMessages.append(m_EventMessages);
m_EventMessages.clear();
}
}
+1 -1
View File
@@ -284,7 +284,7 @@ private:
// the messages retrieved for the current event (filled in Serialise_vk...() and read in
// AddEvent())
rdcarray<DebugMessage> m_RootEventMessages;
rdcarray<DebugMessage> m_EventMessages;
// list of all debug messages by EID in the frame
rdcarray<DebugMessage> m_DebugMessages;