From 3650f36cbfd9a5974e4843a17e79a1a42d3a8fca Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 24 Aug 2017 14:05:11 +0100 Subject: [PATCH] Use time unit configured for event browser (currently) for time values --- .../Windows/PerformanceCounterViewer.cpp | 65 ++++++++++++------- qrenderdoc/Windows/PerformanceCounterViewer.h | 2 + 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.cpp b/qrenderdoc/Windows/PerformanceCounterViewer.cpp index 5309d9289..c13c65e74 100644 --- a/qrenderdoc/Windows/PerformanceCounterViewer.cpp +++ b/qrenderdoc/Windows/PerformanceCounterViewer.cpp @@ -26,15 +26,51 @@ #include "Windows/Dialogs/PerformanceCounterSelection.h" #include "ui_PerformanceCounterViewer.h" -static QString FormatCounterResult(const CounterResult &result, const CounterDescription &description) +PerformanceCounterViewer::PerformanceCounterViewer(ICaptureContext &ctx, QWidget *parent) + : QFrame(parent), ui(new Ui::PerformanceCounterViewer), m_Ctx(ctx) +{ + ui->setupUi(this); + + m_Ctx.AddLogViewer(this); + + connect(ui->captureCounters, &QToolButton::pressed, this, + &PerformanceCounterViewer::CaptureCounters); + + ui->captureCounters->setEnabled(m_Ctx.LogLoaded()); +} + +PerformanceCounterViewer::~PerformanceCounterViewer() +{ + m_Ctx.BuiltinWindowClosed(this); + + m_Ctx.RemoveLogViewer(this); + delete ui; +} + +QString PerformanceCounterViewer::FormatCounterResult(const CounterResult &result, + const CounterDescription &description) { QString returnValue; + double mul = 1.0; + + TimeUnit timeunit = m_Ctx.Config().EventBrowser_TimeUnit; + + if(description.unit == CounterUnit::Seconds) + { + if(timeunit == TimeUnit::Milliseconds) + mul *= 1000.0; + else if(timeunit == TimeUnit::Microseconds) + mul *= 1000000.0; + else if(timeunit == TimeUnit::Nanoseconds) + mul *= 1000000000.0; + } + switch(description.resultType) { - case CompType::Float: returnValue += QString::number(result.value.f); break; + case CompType::Float: returnValue += QString::number(mul * result.value.f); break; - case CompType::Double: returnValue += QString::number(result.value.d); break; + case CompType::Double: returnValue += QString::number(mul * result.value.d); break; case CompType::UInt: if(description.resultByteWidth == 8) @@ -59,7 +95,7 @@ static QString FormatCounterResult(const CounterResult &result, const CounterDes case CounterUnit::Percentage: returnValue += lit(" %"); break; - case CounterUnit::Seconds: returnValue += lit(" s"); break; + case CounterUnit::Seconds: returnValue += lit(" ") + UnitSuffix(timeunit); break; case CounterUnit::Absolute: case CounterUnit::Ratio: break; @@ -68,19 +104,6 @@ static QString FormatCounterResult(const CounterResult &result, const CounterDes return returnValue; } -PerformanceCounterViewer::PerformanceCounterViewer(ICaptureContext &ctx, QWidget *parent) - : QFrame(parent), ui(new Ui::PerformanceCounterViewer), m_Ctx(ctx) -{ - ui->setupUi(this); - - m_Ctx.AddLogViewer(this); - - connect(ui->captureCounters, &QToolButton::pressed, this, - &PerformanceCounterViewer::CaptureCounters); - - ui->captureCounters->setEnabled(m_Ctx.LogLoaded()); -} - void PerformanceCounterViewer::CaptureCounters() { if(!m_Ctx.LogLoaded()) @@ -155,14 +178,6 @@ void PerformanceCounterViewer::CaptureCounters() ShowProgressDialog(this, tr("Capturing counters"), [&done]() -> bool { return done; }); } -PerformanceCounterViewer::~PerformanceCounterViewer() -{ - m_Ctx.BuiltinWindowClosed(this); - - m_Ctx.RemoveLogViewer(this); - delete ui; -} - void PerformanceCounterViewer::OnLogfileClosed() { ui->captureCounters->setEnabled(false); diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.h b/qrenderdoc/Windows/PerformanceCounterViewer.h index 026053dcd..dbd700575 100644 --- a/qrenderdoc/Windows/PerformanceCounterViewer.h +++ b/qrenderdoc/Windows/PerformanceCounterViewer.h @@ -52,6 +52,8 @@ private slots: void on_counterResults_doubleClicked(const QModelIndex &index); private: + QString FormatCounterResult(const CounterResult &result, const CounterDescription &description); + Ui::PerformanceCounterViewer *ui; ICaptureContext &m_Ctx; void CaptureCounters();