mpv/video/out/gpu
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
..
context.c gpu: prefer wayland context on autodetect 2018-11-19 00:26:39 +02:00
context.h vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting 2018-12-06 10:30:14 +01:00
d3d11_helpers.c vo_gpu: d3d11: implement tex_download() 2018-02-13 21:25:15 +11:00
d3d11_helpers.h vo_gpu: d3d11: implement tex_download() 2018-02-13 21:25:15 +11:00
hwdec.c hwdec: detach d3d and d3d9 hwaccel from angle 2018-01-25 20:57:45 -08:00
hwdec.h vo_gpu: hwdec: remove redundant fields 2017-12-01 05:57:41 +01:00
lcms.c vo_gpu: allow higher icc-contrast and improve logging 2018-05-17 22:56:45 +03:00
lcms.h
libmpv_gpu.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
libmpv_gpu.h client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
osd.c vo_gpu: invalidate fbotex before drawing 2017-12-25 00:47:53 +01:00
osd.h vo_gpu: simplify structs / names 2017-09-22 16:58:55 +02:00
ra.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
ra.h vo_gpu: vulkan: Add support for exporting buffer memory 2018-10-22 21:35:48 +02:00
shader_cache.c vo_gpu: use explicit offsets for push constants 2018-09-29 20:15:10 +02:00
shader_cache.h vo_gpu: invalidate fbotex before drawing 2017-12-25 00:47:53 +01:00
spirv.c spirv: remove --spirv-compiler=nvidia 2018-12-01 15:50:23 +02:00
spirv.h vo_gpu: vulkan: generalize SPIR-V compiler 2017-09-26 17:25:35 +02:00
spirv_shaderc.c vo_gpu: switch to optimization level performance 2018-09-01 16:14:22 +02:00
user_shaders.c
user_shaders.h vo_gpu: make the vertex attribs dynamic 2017-09-28 01:54:38 +02:00
utils.c vo_gpu: fix vec3 packing in UBOs/push_constants 2018-09-29 20:15:10 +02:00
utils.h vo_gpu: simplify structs / names 2017-09-22 16:58:55 +02:00
video.c Merge commit '559a400ac36e75a8d73ba263fd7fa6736df1c2da' into wm4-commits--merge-edition 2018-12-05 19:19:24 +01:00
video.h vo_gpu: split --linear-scaling into two separate options 2018-10-19 22:58:01 +02:00
video_shaders.c vo_gpu: adjust PRNG variant used by GL shaders 2018-09-26 23:53:05 +03:00
video_shaders.h vo_gpu: simplify and correct color scale handling 2018-02-20 22:02:51 +02:00