diff --git a/pcsx2/GS/GSPerfMon.cpp b/pcsx2/GS/GSPerfMon.cpp index 13c17260d9..95433620eb 100644 --- a/pcsx2/GS/GSPerfMon.cpp +++ b/pcsx2/GS/GSPerfMon.cpp @@ -30,10 +30,12 @@ void GSPerfMon::Reset() std::memset(m_stats, 0, sizeof(m_stats)); } -void GSPerfMon::EndFrame() +void GSPerfMon::EndFrame(bool frame_only) { m_frame++; - m_count++; + + if(!frame_only) + m_count++; } void GSPerfMon::Update() diff --git a/pcsx2/GS/GSPerfMon.h b/pcsx2/GS/GSPerfMon.h index 9932017d6c..a2fc763d3b 100644 --- a/pcsx2/GS/GSPerfMon.h +++ b/pcsx2/GS/GSPerfMon.h @@ -52,7 +52,7 @@ public: void SetFrame(u64 frame) { m_frame = frame; } u64 GetFrame() { return m_frame; } - void EndFrame(); + void EndFrame(bool frame_only); void Put(counter_t c, double val) { m_counters[c] += val; } double GetCounter(counter_t c) { return m_counters[c]; } diff --git a/pcsx2/GS/Renderers/Common/GSRenderer.cpp b/pcsx2/GS/Renderers/Common/GSRenderer.cpp index 9e1cb4dbe9..55fc3da4f2 100644 --- a/pcsx2/GS/Renderers/Common/GSRenderer.cpp +++ b/pcsx2/GS/Renderers/Common/GSRenderer.cpp @@ -602,7 +602,9 @@ void GSRenderer::VSync(u32 field, bool registers_written, bool idle_frame) if (!idle_frame) g_gs_device->AgePool(); - g_perfmon.EndFrame(); + + g_perfmon.EndFrame(idle_frame); + if ((g_perfmon.GetFrame() & 0x1f) == 0) g_perfmon.Update();