From 3a0e12043da84cdca561e01ba2a098d599fb6774 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 19 May 2021 23:29:27 +0200 Subject: [PATCH] Differentiate hw samples from code addresses. --- server/TracyView.cpp | 6 ++++++ server/TracyWorker.cpp | 11 +++++++++++ server/TracyWorker.hpp | 3 ++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index a5a84697..754b9265 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -13923,6 +13923,12 @@ void View::DrawInfo() } #endif TextFocused( "Hardware samples:", RealToString( m_worker.GetHwSampleCount() ) ); + if( ImGui::IsItemHovered() ) + { + ImGui::BeginTooltip(); + TextFocused( "Unique addresses:", RealToString( m_worker.GetHwSampleCountAddress() ) ); + ImGui::EndTooltip(); + } TextFocused( "Frame images:", RealToString( ficnt ) ); if( ficnt != 0 && ImGui::IsItemHovered() ) { diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 287cffcc..9c632278 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -7687,4 +7687,15 @@ const HwSampleData* Worker::GetHwSampleData( uint64_t addr ) const return &it->second; } +uint64_t Worker::GetHwSampleCount() const +{ + uint64_t cnt = 0; + for( auto& v : m_data.hwSamples ) + { + cnt += v.second.cycles; + cnt += v.second.retired; + } + return cnt; +} + } diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 91b0b2e5..c03f19a6 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -449,7 +449,8 @@ public: uint64_t GetGhostZonesCount() const { return m_data.ghostCnt; } uint32_t GetFrameImageCount() const { return (uint32_t)m_data.frameImage.size(); } uint64_t GetStringsCount() const { return m_data.strings.size() + m_data.stringData.size(); } - uint64_t GetHwSampleCount() const { return m_data.hwSamples.size(); } + uint64_t GetHwSampleCountAddress() const { return m_data.hwSamples.size(); } + uint64_t GetHwSampleCount() const; #ifndef TRACY_NO_STATISTICS uint64_t GetChildSamplesCountSyms() const { return m_data.childSamples.size(); } uint64_t GetChildSamplesCountFull() const;