mpv/video/out/opengl
wm4 0abe34ed21 vo_gpu: x11: remove special vdpau probing, use EGL by default
Originally, vo_gpu/vo_opengl considered the case of Nvidia proprietary
drivers, which required vdpau/GLX, and Intel open source drivers, which
require vaapi/EGL. Since window creation and GPU context creation are
inseparable in mpv's internal API, it had to pick the correct API very
early, or hardware decoding wouldn't work. "x11probe" was introduced for
this reason. It created a GLX context (without showing the window yet),
and checked whether vdpau was available. If yes, it used GLX, if not, it
continued probing x11/EGL. (Obviously it couldn't always fail on GLX
without vdpau, which is why it was a separate "probe" backend.)

Years passed, and now the situation is different. Vdpau is dead. Nvidia
drivers and libavcodec now provide CUDA interop, which requires EGL, and
fixes some of the vdpau problems. AMD drivers now provide vaapi, which
generally works better than vdpau. Intel didn't change.

In particular, vaapi provides working HEVC Main10 support. In theory, it
should work on vdpau too, with quality reduction (no 10 bit surfaces),
but I couldn't get it to work.

So always prefer EGL. And suddenly hardware decoding works. This is
actually rather important, because HEVC is unfortunately on the rise,
despite shitty encoders and unoptimized decoders. The latter may mean
that hardware decoding works better than libavcodec.

This should have been done a long, long time ago.
2019-09-15 20:00:52 +03:00
..
angle_dynamic.c
angle_dynamic.h
common.c opengl: Support GL_ARB_sync style fences on OpenGL ES 3.0 2019-02-25 01:25:25 +01:00
common.h client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context.c vo: use a struct for vsync feedback stuff 2018-12-06 10:30:25 +01:00
context.h vo: use a struct for vsync feedback stuff 2018-12-06 10:30:25 +01:00
context_android.c vo_gpu/context_android: replace both options with android-surface-size 2018-01-02 15:04:31 -08:00
context_angle.c vo_gpu: d3d11: implement tex_download() 2018-02-13 21:25:15 +11:00
context_cocoa.c cocoa: change deprecation warning from opengl-cb to libmpv 2018-04-29 15:03:47 +03:00
context_drm_egl.c drm_common: Add proper help option to drm-mode 2019-05-04 14:17:11 +02:00
context_dxinterop.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_glx.c vo_gpu: x11: remove special vdpau probing, use EGL by default 2019-09-15 20:00:52 +03:00
context_mali_fbdev.c vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
context_rpi.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_vdpau.c vo_gpu: simplify structs / names 2017-09-22 16:58:55 +02:00
context_wayland.c opengl/context_wayland: Fix crash on configure before initial reconfig 2019-07-08 01:00:01 +02:00
context_win.c vo_gpu: win: remove exclusive-fullscreen detection hack 2017-12-20 14:53:41 +11:00
context_x11egl.c vo_gpu: x11egl: support Mesa OML sync extension 2019-09-08 23:23:43 +10:00
egl_helpers.c egl_helpers: change minimum framebuffer size to 8 bit per component 2018-04-29 02:21:32 +03:00
egl_helpers.h egl_helpers: mpegl_cb can now signal an error condition 2018-02-26 23:56:13 -08:00
formats.c vo_opengl: remove some dead code 2017-08-11 21:29:35 +02:00
formats.h vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
gl_headers.h vo_opengl: handle probing GL texture formats better 2017-08-11 21:29:35 +02:00
hwdec_d3d11egl.c video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
hwdec_d3d11eglrgb.c video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
hwdec_drmprime_drm.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
hwdec_dxva2egl.c hwdec: don't require setting legacy hwdec fields 2017-12-02 04:53:51 +01:00
hwdec_dxva2gldx.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
hwdec_ios.m hwdec_ios: fix crash after mapper_init failure 2018-04-17 01:06:29 +03:00
hwdec_osx.c hwdec: don't require setting legacy hwdec fields 2017-12-02 04:53:51 +01:00
hwdec_rpi.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
hwdec_vdpau.c vo/gpu: hwdec_vdpau: Support direct mode for 4:4:4 content 2019-07-08 01:11:27 +02:00
libmpv_gl.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
oml_sync.c vo_gpu: glx: move OML sync code to an independent file 2019-09-08 23:23:43 +10:00
oml_sync.h vo_gpu: glx: move OML sync code to an independent file 2019-09-08 23:23:43 +10:00
ra_gl.c video/out/gpu: Add a `storable` flag to ra_format 2019-07-08 00:59:28 +02:00
ra_gl.h vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
utils.c vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00
utils.h vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00