From dbfb88721b69b0e4dc7da3b4bf16332c9764e5b0 Mon Sep 17 00:00:00 2001 From: sonninnos <45124675+sonninnos@users.noreply.github.com> Date: Wed, 18 Sep 2024 12:45:07 +0300 Subject: [PATCH] Automatic Frame Delay: Fix special overtime edge case (#17013) --- gfx/video_driver.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 4112bc4201..4ed2f7c29a 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -4174,7 +4174,7 @@ static void video_frame_delay_leftover(video_driver_state_t *video_st, if (!overtime_count) frame_time_dev += frame_time - frame_time_target; - /* Increase reserve when doing over time */ + /* Increase reserve when doing overtime */ if (frame_time_over && frame_delay_cur) { if ( core_run_time >= frame_time_target @@ -4196,6 +4196,8 @@ static void video_frame_delay_leftover(video_driver_state_t *video_st, if (core_run_time < frame_time_target / 1.5f) hold_count = refresh_rate * 2; } + else if (frame_time_over && core_run_time > frame_time_target * 1.5f) + hold_count = refresh_rate; /* Reserve can't exceed frame time target */ if (video_st->frame_time_reserve > frame_time_target)