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.veli...@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`

With an appropriate name here (and the other patch), the series is:
Reviewed-by: Eric Engestrom <eric.engest...@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

> +             if (weston_check_egl_extension(extensions, foo[i].extension)) {
> +                     gr->swap_buffers_with_damage =
> +                             (void *) eglGetProcAddress(foo[i].entrypoint);
> +                     break;
> +             }
> +     }
> +     if (!gr->swap_buffers_with_damage)
> +             weston_log("warning: neither %s or %s is supported. "
> +                        "Performance could be affected.\n",
> +                        foo[0].extension, foo[1].extension);
>  
>       if (weston_check_egl_extension(extensions, 
> "EGL_MESA_configless_context"))
>               gr->has_configless_context = 1;
> -- 
> 2.9.3
> 
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to