From 83d65660204bcaf9e2bb5e05b5df11c8a712bf3f Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 27 Apr 2020 16:10:47 +0200 Subject: [PATCH] Optional visualization of uarch latency. --- server/TracySourceView.cpp | 25 +++++++++++++++++++++++++ server/TracySourceView.hpp | 1 + 2 files changed, 26 insertions(+) diff --git a/server/TracySourceView.cpp b/server/TracySourceView.cpp index 5d67e3d0..bf1b4e46 100644 --- a/server/TracySourceView.cpp +++ b/server/TracySourceView.cpp @@ -71,6 +71,7 @@ SourceView::SourceView( ImFont* font ) , m_calcInlineStats( true ) , m_showJumps( true ) , m_cpuArch( CpuArchUnknown ) + , m_showLatency( false ) { SelectMicroArchitecture( "ZEN2" ); @@ -1183,6 +1184,11 @@ uint64_t SourceView::RenderSymbolAsmView( uint32_t iptotal, unordered_flat_mapminlat >= 0 ) + { + const auto pos = ImVec2( (int)ImGui::GetCursorScreenPos().x, (int)ImGui::GetCursorScreenPos().y ); + const auto ty = ImGui::GetFontSize(); + + if( asmVar->minlat == 0 ) + { + draw->AddLine( pos + ImVec2( 0, -1 ), pos + ImVec2( 0, ty ), 0x660000FF ); + } + else + { + draw->AddRectFilled( pos, pos + ImVec2( ty * asmVar->minlat + 1, ty + 1 ), 0x660000FF ); + } + if( asmVar->minlat != asmVar->maxlat ) + { + draw->AddRectFilled( pos + ImVec2( ty * asmVar->minlat + 1, 0 ), pos + ImVec2( ty * asmVar->maxlat + 1, ty + 1 ), 0x5500FFFF ); + } + } + const auto msz = line.mnemonic.size(); memcpy( buf, line.mnemonic.c_str(), msz ); memset( buf+msz, ' ', m_maxMnemonicLen-msz ); diff --git a/server/TracySourceView.hpp b/server/TracySourceView.hpp index cb478633..27bfb909 100644 --- a/server/TracySourceView.hpp +++ b/server/TracySourceView.hpp @@ -182,6 +182,7 @@ private: CpuArchitecture m_cpuArch; int m_selMicroArch; int m_idxMicroArch; + bool m_showLatency; }; }