| Name | |
| EXT_client_sync | |
| Name Strings | |
| EGL_EXT_client_sync | |
| Contributors | |
| Daniel Kartch | |
| Contacts | |
| Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com) | |
| Status | |
| Complete | |
| Version | |
| Version 2, April 20, 2018 | |
| Number | |
| EGL Extension #129 | |
| Extension type | |
| EGL display extension | |
| Dependencies | |
| Requires EGL_EXT_sync_reuse | |
| Overview | |
| The EGL_KHR_reusable_sync extension defines an EGL_SYNC_REUSABLE_KHR | |
| EGLSync type which is signaled and unsignaled by client events. The | |
| EGL_EXT_sync_reuse extension allows all EGLSyncs to become reusable. | |
| The signaling behavior associated with EGL_SYNC_REUSABLE_KHR is | |
| still desirable, but the name becomes misleading if all EGLSyncs can | |
| be reused. This extension defines an EGLSync type with equivalent | |
| behavior, separating the signaling mechanism from the reusability. | |
| New Procedures and Functions | |
| EGLBoolean eglClientSignalSyncEXT( | |
| EGLDisplay dpy, | |
| EGLSync sync, | |
| const EGLAttrib *attrib_list); | |
| New Types | |
| None | |
| New Tokens | |
| Accepted by the <type> parameter of eglCreateSync, and returned | |
| in <value> when eglGetSyncAttrib is called with <attribute> | |
| EGL_SYNC_TYPE: | |
| EGL_SYNC_CLIENT_EXT 0x3364 | |
| Returned in <value> when eglGetSyncAttrib is called with attribute | |
| EGL_SYNC_CONDITION: | |
| EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 | |
| Add to the list of sync object decriptions in 3.8.1 Sync Objects | |
| A <client sync object> reflects the readiness of some client-side | |
| state. Sync objects of this type are not visible to API contexts and | |
| may not be used with eglWaitSync. They may be waited for with | |
| eglClientWaitSync or polled with eglGetSyncAttrib as other sync | |
| types. | |
| Add to the end of 3.8.1 Sync Objects | |
| The command | |
| EGLBoolean eglClientSignalSyncEXT(EGLDisplay dpy, EGLSync sync, | |
| const EGLAttrib *attrib_list); | |
| may be called to switch sync objects which support it to the | |
| signaled state. Currently only sync objects with type | |
| EGL_SYNC_CLIENT_EXT provide this support. The attribute list may be | |
| used to provide additional information to the signaling operation, | |
| as defined for the sync type. | |
| Errors | |
| eglClientSignalSyncEXT returns EGL_FALSE on failure, and has no | |
| effect on <sync>. | |
| If <dpy> is not the name of a valid, initialized EGLDisplay, an | |
| EGL_BAD_DISPLAY error is generated. | |
| If <sync> is not a valid sync object associated with <dpy>, an | |
| EGL_BAD_PARAMETER error is generated. | |
| If <attrib_list> contains an attribute name not defined for the | |
| type of <sync>, an EGL_BAD_ATTRIBUTE error is generated. | |
| If <sync>'s type does not support this direct signaling, an | |
| EGL_BAD_ACCESS error is generated. | |
| Insert new subsection in 3.8.1 Sync Objects | |
| 3.8.1.x Creating and Signaling Client Sync Objects | |
| If type is EGL_SYNC_CLIENT_EXT, a client sync object is created. The | |
| EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED | |
| or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other | |
| attributes may be specified for a client sync object. The value of | |
| EGL_SYNC_CONDITION will be set to EGL_SYNC_CLIENT_SIGNAL_EXT. | |
| A client sync object in the unsignaled state will switch to the | |
| signaled state when eglClientSignalSyncEXT is called. No attributes | |
| are supported for signaling a sync object of this type. Signaling a | |
| client sync object which is already in the signaled state will have | |
| no effect. | |
| A client sync object which is in the signaled state may be switched | |
| back to the unsignaled state with eglUnsignalSyncEXT. No attributes | |
| are supported for unsignaling a sync object of this type. | |
| Add to the error list for eglWaitSync in 3.8.1.3 Waiting for Sync | |
| Objects | |
| If <sync> is of type EGL_SYNC_CLIENT_EXT, an EGL_BAD_ACCESS error is | |
| generated. | |
| Issues | |
| None | |
| Revision History | |
| #2 (April 20, 2018) Daniel Kartch | |
| - Renamed to EXT | |
| - Fixed missing attrib_list in New Functions section | |
| - Eliminated condition as an allowed attribute at creation. This | |
| is inconsistent with other sync extensions, and there is no | |
| need to make it configurable at this time. Future extensions | |
| can make the condition configurable if desired. | |
| #1 (Feburary 22, 2018) Daniel Kartch | |
| - Initial draft as XXX |