diff options
author | wm4 <wm4@nowhere> | 2015-09-26 20:28:36 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-09-26 20:52:10 +0200 |
commit | 375886c7779c805e46f79ff3c648f9005bb47830 (patch) | |
tree | 9390a7fe5cdd70de979840471731d46c4d820878 /video | |
parent | 0aa548457f9b1ba6cb845b3b02a5d84ccec8c108 (diff) | |
download | mpv-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.c | 6 | ||||
-rw-r--r-- | video/out/opengl/x11egl.c | 5 |
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; } |