[PATCH weston 1/2] gl-renderer: add support for EGL_KHR_swap_buffers_with_damage

Emil Velikov emil.l.velikov at gmail.com
Mon Nov 14 15:46:36 UTC 2016


On 4 November 2016 at 11:32, Eric Engestrom <eric.engestrom at imgtec.com> wrote:
> On Thursday, 2016-11-03 22:38:19 +0000, Emil Velikov wrote:
>> Extension is identical to the EXT one, yet we need to check for the KHR
>> abbreviated extension name + entry-point.
>>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>  libweston/gl-renderer.c | 29 +++++++++++++++++++++++------
>>  1 file changed, 23 insertions(+), 6 deletions(-)
>>
>> diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
>> index 3e8e5ab..a585001 100644
>> --- a/libweston/gl-renderer.c
>> +++ b/libweston/gl-renderer.c
>> @@ -2781,6 +2781,18 @@ renderer_setup_egl_client_extensions(struct gl_renderer *gr)
>>  static int
>>  gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
>>  {
>> +     static const struct {
>> +             char *extension, *entrypoint;
>> +     } foo[] = {
>
> Since the goal of this table is to get the entrypoint when you found an
> extension, how about `swap_buffers_with_damage_ext_to_entrypoint`?
> Rather long I'll concede, but explicit.
> You can also drop the middle bit: `swap_damage_ext_to_entrypoint`
>
Smashing, thanks for the var. name Eric.

> With an appropriate name here (and the other patch), the series is:
> Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
>
>> +             {
>> +                     .extension = "EGL_EXT_swap_buffers_with_damage",
>> +                     .entrypoint = "eglSwapBuffersWithDamageEXT",
>> +             },
>> +             {
>> +                     .extension = "EGL_KHR_swap_buffers_with_damage",
>> +                     .entrypoint = "eglSwapBuffersWithDamageKHR",
>> +             },
>> +     };
>>       struct gl_renderer *gr = get_renderer(ec);
>>       const char *extensions;
>>       EGLBoolean ret;
>> @@ -2815,12 +2827,17 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
>>               weston_log("warning: EGL_EXT_buffer_age not supported. "
>>                          "Performance could be affected.\n");
>>
>> -     if (weston_check_egl_extension(extensions, "EGL_EXT_swap_buffers_with_damage"))
>> -             gr->swap_buffers_with_damage =
>> -                     (void *) eglGetProcAddress("eglSwapBuffersWithDamageEXT");
>> -     else
>> -             weston_log("warning: EGL_EXT_swap_buffers_with_damage not "
>> -                        "supported. Performance could be affected.\n");
>> +     for (unsigned i = 0; i < ARRAY_LENGTH(foo); i++) {
>
> Yay for not forgetting `i<` :P
>
Indeed, me blushes.

-Emil


More information about the wayland-devel mailing list