[PATCH weston 2/3] gl-renderer: Add support for fence sync extensions
Alexandros Frantzis
alexandros.frantzis at collabora.com
Thu Sep 14 11:07:34 UTC 2017
Check for the EGL_KHR_fence_sync and EGL_ANDROID_native_fence_sync
extensions and get pointers to required extension functions.
---
libweston/gl-renderer.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
index 5768f05a..c2e88a65 100644
--- a/libweston/gl-renderer.c
+++ b/libweston/gl-renderer.c
@@ -231,6 +231,11 @@ struct gl_renderer {
int has_dmabuf_import_modifiers;
PFNEGLQUERYDMABUFFORMATSEXTPROC query_dmabuf_formats;
PFNEGLQUERYDMABUFMODIFIERSEXTPROC query_dmabuf_modifiers;
+
+ int has_native_fence_sync;
+ PFNEGLCREATESYNCKHRPROC create_sync;
+ PFNEGLDESTROYSYNCKHRPROC destroy_sync;
+ PFNEGLDUPNATIVEFENCEFDANDROIDPROC dup_native_fence_fd;
};
static PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = NULL;
@@ -3028,6 +3033,17 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
if (weston_check_egl_extension(extensions, "GL_EXT_texture_rg"))
gr->has_gl_texture_rg = 1;
+ if (weston_check_egl_extension(extensions, "EGL_KHR_fence_sync") &&
+ weston_check_egl_extension(extensions, "EGL_ANDROID_native_fence_sync")) {
+ gr->create_sync =
+ (void *) eglGetProcAddress("eglCreateSyncKHR");
+ gr->destroy_sync =
+ (void *) eglGetProcAddress("eglDestroySyncKHR");
+ gr->dup_native_fence_fd =
+ (void *) eglGetProcAddress("eglDupNativeFenceFDANDROID");
+ gr->has_native_fence_sync = 1;
+ }
+
renderer_setup_egl_client_extensions(gr);
return 0;
--
2.14.1
More information about the wayland-devel
mailing list