summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-09-26 20:28:36 +0200
committerwm4 <wm4@nowhere>2015-09-26 20:52:10 +0200
commit375886c7779c805e46f79ff3c648f9005bb47830 (patch)
tree9390a7fe5cdd70de979840471731d46c4d820878 /video
parent0aa548457f9b1ba6cb845b3b02a5d84ccec8c108 (diff)
downloadmpv-375886c7779c805e46f79ff3c648f9005bb47830.tar.bz2
mpv-375886c7779c805e46f79ff3c648f9005bb47830.tar.xz
vo_opengl: probe for EGL by default
Normally, we prefer GLX on X11. But for the VAAPI EGL interop, we obviously want EGL. Since nvidia does not provide EGL with desktop GL yet, we can leave it to the autoprobing. Just make sure some failure messages don't unnecessarily show up in the nvidia case. This breaks VAAPI GLX interop by default, but I don't care much. If you use --hwdec=auto (which you should if you want hw decoding), this should fallback to vaapi-copy instead.
Diffstat (limited to 'video')
-rw-r--r--video/out/opengl/common.c6
-rw-r--r--video/out/opengl/x11egl.c5
2 files changed, 6 insertions, 5 deletions
diff --git a/video/out/opengl/common.c b/video/out/opengl/common.c
index 8eafc09d25..43d9375155 100644
--- a/video/out/opengl/common.c
+++ b/video/out/opengl/common.c
@@ -533,12 +533,12 @@ static const struct backend backends[] = {
#if HAVE_GL_WAYLAND
{"wayland", mpgl_set_backend_wayland},
#endif
-#if HAVE_GL_X11
- {.driver = &mpgl_driver_x11},
-#endif
#if HAVE_EGL_X11
{.driver = &mpgl_driver_x11egl},
#endif
+#if HAVE_GL_X11
+ {.driver = &mpgl_driver_x11},
+#endif
};
int mpgl_find_backend(const char *name)
diff --git a/video/out/opengl/x11egl.c b/video/out/opengl/x11egl.c
index 1559e5ba8a..b196b7d9f4 100644
--- a/video/out/opengl/x11egl.c
+++ b/video/out/opengl/x11egl.c
@@ -123,6 +123,7 @@ static int mpegl_init(struct MPGLContext *ctx, int flags)
struct priv *p = ctx->priv;
struct vo *vo = ctx->vo;
bool es = flags & VOFLAG_GLES;
+ int msgl = vo->probing ? MSGL_V : MSGL_FATAL;
if (!vo_x11_init(vo))
goto uninit;
@@ -130,13 +131,13 @@ static int mpegl_init(struct MPGLContext *ctx, int flags)
p->x_display = vo->x11->display;
if (!eglBindAPI(es ? EGL_OPENGL_ES_API : EGL_OPENGL_API)) {
- MP_FATAL(vo, "Could not bind API (%s).\n", es ? "GLES" : "GL");
+ mp_msg(vo->log, msgl, "Could not bind API (%s).\n", es ? "GLES" : "GL");
goto uninit;
}
p->egl_display = eglGetDisplay(vo->x11->display);
if (!eglInitialize(p->egl_display, NULL, NULL)) {
- MP_FATAL(vo, "Could not initialize EGL.\n");
+ mp_msg(vo->log, msgl, "Could not initialize EGL.\n");
goto uninit;
}