mpv/video
wm4 2b6241a09a 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:

df01279cf3/gfx/drivers/gl.c (L1856)
2015-10-30 20:26:51 +01:00
..
decode vd_lavc: fix declarations 2015-10-30 09:41:55 +01:00
filter video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
out vo_opengl: add vsync-fences option 2015-10-30 20:26:51 +01:00
csputils.c video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
csputils.h video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
d3d.h vo_direct3d, dxva2: use the same D3D device 2015-07-03 16:04:42 +02:00
fmt-conversion.c video: remove VDA support 2015-09-28 22:03:14 +02:00
fmt-conversion.h Update license headers 2015-04-13 12:10:01 +02:00
gpu_memcpy.c video: refactor GPU memcpy usage 2015-09-25 19:18:16 +02:00
gpu_memcpy.h video: refactor GPU memcpy usage 2015-09-25 19:18:16 +02:00
hwdec.h video: remove VDA support 2015-09-28 22:03:14 +02:00
image_writer.c Replace deprecated av_free_packet() calls 2015-10-28 23:48:56 +01:00
image_writer.h screenshots: add option to prevent 16 bit output 2015-04-29 21:05:04 +02:00
img_format.c vo_opengl: support all kinds of GBRP formats 2015-10-18 18:37:24 +02:00
img_format.h vo_opengl: support all kinds of GBRP formats 2015-10-18 18:37:24 +02:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
mp_image.c video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
mp_image.h video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
mp_image_pool.c video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
mp_image_pool.h video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
sws_utils.c video: replace vf_format outputlevels option with global option 2015-09-29 21:12:26 +02:00
sws_utils.h vf_scale: libswscale is being stupid 2015-03-01 22:32:38 +01:00
vaapi.c vaapi: drop non-existing FourCC 2015-10-17 14:20:53 +02:00
vaapi.h vaapi: drop non-existing FourCC 2015-10-17 14:20:53 +02:00
vdpau.c video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00
vdpau.h video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00
vdpau_functions.inc vo_vdpau: directly get surface size from surface for screenshots 2015-06-05 22:34:16 +02:00
vdpau_mixer.c vdpau: retrieve mixer parameters directly from the hw surface 2015-05-28 21:54:02 +02:00
vdpau_mixer.h vdpau: retrieve mixer parameters directly from the hw surface 2015-05-28 21:54:02 +02:00