Re: [PATCH weston 1/2] gl-renderer: add support for EGL_KHR_swap_buffers_with_damage
On 4 November 2016 at 11:32, Eric Engestrom wrote: > On Thursday, 2016-11-03 22:38:19 +, 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 >> --- >> 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 > >> + { >> + .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 ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel
Re: [PATCH weston 1/2] gl-renderer: add support for EGL_KHR_swap_buffers_with_damage
On Thursday, 2016-11-03 22:38:19 +, 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 > --- > 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 > + { > + .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
[PATCH weston 1/2] gl-renderer: add support for EGL_KHR_swap_buffers_with_damage
Hi Emil, On Thursday, 3 November 2016, Emil Velikov > wrote: > > + static const struct { > + char *extension, *entrypoint; > + } foo[] = { > This naming is, er ... fairly non-specific. The rest seems fine to me though. Cheers, Daniel ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel
[PATCH weston 1/2] gl-renderer: add support for EGL_KHR_swap_buffers_with_damage
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 --- 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[] = { + { + .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++) { + 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