On 30.09.2016 13:04, Emil Velikov wrote: > On 28 September 2016 at 20:54, Armin Krezović <[email protected]> > wrote: >> On 27.09.2016 15:18, Emmanuel Gil Peyrot wrote: >>> 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ć <[email protected]> >>>> --- >>>> 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 >>>> [email protected] >>>> https://lists.freedesktop.org/mailman/listinfo/wayland-devel >>> >> >> Hi Emmanuel, >> >> Thanks for the review. I was going to implement it that way, but I wanted to >> keep >> up the tradition. >> >> If nobody complains about the way you suggested, I'll implement it that way. >> > Fwiw, I believe Emmanuel's suggestion is spot on. > > The only difference between the two extensions is that the mesa > extension lacks explicit text error handling corner case. Everything > else is identical afaict, thus there's little need for a special case > in weston/other EGL users. > > Regards, > Emil >
Fair enough. Armin.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
