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 <[email protected]> --- 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 [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
