On Tue, Sep 27, 2016 at 12:29:51PM +0200, Armin Krezović wrote: > This patch makes use of recently implemented > EGL_KHR_no_config_context extension in Mesa, > which superseeds EGL_MESA_configless_context. > > See also (and the follow-up patch): > > https://lists.freedesktop.org/archives/mesa-dev/2016-September/128510.html > > Signed-off-by: Armin Krezović <krezovic.ar...@gmail.com> > --- > libweston/gl-renderer.c | 14 +++++++++++--- > libweston/weston-egl-ext.h | 3 +++ > 2 files changed, 14 insertions(+), 3 deletions(-) > > diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c > index 031576b..7ef7b89 100644 > --- a/libweston/gl-renderer.c > +++ b/libweston/gl-renderer.c > @@ -199,6 +199,8 @@ struct gl_renderer { > > int has_egl_buffer_age; > > + int has_no_config_context; > + > int has_configless_context;
You don’t need to keep two different booleans for that, both extensions are implemented and exposed the same way, only the wording changes a bit. > > int has_surfaceless_context; > @@ -2564,10 +2566,11 @@ gl_renderer_output_create(struct weston_output > *output, > } > > if (egl_config != gr->egl_config && > + !gr->has_no_config_context && > !gr->has_configless_context) { > weston_log("attempted to use a different EGL config for an " > - "output but EGL_MESA_configless_context is not " > - "supported\n"); > + "output but EGL_KHR_no_config_context or " > + "EGL_MESA_configless_context is not supported\n"); > return -1; > } > > @@ -2726,6 +2729,9 @@ gl_renderer_setup_egl_extensions(struct > weston_compositor *ec) > weston_log("warning: EGL_EXT_swap_buffers_with_damage not " > "supported. Performance could be affected.\n"); > > + if (weston_check_egl_extension(extensions, "EGL_KHR_no_config_context")) > + gr->has_no_config_context = 1; > + > if (weston_check_egl_extension(extensions, > "EGL_MESA_configless_context")) > gr->has_configless_context = 1; Same here, you can safely set gr->has_no_config_context instead. > > @@ -3101,7 +3107,9 @@ gl_renderer_setup(struct weston_compositor *ec, > EGLSurface egl_surface) > > context_config = gr->egl_config; > > - if (gr->has_configless_context) > + if (gr->has_no_config_context) > + context_config = EGL_NO_CONFIG_KHR; > + else if (gr->has_configless_context) > context_config = EGL_NO_CONFIG_MESA; And same here, the EGL_NO_CONFIG_KHR and EGL_NO_CONFIG_MESA values are the same, so as long as you have both in the header (you do), it will not be an issue. > > gr->egl_context = eglCreateContext(gr->egl_display, context_config, > diff --git a/libweston/weston-egl-ext.h b/libweston/weston-egl-ext.h > index 6e36996..50964a8 100644 > --- a/libweston/weston-egl-ext.h > +++ b/libweston/weston-egl-ext.h > @@ -152,5 +152,8 @@ typedef EGLSurface (EGLAPIENTRYP > PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLD > #define EGL_PLATFORM_X11_KHR 0x31D5 > #endif > > +#ifndef EGL_NO_CONFIG_KHR > +#define EGL_NO_CONFIG_KHR ((EGLConfig)0) > +#endif > > #endif > -- > 2.10.0 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/wayland-devel -- Emmanuel Gil Peyrot Collabora Ltd. _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel