From b2ce3fbefc34fac9449e5f88f15c7a4da0825fac Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 5 Mar 2025 01:36:18 -0600 Subject: [PATCH] PerformanceTracker: Pass chrono values instead of us s64. --- Source/Core/VideoCommon/PerformanceMetrics.h | 2 +- Source/Core/VideoCommon/PerformanceTracker.cpp | 9 ++++----- Source/Core/VideoCommon/PerformanceTracker.h | 5 ++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Source/Core/VideoCommon/PerformanceMetrics.h b/Source/Core/VideoCommon/PerformanceMetrics.h index d1f4211a46..672c07037d 100644 --- a/Source/Core/VideoCommon/PerformanceMetrics.h +++ b/Source/Core/VideoCommon/PerformanceMetrics.h @@ -47,7 +47,7 @@ public: private: PerformanceTracker m_fps_counter{"render_times.txt"}; PerformanceTracker m_vps_counter{"vblank_times.txt"}; - PerformanceTracker m_speed_counter{std::nullopt, 1000000}; + PerformanceTracker m_speed_counter{std::nullopt, std::chrono::seconds{1}}; double m_graph_max_time = 0.0; diff --git a/Source/Core/VideoCommon/PerformanceTracker.cpp b/Source/Core/VideoCommon/PerformanceTracker.cpp index 93b33cff9a..64729a5cad 100644 --- a/Source/Core/VideoCommon/PerformanceTracker.cpp +++ b/Source/Core/VideoCommon/PerformanceTracker.cpp @@ -12,21 +12,20 @@ #include "Common/CommonTypes.h" #include "Common/FileUtil.h" -#include "Common/Timer.h" #include "Core/Core.h" #include "VideoCommon/VideoConfig.h" static constexpr double SAMPLE_RC_RATIO = 0.25; PerformanceTracker::PerformanceTracker(const std::optional log_name, - const std::optional sample_window_us) + const std::optional
sample_window_duration) : m_on_state_changed_handle{Core::AddOnStateChangedCallback([this](Core::State state) { if (state == Core::State::Paused) SetPaused(true); else if (state == Core::State::Running) SetPaused(false); })}, - m_log_name{log_name}, m_sample_window_us{sample_window_us} + m_log_name{log_name}, m_sample_window_duration{sample_window_duration} { Reset(); } @@ -92,8 +91,8 @@ void PerformanceTracker::Count() DT PerformanceTracker::GetSampleWindow() const { // This reads a constant value and thus does not need a mutex - return std::chrono::duration_cast
( - DT_us(m_sample_window_us.value_or(std::max(1, g_ActiveConfig.iPerfSampleUSec)))); + return m_sample_window_duration.value_or( + duration_cast
(DT_us{std::max(1, g_ActiveConfig.iPerfSampleUSec)})); } double PerformanceTracker::GetHzAvg() const diff --git a/Source/Core/VideoCommon/PerformanceTracker.h b/Source/Core/VideoCommon/PerformanceTracker.h index f24601c845..a41271abaa 100644 --- a/Source/Core/VideoCommon/PerformanceTracker.h +++ b/Source/Core/VideoCommon/PerformanceTracker.h @@ -4,7 +4,6 @@ #pragma once #include -#include #include #include #include @@ -35,7 +34,7 @@ private: public: PerformanceTracker(const std::optional log_name = std::nullopt, - const std::optional sample_window_us = std::nullopt); + const std::optional
sample_window_duration = std::nullopt); ~PerformanceTracker(); PerformanceTracker(const PerformanceTracker&) = delete; @@ -84,7 +83,7 @@ private: // Functions for managing dt queue TimePoint m_last_time; // Amount of time to sample dt's over (defaults to config) - const std::optional m_sample_window_us; + const std::optional
m_sample_window_duration; // Queue + Running Total used to calculate average dt DT m_dt_total = DT::zero();