From 7d69103444258def16504ff227a7d390afeb0ca4 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 10 Mar 2023 01:23:22 +0100 Subject: [PATCH] Add plot type "power" and Watt format. Note that this technically breaks backwards compatibility of trace files for 0.9.2 builds. But, whatever, as it's not yet released. --- public/tracy/TracyC.h | 1 + server/TracyEvent.hpp | 6 ++++-- server/TracyTimelineItemPlot.cpp | 3 +++ server/TracyUtility.cpp | 5 +++++ server/TracyWorker.cpp | 4 ++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/public/tracy/TracyC.h b/public/tracy/TracyC.h index 736b51ed..996889c4 100644 --- a/public/tracy/TracyC.h +++ b/public/tracy/TracyC.h @@ -16,6 +16,7 @@ enum TracyPlotFormatEnum TracyPlotFormatNumber, TracyPlotFormatMemory, TracyPlotFormatPercentage, + TracyPlotFormatWatt }; TRACY_API void ___tracy_set_thread_name( const char* name ); diff --git a/server/TracyEvent.hpp b/server/TracyEvent.hpp index 9dce17aa..40e26300 100644 --- a/server/TracyEvent.hpp +++ b/server/TracyEvent.hpp @@ -726,7 +726,8 @@ enum class PlotType : uint8_t { User, Memory, - SysTime + SysTime, + Power }; // Keep this in sync with enum in TracyC.h @@ -734,7 +735,8 @@ enum class PlotValueFormatting : uint8_t { Number, Memory, - Percentage + Percentage, + Watt }; struct PlotData diff --git a/server/TracyTimelineItemPlot.cpp b/server/TracyTimelineItemPlot.cpp index 1732592f..314e868b 100644 --- a/server/TracyTimelineItemPlot.cpp +++ b/server/TracyTimelineItemPlot.cpp @@ -38,6 +38,9 @@ const char* TimelineItemPlot::HeaderLabel() const } case PlotType::SysTime: return ICON_FA_GAUGE_HIGH " CPU usage"; + case PlotType::Power: + sprintf( tmp, ICON_FA_BOLT " %s", m_worker.GetString( m_plot->name ) ); + return tmp; default: assert( false ); return nullptr; diff --git a/server/TracyUtility.cpp b/server/TracyUtility.cpp index 32f9df40..60d3f4e8 100644 --- a/server/TracyUtility.cpp +++ b/server/TracyUtility.cpp @@ -157,6 +157,8 @@ uint32_t GetPlotColor( const PlotData& plot, const Worker& worker ) return 0xFF2266CC; case PlotType::SysTime: return 0xFFBAB220; + case PlotType::Power: + return 0xFF33CC33; default: assert( false ); return 0; @@ -177,6 +179,9 @@ const char* FormatPlotValue( double val, PlotValueFormatting format ) case PlotValueFormatting::Percentage: sprintf( buf, "%.2f%%", val ); break; + case PlotValueFormatting::Watt: + sprintf( buf, "%s W", RealToString( val ) ); + break; default: assert( false ); break; diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index a786e03f..8cd4cd69 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -6698,8 +6698,8 @@ void Worker::ProcessSysPower( const QueueSysPower& ev ) CheckString( ev.name ); PlotData* plot = m_slab.AllocInit(); plot->name = ev.name; - plot->type = PlotType::User; - plot->format = PlotValueFormatting::Number; + plot->type = PlotType::Power; + plot->format = PlotValueFormatting::Watt; plot->showSteps = false; plot->fill = true; plot->color = 0;