[PR #2860] fix throttler and vsync related issues #1242

Closed
opened 2026-01-29 19:15:58 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/stenzek/duckstation/pull/2860

State: closed
Merged: No


This commit may fix issues like below:

  • VSYNC will be disabled after pause (including disc change, etc.)
  • 'Unlimited' setting for fast-forward / turbo not working. (And it seems other speed setting also not working..)

This commit fixes below functions:

  • System::UpdateSpeedLimiterState()

    • m_throttler_enabled should be set if target_speed != 1.0f, not 0.0f.
      • m_throttler_enabled was set to true even in case emulator is running at 100%.
      • m_throttler_enabled was set to false in case fast_forward/turbo was enabled but set to 'Unlimited'
    • ShouldUseVSync() should be called after s_target_speed is updated with target_speed.
      • ShouldUseVSync() uses IsRunningAtNonStandardSpeed() internally, and it refers s_target_speed.
  • System::ShouldUseVSync()

    • I guess this function should return 'true' in case 'g_settings.video_sync_enabled == true' && 'm_throttler_enabled == false'. but current implementation returns false.
**Original Pull Request:** https://github.com/stenzek/duckstation/pull/2860 **State:** closed **Merged:** No --- This commit may fix issues like below: * VSYNC will be disabled after pause (including disc change, etc.) * 'Unlimited' setting for fast-forward / turbo not working. (And it seems other speed setting also not working..) This commit fixes below functions: * System::UpdateSpeedLimiterState() * m_throttler_enabled should be set if target_speed != 1.0f, not 0.0f. - m_throttler_enabled was set to true even in case emulator is running at 100%. - m_throttler_enabled was set to false in case fast_forward/turbo was enabled but set to 'Unlimited' * ShouldUseVSync() should be called after s_target_speed is updated with target_speed. - ShouldUseVSync() uses IsRunningAtNonStandardSpeed() internally, and it refers s_target_speed. * System::ShouldUseVSync() * I guess this function should return 'true' in case 'g_settings.video_sync_enabled == true' && 'm_throttler_enabled == false'. but current implementation returns false.
claunia added the pull-request label 2026-01-29 19:15:58 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/duckstation#1242