From 8737732035264b0b5ca3c7db05ec0ed73a1fa155 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 30 Oct 2015 12:53:43 +0100 Subject: vo_opengl: cache frames only in display-sync mode vo_frame.num_vsyncs can be != 1 in some cases in normal sync mode too. This is not a very exact fix, but in exchange it's robust. (These vo_frame flags are way too tricky in combination with redrawing and such.) --- video/out/opengl/video.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'video/out/opengl/video.c') diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c index 60d987a31b..00c7663e91 100644 --- a/video/out/opengl/video.c +++ b/video/out/opengl/video.c @@ -1926,7 +1926,9 @@ void gl_video_render_frame(struct gl_video *p, struct vo_frame *frame, int fbo) gl_video_upload_image(p, frame->current); pass_render_frame(p); - if (frame->num_vsyncs == 1 || p->opts.dumb_mode) { + if (frame->num_vsyncs == 1 || !frame->display_synced || + p->opts.dumb_mode) + { // Disable output_fbo_valid to signal that this frame // does not require any redraws from the FBO. pass_draw_to_screen(p, fbo); -- cgit v1.2.3