1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-26 01:23:17 +00:00

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.
This commit is contained in:
wm4 2015-09-26 20:28:36 +02:00
parent 0aa548457f
commit 375886c777
2 changed files with 6 additions and 5 deletions

View File

@ -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)

View File

@ -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;
}