mpv/video/out
wm4 83884fdf03 vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting
Use the extension to compute the (hopefully correct) video delay and
vsync phase.

This is very fuzzy, because the latency will suddenly be applied after
some frames have already been shown. This means there _will_ be "jumps"
in the time accounting, which can lead to strange effects at start of
playback (such as making initial "dropped" etc. frames worse). The only
reasonable way to fix this would be running a few dummy frame swaps at
start of playback until the latency is known. The same happens when
unpausing.

This only affects display-sync mode.

Correct function was not confirmed. It only "looks right". I don't have
the equipment to make scientifically correct measurements.

A potentially bad thing is that we trust the timestamps we're receiving.
Out of bounds timestamps could wreak havoc. On the other hand, this will
probably cause the higher level code to panic and just disable DS.

As a further caveat, this makes a bunch of assumptions about UST
timestamps. If there are delayed frames (i.e. we skipped one or more
vsyncs), the latency logic is mostly reset. There is no attempt to make
the vo.c skipped vsync logic to use this. Also, the latency computation
determines a vsync duration, and there's no effort to reconcile or share
the vo.c logic for determining vsync duration.
2018-12-06 10:30:14 +01:00
..
cocoa cocoa: fix drawing on macOS 10.14 2018-11-13 21:14:29 +02:00
cocoa-cb cocoa-cb: add logging for CGL pixel format attributes 2018-11-13 20:43:29 +02:00
d3d11 vo_gpu: d3d11: implement tex_download() 2018-02-13 21:25:15 +11:00
gpu vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
opengl vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
vulkan spirv: remove --spirv-compiler=nvidia 2018-12-01 15:50:23 +02:00
win32 vo_gpu: win: remove exclusive-fullscreen detection hack 2017-12-20 14:53:41 +11:00
aspect.c
aspect.h
bitmap_packer.c
bitmap_packer.h
cocoa_cb_common.swift cocoa-cb: use libmpv's advanced rendering control and timing 2018-11-13 20:43:29 +02:00
cocoa_common.h
cocoa_common.m {mac,cocoa}: trim trailing null out of macosx_icon when loading it 2018-10-02 00:20:43 +03:00
d3d_shader_420p.h
d3d_shader_yuv.hlsl
dither.c
dither.h
dr_helper.c vo: move DR helper code to a separate source file 2018-04-29 02:21:32 +03:00
dr_helper.h vo: move DR helper code to a separate source file 2018-04-29 02:21:32 +03:00
drm_atomic.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_atomic.h drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_common.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_common.h drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_prime.c
drm_prime.h
filter_kernels.c
filter_kernels.h
libmpv.h vo_libmpv: support render performance data 2018-11-13 20:43:29 +02:00
vo.c vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
vo.h vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
vo_caca.c
vo_direct3d.c
vo_drm.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
vo_gpu.c vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
vo_image.c
vo_lavc.c encode: get rid of the output packet queue 2018-05-03 01:08:44 +03:00
vo_libmpv.c vo_libmpv: support render performance data 2018-11-13 20:43:29 +02:00
vo_mediacodec_embed.c vo_mediacodec_embed: fix forgotten VO_CAP_NOREDRAW→VO_CAP_NORETAIN 2018-02-20 01:59:20 +02:00
vo_null.c
vo_rpi.c vo_gpu: add internal ability to skip osd/subs for rendering 2018-02-11 17:45:51 -08:00
vo_sdl.c vo_sdl: add support for screensaver VOCTRL's 2018-06-02 23:34:38 +03:00
vo_tct.c sws_utils: don't force callers to provide option struct 2018-01-18 00:59:07 -08:00
vo_vaapi.c video: change some mp_image_pool semantics 2018-01-13 03:26:45 -08:00
vo_vdpau.c vo_vdpau: fix resizing and rotation problems 2018-03-08 17:12:32 -08:00
vo_x11.c vo_x11: fix return value in resize() error paths 2018-11-17 00:53:56 +01:00
vo_xv.c build: remove POSIX/sysv shared memory test 2017-12-02 23:19:13 +01:00
w32_common.c w32_common: use the screen working area when resizing the window 2018-11-18 00:56:34 +02:00
w32_common.h
wayland_common.c wayland: remove KDE server-decoration support 2018-11-19 00:15:31 +02:00
wayland_common.h wayland: remove KDE server-decoration support 2018-11-19 00:15:31 +02:00
win_state.c video: change some remaining vo_opengl mentions to vo_gpu 2018-01-20 14:43:49 -08:00
win_state.h
x11_common.c x11: fix icc profile when the window goes near off screen 2018-10-21 23:32:50 +02:00
x11_common.h