diff --git a/src/core/host.h b/src/core/host.h index b502e5ac7..7519a753f 100644 --- a/src/core/host.h +++ b/src/core/host.h @@ -99,8 +99,8 @@ void ResizeDisplayWindow(s32 width, s32 height, float scale); /// Destroys any active rendering device. void ReleaseGPUDevice(); -/// Called before drawing the OSD and other display elements. -void BeginPresentFrame(); +/// Called at the end of the frame, before presentation. +void FrameDone(); namespace Internal { /// Retrieves the base settings layer. Must call with lock held. diff --git a/src/core/system.cpp b/src/core/system.cpp index fefec9355..83e8c4314 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -1918,6 +1918,8 @@ void System::FrameDone() PollDiscordPresence(); #endif + Host::FrameDone(); + if (s_frame_step_request) { s_frame_step_request = false; @@ -2847,8 +2849,7 @@ void System::UpdateSpeedLimiterState() g_settings.turbo_speed : (s_fast_forward_enabled ? g_settings.fast_forward_speed : g_settings.emulation_speed); s_throttler_enabled = (s_target_speed != 0.0f); - s_optimal_frame_pacing = (s_throttler_enabled && g_settings.display_optimal_frame_pacing) || - g_gpu_device->GetWindowInfo().IsSurfaceless(); // surfaceless check for regtest + s_optimal_frame_pacing = (s_throttler_enabled && g_settings.display_optimal_frame_pacing); s_skip_presenting_duplicate_frames = s_throttler_enabled && g_settings.display_skip_presenting_duplicate_frames; s_pre_frame_sleep = s_optimal_frame_pacing && g_settings.display_pre_frame_sleep; s_can_sync_to_host = false; @@ -5153,8 +5154,6 @@ void System::HostDisplayResized() bool System::PresentDisplay(bool skip_present, bool explicit_present) { - Host::BeginPresentFrame(); - // acquire for IO.MousePos. std::atomic_thread_fence(std::memory_order_acquire); diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index 2bc15985e..85c8d7434 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -1770,7 +1770,7 @@ void EmuThread::run() moveToThread(m_ui_thread); } -void Host::BeginPresentFrame() +void Host::FrameDone() { } diff --git a/src/duckstation-regtest/regtest_host.cpp b/src/duckstation-regtest/regtest_host.cpp index 6dbbaf995..2ebf9ea3d 100644 --- a/src/duckstation-regtest/regtest_host.cpp +++ b/src/duckstation-regtest/regtest_host.cpp @@ -345,7 +345,7 @@ void Host::ReleaseRenderWindow() // } -void Host::BeginPresentFrame() +void Host::FrameDone() { const u32 frame = System::GetFrameNumber(); if (s_frame_dump_interval > 0 && (s_frame_dump_interval == 1 || (frame % s_frame_dump_interval) == 0))