From c8f33e340bf06a16052b01e7b38d0850c2f68802 Mon Sep 17 00:00:00 2001
From: Connor McLaughlin <stenzek@gmail.com>
Date: Mon, 7 Dec 2020 02:33:25 +1000
Subject: [PATCH] Revert "CommonHostInterface: Don't use sleep throttle when
 syncing to audio at standard speed"

This reverts commit 922e17f6776aad24ea8886c7098b3e0a100c489f.
---
 .../app/src/cpp/android_host_interface.cpp    |  2 +-
 src/duckstation-qt/qthostinterface.cpp        |  2 +-
 src/duckstation-sdl/sdl_host_interface.cpp    |  2 +-
 src/frontend-common/common_host_interface.cpp | 20 ++++++++-----------
 src/frontend-common/common_host_interface.h   |  2 +-
 5 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/android/app/src/cpp/android_host_interface.cpp b/android/app/src/cpp/android_host_interface.cpp
index 700754e9b..defb8f514 100644
--- a/android/app/src/cpp/android_host_interface.cpp
+++ b/android/app/src/cpp/android_host_interface.cpp
@@ -424,7 +424,7 @@ void AndroidHostInterface::EmulationThreadLoop()
       {
         System::UpdatePerformanceCounters();
 
-        if (m_use_sleep_throttler)
+        if (m_speed_limiter_enabled)
           System::Throttle();
       }
     }
diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp
index c32ef9712..58015c4aa 100644
--- a/src/duckstation-qt/qthostinterface.cpp
+++ b/src/duckstation-qt/qthostinterface.cpp
@@ -1328,7 +1328,7 @@ void QtHostInterface::threadEntryPoint()
 
     System::UpdatePerformanceCounters();
 
-    if (m_use_sleep_throttler)
+    if (m_speed_limiter_enabled)
       System::Throttle();
 
     m_worker_thread_event_loop->processEvents(QEventLoop::AllEvents);
diff --git a/src/duckstation-sdl/sdl_host_interface.cpp b/src/duckstation-sdl/sdl_host_interface.cpp
index 01754d19f..cb86449d9 100644
--- a/src/duckstation-sdl/sdl_host_interface.cpp
+++ b/src/duckstation-sdl/sdl_host_interface.cpp
@@ -1817,7 +1817,7 @@ void SDLHostInterface::Run()
       {
         System::UpdatePerformanceCounters();
 
-        if (m_use_sleep_throttler)
+        if (m_speed_limiter_enabled)
           System::Throttle();
       }
     }
diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp
index 6361690b3..5859dd2be 100644
--- a/src/frontend-common/common_host_interface.cpp
+++ b/src/frontend-common/common_host_interface.cpp
@@ -601,20 +601,16 @@ bool CommonHostInterface::ResumeSystemFromMostRecentState()
 void CommonHostInterface::UpdateSpeedLimiterState()
 {
   const float target_speed = m_fast_forward_enabled ? g_settings.fast_forward_speed : g_settings.emulation_speed;
-  const bool speed_limiter_enabled = (target_speed != 0.0f);
+  m_speed_limiter_enabled = (target_speed != 0.0f);
 
   const bool is_non_standard_speed = (std::abs(target_speed - 1.0f) > 0.05f);
   const bool audio_sync_enabled =
-    !System::IsRunning() || (speed_limiter_enabled && g_settings.audio_sync_enabled && !is_non_standard_speed);
+    !System::IsRunning() || (m_speed_limiter_enabled && g_settings.audio_sync_enabled && !is_non_standard_speed);
   const bool video_sync_enabled =
-    !System::IsRunning() || (speed_limiter_enabled && g_settings.video_sync_enabled && !is_non_standard_speed);
-  const float max_display_fps = speed_limiter_enabled ? 0.0f : g_settings.display_max_fps;
-  m_use_sleep_throttler =
-    speed_limiter_enabled &&
-    (!audio_sync_enabled || g_settings.audio_backend == AudioBackend::Null || target_speed != 1.0f);
-  Log_InfoPrintf("Syncing to %s%s (%s)", audio_sync_enabled ? "audio" : "",
-                 (audio_sync_enabled && video_sync_enabled) ? " and video" : (video_sync_enabled ? "video" : ""),
-                 m_use_sleep_throttler ? "sleep throttler" : "no sleep throttler");
+    !System::IsRunning() || (m_speed_limiter_enabled && g_settings.video_sync_enabled && !is_non_standard_speed);
+  const float max_display_fps = m_speed_limiter_enabled ? 0.0f : g_settings.display_max_fps;
+  Log_InfoPrintf("Syncing to %s%s", audio_sync_enabled ? "audio" : "",
+                 (audio_sync_enabled && video_sync_enabled) ? " and video" : (video_sync_enabled ? "video" : ""));
   Log_InfoPrintf("Max display fps: %f", max_display_fps);
 
   if (m_audio_stream)
@@ -631,11 +627,11 @@ void CommonHostInterface::UpdateSpeedLimiterState()
   }
 
   if (g_settings.increase_timer_resolution)
-    SetTimerResolutionIncreased(speed_limiter_enabled);
+    SetTimerResolutionIncreased(m_speed_limiter_enabled);
 
   if (System::IsValid())
   {
-    System::SetTargetSpeed(speed_limiter_enabled ? target_speed : 1.0f);
+    System::SetTargetSpeed(m_speed_limiter_enabled ? target_speed : 1.0f);
     System::ResetPerformanceCounters();
   }
 }
diff --git a/src/frontend-common/common_host_interface.h b/src/frontend-common/common_host_interface.h
index 2f1f695fc..48ea81e5e 100644
--- a/src/frontend-common/common_host_interface.h
+++ b/src/frontend-common/common_host_interface.h
@@ -345,7 +345,7 @@ protected:
   bool m_frame_step_request = false;
   bool m_fast_forward_enabled = false;
   bool m_timer_resolution_increased = false;
-  bool m_use_sleep_throttler = true;
+  bool m_speed_limiter_enabled = true;
 
 private:
   void InitializeUserDirectory();