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.)
This commit is contained in:
wm4 2015-10-30 12:53:43 +01:00
parent 67aab3a9f6
commit 8737732035
1 changed files with 3 additions and 1 deletions

View File

@ -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); gl_video_upload_image(p, frame->current);
pass_render_frame(p); 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 // Disable output_fbo_valid to signal that this frame
// does not require any redraws from the FBO. // does not require any redraws from the FBO.
pass_draw_to_screen(p, fbo); pass_draw_to_screen(p, fbo);