diff options
author | wm4 <wm4@nowhere> | 2015-10-30 20:26:51 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-10-30 20:26:51 +0100 |
commit | 2b6241a09a136db26834e75aeb3730f00894ee54 (patch) | |
tree | 52b6401c2140d52c6d162fa8d458458ea965767b /DOCS/man | |
parent | 93f748e77f1aeaeac3035552ed49aa33645bdfb0 (diff) | |
download | mpv-2b6241a09a136db26834e75aeb3730f00894ee54.tar.bz2 mpv-2b6241a09a136db26834e75aeb3730f00894ee54.tar.xz |
vo_opengl: add vsync-fences option
Yet another relatively useless option that tries to make OpenGL's sync
behavior somewhat sane. The results are not too encouraging. With a
value of 1, vsync jitter is gone on nVidia, but there are frame drops
(less than with glfinish). With 2, I get the usual vsync jitter _and_
frame drops.
There's still some hope that it might prevent too deep queuing with some
GPUs, I guess.
The timeout for the wait call is 1 second. The value is pretty
arbitrary; it should just not be too high to freeze the process (if
the GPU is un-nice), and not too low to trigger the timeout in normal
cases, even if the GPU load is very high. So I guess 1 second is ok
as a timeout.
The idea to use fences this way to control the queue depth was stolen
from RetroArch:
https://github.com/libretro/RetroArch/blob/df01279cf318e7ec90ace039d60515296e3de908/gfx/drivers/gl.c#L1856
Diffstat (limited to 'DOCS/man')
-rw-r--r-- | DOCS/man/vo.rst | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 7b6358be6e..2cebd153ff 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -667,6 +667,15 @@ Available video output drivers are: X11/GLX only. + ``vsync-fences=<N>`` + Synchronize the CPU to the Nth past frame using the ``GL_ARB_sync`` + extension. A value of 0 disables this behavior (default). A value of + 1 means it will synchronize to the current frame after rendering it. + Like ``glfinish`` and ``waitvsync``, this can lower or ruin performance. + Its advantage is that it can span multiple frames, and effectively limit + the number of frames the GPU queues ahead (which also has an influence + on vsync). + ``dwmflush=<no|windowed|yes>`` Calls ``DwmFlush`` after swapping buffers on Windows (default: no). It also sets ``SwapInterval(0)`` to ignore the OpenGL timing. Values |