From 170259c7c39063fd61edfc2795126f4027fb4a92 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Fri, 19 Nov 2021 22:40:19 +0100 Subject: vo_gpu_next: always cache still frames Even when not display synced. Prevents redraw overhead for refreshes while paused. Also make the logic slightly clearer to follow (since it's inverted). --- video/out/vo_gpu_next.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 44b16638b1..8a5f078939 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -732,7 +732,9 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) } #if PL_API_VER >= 179 - p->params.skip_caching_single_frame = !frame->display_synced || frame->num_vsyncs == 1; + bool will_redraw = frame->display_synced && frame->num_vsyncs > 1; + bool cache_frame = will_redraw || frame->still; + p->params.skip_caching_single_frame = !cache_frame; #endif p->params.preserve_mixing_cache = p->inter_preserve && !frame->still; p->params.allow_delayed_peak_detect = p->delayed_peak; -- cgit v1.2.3