diff options
author | wm4 <wm4@nowhere> | 2014-08-15 23:36:02 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-08-15 23:36:02 +0200 |
commit | 4a297554bcbce5821bf002ce7955bc27767488e3 (patch) | |
tree | 2b7a5b3f09346690fc44b577f7cedaf35574ace8 | |
parent | 543ba6c114303c8c3a71b37864f6d901c41808eb (diff) |
vo_opengl: if glfinish is used, also call it after swappping
It seems that at least on nvidia systems with composting disabled, we
can get it to block deterministically on the actual vsync event, which
should improve framedropping.
-rw-r--r-- | DOCS/man/vo.rst | 4 | ||||
-rw-r--r-- | video/out/vo_opengl.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index f9a22e3c0e..31540fc1fa 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -439,7 +439,9 @@ Available video output drivers are: Borders will be distorted due to filtering. ``glfinish`` - Call ``glFinish()`` before swapping buffers + Call ``glFinish()`` before and after swapping buffers (default: disabled). + Slower, but might help getting better results when doing framedropping. + The details depend entirely on the OpenGL driver. ``sw`` Continue even if a software renderer is detected. diff --git a/video/out/vo_opengl.c b/video/out/vo_opengl.c index ae5f1f9bd0..c80506039c 100644 --- a/video/out/vo_opengl.c +++ b/video/out/vo_opengl.c @@ -105,6 +105,9 @@ static void flip_page(struct vo *vo) if (p->frames_rendered > 5) gl_video_set_debug(p->renderer, false); + if (p->use_glFinish) + p->gl->Finish(); + mpgl_unlock(p->glctx); } |