[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