summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/common.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-11-16 16:22:23 +0100
committerwm4 <wm4@nowhere>2015-11-16 16:22:23 +0100
commit6b22b216514ee2eb784711f4539410d3b312a4fd (patch)
tree0948f8218a4905e0ad441a767a9712ae4a0736ea /video/out/opengl/common.c
parent07c546b2b494a620edc98dadd5dd78a052ec6783 (diff)
downloadmpv-6b22b216514ee2eb784711f4539410d3b312a4fd.tar.bz2
mpv-6b22b216514ee2eb784711f4539410d3b312a4fd.tar.xz
vo_opengl: attempt to improve GLX vs. EGL backend detection
For the sake of vaapi interop, we want to use EGL, but on the other hand, but because driver developers are full of shit, vdpau interop will not work on EGL (even if the driver supports EGL). The latter happens with both nvidia and AMD Mesa drivers. Additionally, EGL vaapi interop support can apparently only detected at runtime by actually using it. While hwdec_vaegl.c already does this, it would require initializing libva on _every_ system, which will cause libav to print an unpreventable bullshit message to the terminal. Try to counter these huge loads of bullshit by adding more fucking bullshit.
Diffstat (limited to 'video/out/opengl/common.c')
-rw-r--r--video/out/opengl/common.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/video/out/opengl/common.c b/video/out/opengl/common.c
index 3ac01268d5..3d24f9818f 100644
--- a/video/out/opengl/common.c
+++ b/video/out/opengl/common.c
@@ -504,6 +504,7 @@ void mpgl_load_functions(GL *gl, void *(*getProcAddress)(const GLubyte *),
extern const struct mpgl_driver mpgl_driver_x11;
extern const struct mpgl_driver mpgl_driver_x11egl;
+extern const struct mpgl_driver mpgl_driver_x11_probe;
extern const struct mpgl_driver mpgl_driver_drm_egl;
extern const struct mpgl_driver mpgl_driver_cocoa;
extern const struct mpgl_driver mpgl_driver_wayland;
@@ -523,15 +524,18 @@ static const struct mpgl_driver *const backends[] = {
#if HAVE_GL_WAYLAND
&mpgl_driver_wayland,
#endif
+#if HAVE_GL_X11
+ &mpgl_driver_x11_probe,
+#endif
#if HAVE_EGL_X11
&mpgl_driver_x11egl,
#endif
-#if HAVE_EGL_DRM
- &mpgl_driver_drm_egl,
-#endif
#if HAVE_GL_X11
&mpgl_driver_x11,
#endif
+#if HAVE_EGL_DRM
+ &mpgl_driver_drm_egl,
+#endif
};
int mpgl_find_backend(const char *name)