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.

Cheers, Armin.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to