EGL_ANDROID_native_fence_sync#
Supported Hardware#
Series6, Series6XE, Series6XT
Valid APIs#
EGL 1.1
Description#
This extension enables the creation of EGL fence sync objects that are associated with a native synchronization fence object that is referenced using a file descriptor. These EGL fence sync objects have nearly identical semantics to those defined by the KHR_fence_sync extension, except that they have an additional attribute storing the file descriptor referring to the native fence object.
This extension assumes the existence of a native fence synchronization object that behaves similarly to an EGL fence sync object. These native objects must have a signal status like that of an EGLSyncKHR object that indicates whether the fence has ever been signaled. Once signaled the native object’s signal status may not change again.
Note#
Requires EGL 1.1
This extension is written against the wording of the EGL 1.2 Specification.
EGL_KHR_fence_sync is required.
Registry Link#
https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
Example#
//===============
// Process A:
//===============
EGLSyncKHR eglSyncKHR = eglCreateSyncKHR(eglDisplay, EGL_SYNC_REUSABLE_KHR, NULL);
EGLint FileDescriptor = eglDupNativeFenceFDANDROID(eglDisplay, eglSyncKHR);
//===============
// Process B:
//===============
EGLint attrs[] = {
EGL_SYNC_NATIVE_FENCE_FD_ANDROID, FileDescriptor,
EGL_SYNC_CONDITION_KHR, EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID
EGL_NONE,
};
EGLSyncKHR eglSyncKHR = eglCreateSyncKHR(eglDisplay, EGL_SYNC_NATIVE_FENCE_ANDROID, attrs);
eglClientWaitSyncKHR(eglDisplay, eglSyncKHR, 0, EGL_FOREVER_KHR);