From f1ae0c71475eae91007354af54ee701f60d2609b Mon Sep 17 00:00:00 2001 From: narzoul Date: Wed, 21 Aug 2024 11:43:04 +0200 Subject: [PATCH] Added StatsRows=vblankcount, vblankrate, vblanktime settings --- DDrawCompat/Config/Settings/StatsRows.h | 6 ++++++ DDrawCompat/D3dDdi/KernelModeThunks.cpp | 9 +++++++++ DDrawCompat/Overlay/StatsWindow.cpp | 4 ++++ DDrawCompat/Overlay/StatsWindow.h | 1 + 4 files changed, 20 insertions(+) diff --git a/DDrawCompat/Config/Settings/StatsRows.h b/DDrawCompat/Config/Settings/StatsRows.h index 3fc1f33..652cfdf 100644 --- a/DDrawCompat/Config/Settings/StatsRows.h +++ b/DDrawCompat/Config/Settings/StatsRows.h @@ -23,6 +23,9 @@ namespace Config LOCKCOUNT, LOCKRATE, LOCKTIME, + VBLANKCOUNT, + VBLANKRATE, + VBLANKTIME, DDIUSAGE, GDIOBJECTS, DEBUG, @@ -45,6 +48,9 @@ namespace Config "lockcount", "lockrate", "locktime", + "vblankcount", + "vblankrate", + "vblanktime", "ddiusage", "gdiobjects", "debug" diff --git a/DDrawCompat/D3dDdi/KernelModeThunks.cpp b/DDrawCompat/D3dDdi/KernelModeThunks.cpp index f59cb08..285dc19 100644 --- a/DDrawCompat/D3dDdi/KernelModeThunks.cpp +++ b/DDrawCompat/D3dDdi/KernelModeThunks.cpp @@ -19,8 +19,10 @@ #include #include #include +#include #include #include +#include #include #include @@ -365,6 +367,13 @@ namespace } WakeAllConditionVariable(&g_vsyncCounterCv); + + auto statsWindow = Gdi::GuiThread::getStatsWindow(); + if (statsWindow) + { + statsWindow->m_vblank.add(); + } + } return 0; } diff --git a/DDrawCompat/Overlay/StatsWindow.cpp b/DDrawCompat/Overlay/StatsWindow.cpp index 8efa7bd..dfd097b 100644 --- a/DDrawCompat/Overlay/StatsWindow.cpp +++ b/DDrawCompat/Overlay/StatsWindow.cpp @@ -110,6 +110,9 @@ namespace Overlay m_statsRows.push_back({ "Lock count", UpdateStats(m_lock.m_count), &m_lock.m_count }); m_statsRows.push_back({ "Lock rate", UpdateStats(m_lock.m_rate), &m_lock.m_rate }); m_statsRows.push_back({ "Lock time", UpdateStats(m_lock.m_time), &m_lock.m_time }); + m_statsRows.push_back({ "VBlank count", UpdateStats(m_vblank.m_count), &m_vblank.m_count }); + m_statsRows.push_back({ "VBlank rate", UpdateStats(m_vblank.m_rate), &m_vblank.m_rate }); + m_statsRows.push_back({ "VBlank time", UpdateStats(m_vblank.m_time), &m_vblank.m_time }); m_statsRows.push_back({ "DDI usage", UpdateStats(m_ddiUsage), &m_ddiUsage }); m_statsRows.push_back({ "GDI objects", UpdateStats(m_gdiObjects), &m_gdiObjects }); m_statsRows.push_back({ "", &getDebugInfo, nullptr, WS_VISIBLE | WS_GROUP }); @@ -135,6 +138,7 @@ namespace Overlay m_flip.enable(); m_blit.enable(); m_lock.enable(); + m_vblank.enable(); } StatsControl& StatsWindow::addControl(const std::string& name, StatsControl::UpdateFunc updateFunc, DWORD style) diff --git a/DDrawCompat/Overlay/StatsWindow.h b/DDrawCompat/Overlay/StatsWindow.h index ec17817..15efcad 100644 --- a/DDrawCompat/Overlay/StatsWindow.h +++ b/DDrawCompat/Overlay/StatsWindow.h @@ -28,6 +28,7 @@ namespace Overlay StatsEventGroup m_flip; StatsEventGroup m_blit; StatsEventGroup m_lock; + StatsEventGroup m_vblank; StatsTimer m_ddiUsage; StatsQueue m_gdiObjects;