From b4c4c9e6832368047390610123a0a2c28ed76add Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 6 Jun 2024 09:20:04 +0200 Subject: [PATCH] [util] Remove useless vsync parameter from FPS limiter --- src/dxvk/dxvk_presenter.cpp | 12 ++---------- src/dxvk/dxvk_presenter.h | 3 --- src/util/util_fps_limiter.cpp | 4 ++-- src/util/util_fps_limiter.h | 3 +-- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/src/dxvk/dxvk_presenter.cpp b/src/dxvk/dxvk_presenter.cpp index 07749b38e..397bbcbc2 100644 --- a/src/dxvk/dxvk_presenter.cpp +++ b/src/dxvk/dxvk_presenter.cpp @@ -130,7 +130,7 @@ namespace dxvk { m_frameQueue.push(frame); m_frameCond.notify_one(); } else { - applyFrameRateLimit(mode); + m_fpsLimiter.delay(); m_signal->signal(frameId); } @@ -648,14 +648,6 @@ namespace dxvk { } - void Presenter::applyFrameRateLimit(VkPresentModeKHR mode) { - bool vsync = mode == VK_PRESENT_MODE_FIFO_KHR - || mode == VK_PRESENT_MODE_FIFO_RELAXED_KHR; - - m_fpsLimiter.delay(vsync); - } - - void Presenter::runFrameThread() { env::setThreadName("dxvk-frame"); @@ -677,7 +669,7 @@ namespace dxvk { // Apply the FPS limiter before signaling the frame event in // order to reduce latency if the app uses it for frame pacing. - applyFrameRateLimit(frame.mode); + m_fpsLimiter.delay(); // If the present operation has succeeded, actually wait for it to complete. // Don't bother with it on MAILBOX / IMMEDIATE modes since doing so would diff --git a/src/dxvk/dxvk_presenter.h b/src/dxvk/dxvk_presenter.h index c5ba12733..30247796c 100644 --- a/src/dxvk/dxvk_presenter.h +++ b/src/dxvk/dxvk_presenter.h @@ -294,9 +294,6 @@ namespace dxvk { void destroySurface(); - void applyFrameRateLimit( - VkPresentModeKHR mode); - void runFrameThread(); }; diff --git a/src/util/util_fps_limiter.cpp b/src/util/util_fps_limiter.cpp index 8bec7b523..ff9ec40e0 100644 --- a/src/util/util_fps_limiter.cpp +++ b/src/util/util_fps_limiter.cpp @@ -35,7 +35,7 @@ namespace dxvk { std::lock_guard lock(m_mutex); if (!m_envOverride) { - m_targetInterval = frameRate > 0.0 + m_targetInterval = frameRate != 0.0 ? TimerDuration(int64_t(double(TimerDuration::period::den) / frameRate)) : TimerDuration::zero(); @@ -45,7 +45,7 @@ namespace dxvk { } - void FpsLimiter::delay(bool vsyncEnabled) { + void FpsLimiter::delay() { std::lock_guard lock(m_mutex); if (!isEnabled()) diff --git a/src/util/util_fps_limiter.h b/src/util/util_fps_limiter.h index e75cbc706..fe863cfc8 100644 --- a/src/util/util_fps_limiter.h +++ b/src/util/util_fps_limiter.h @@ -34,9 +34,8 @@ namespace dxvk { * Blocks the calling thread if the limiter is enabled * and the time since the last call to \ref delay is * shorter than the target interval. - * \param [in] vsyncEnabled \c true if vsync is enabled */ - void delay(bool vsyncEnabled); + void delay(); /** * \brief Checks whether the frame rate limiter is enabled