Expose shader printf messages in the UI

This commit is contained in:
baldurk
2021-05-11 16:15:31 +01:00
parent c6c133bdd0
commit b4ec703d97
18 changed files with 1425 additions and 25 deletions
+30
View File
@@ -294,6 +294,7 @@ void EventBrowser::OnCaptureClosed()
void EventBrowser::OnEventChanged(uint32_t eventId)
{
SelectEvent(eventId);
RefreshShaderMessages();
repopulateBookmarks();
highlightBookmarks();
}
@@ -540,6 +541,8 @@ void EventBrowser::on_events_currentItemChanged(RDTreeWidgetItem *current, RDTre
m_Ctx.SetEventID({this}, tag.EID, tag.lastEID);
RefreshShaderMessages();
const DrawcallDescription *draw = m_Ctx.GetDrawcall(tag.lastEID);
ui->stepPrev->setEnabled(draw && draw->previous);
@@ -1127,6 +1130,33 @@ void EventBrowser::RefreshIcon(RDTreeWidgetItem *item, EventItemTag tag)
item->setIcon(COL_NAME, QIcon());
}
void EventBrowser::RefreshShaderMessages()
{
uint32_t eventId = m_Ctx.CurEvent();
RDTreeWidgetItem *item = ui->events->currentItem();
if(item->tag().value<EventItemTag>().EID != eventId)
return;
const DrawcallDescription *draw = m_Ctx.GetDrawcall(eventId);
const rdcarray<ShaderMessage> &msgs = m_Ctx.CurPipelineState().GetShaderMessages();
if(draw)
{
QString name(draw->name);
if(!msgs.empty())
name += lit(" __rd_msgs::%1:%2").arg(draw->eventId).arg(msgs.count());
QVariant v = name;
RichResourceTextInitialise(v, &m_Ctx);
item->setText(0, v);
}
}
bool EventBrowser::FindEventNode(RDTreeWidgetItem *&found, RDTreeWidgetItem *parent, uint32_t eventId)
{
// do a reverse search to find the last match (in case of 'set' markers that