From 29cddc30f0ce70ed38e913520bdd7b2c2f4819ad Mon Sep 17 00:00:00 2001 From: Eladash Date: Mon, 21 Oct 2019 14:03:35 +0300 Subject: [PATCH] rsx: Fix vblank signals flood after Emu.Resume() --- rpcs3/Emu/RSX/RSXThread.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 3ddf4220bd..a515b4d904 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -508,10 +508,21 @@ namespace rsx continue; } - while (Emu.IsPaused() && !m_rsx_thread_exiting) - thread_ctrl::wait_for(wait_sleep); + if (Emu.IsPaused()) + { + // Save the difference before pause + start_time = get_system_time() - start_time; + + while (Emu.IsPaused() && !m_rsx_thread_exiting) + { + thread_ctrl::wait_for(wait_sleep); + } - thread_ctrl::wait_for(100); // Hack + // Restore difference + start_time = get_system_time() - start_time; + } + + thread_ctrl::wait_for(100); } });