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);