From 3c0e0803f91c06a16009419b794025765b265a8a Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 20 May 2021 16:21:16 +0100 Subject: [PATCH] Display the range for markers in the EID/draw columns --- qrenderdoc/Windows/EventBrowser.cpp | 42 +++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/EventBrowser.cpp b/qrenderdoc/Windows/EventBrowser.cpp index d777ad815..d358a4a92 100644 --- a/qrenderdoc/Windows/EventBrowser.cpp +++ b/qrenderdoc/Windows/EventBrowser.cpp @@ -592,8 +592,46 @@ struct EventItemModel : public QAbstractItemModel switch(index.column()) { case COL_NAME: return GetCachedEIDName(eid); - case COL_EID: return eid; - case COL_DRAW: return draw->eventId == eid ? QVariant(draw->drawcallId) : QVariant(); + case COL_EID: + case COL_DRAW: + if(draw->eventId == eid && !draw->children.empty()) + { + uint32_t effectiveEID = eid; + auto it = m_Nodes.find(eid); + if(it != m_Nodes.end()) + effectiveEID = it->effectiveEID; + + if(draw->IsFakeMarker()) + eid = draw->children[0].events[0].eventId; + + if(index.column() == COL_EID) + { + return eid == effectiveEID + ? QVariant(eid) + : QVariant(QFormatStr("%1-%2").arg(eid).arg(effectiveEID)); + } + else + { + uint32_t drawId = draw->drawcallId; + uint32_t endDrawId = m_Draws[effectiveEID]->drawcallId; + + if(draw->IsFakeMarker()) + drawId = draw->children[0].drawcallId; + + return drawId == endDrawId + ? QVariant() + : QVariant(QFormatStr("%1-%2").arg(drawId).arg(endDrawId)); + } + } + + if(index.column() == COL_EID) + return eid; + else + return draw->eventId == eid && + !(draw->flags & + (DrawFlags::SetMarker | DrawFlags::PushMarker | DrawFlags::PopMarker)) + ? QVariant(draw->drawcallId) + : QVariant(); default: break; } }