1Name 2 3 EXT_client_sync 4 5Name Strings 6 7 EGL_EXT_client_sync 8 9Contributors 10 11 Daniel Kartch 12 13Contacts 14 15 Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com) 16 17Status 18 19 Complete 20 21Version 22 23 Version 2, April 20, 2018 24 25Number 26 27 EGL Extension #129 28 29Extension type 30 31 EGL display extension 32 33Dependencies 34 35 Requires EGL_EXT_sync_reuse 36 37Overview 38 39 The EGL_KHR_reusable_sync extension defines an EGL_SYNC_REUSABLE_KHR 40 EGLSync type which is signaled and unsignaled by client events. The 41 EGL_EXT_sync_reuse extension allows all EGLSyncs to become reusable. 42 The signaling behavior associated with EGL_SYNC_REUSABLE_KHR is 43 still desirable, but the name becomes misleading if all EGLSyncs can 44 be reused. This extension defines an EGLSync type with equivalent 45 behavior, separating the signaling mechanism from the reusability. 46 47New Procedures and Functions 48 49 EGLBoolean eglClientSignalSyncEXT( 50 EGLDisplay dpy, 51 EGLSync sync, 52 const EGLAttrib *attrib_list); 53 54New Types 55 56 None 57 58New Tokens 59 60 Accepted by the <type> parameter of eglCreateSync, and returned 61 in <value> when eglGetSyncAttrib is called with <attribute> 62 EGL_SYNC_TYPE: 63 64 EGL_SYNC_CLIENT_EXT 0x3364 65 66 Returned in <value> when eglGetSyncAttrib is called with attribute 67 EGL_SYNC_CONDITION: 68 69 EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 70 71Add to the list of sync object decriptions in 3.8.1 Sync Objects 72 73 A <client sync object> reflects the readiness of some client-side 74 state. Sync objects of this type are not visible to API contexts and 75 may not be used with eglWaitSync. They may be waited for with 76 eglClientWaitSync or polled with eglGetSyncAttrib as other sync 77 types. 78 79Add to the end of 3.8.1 Sync Objects 80 81 The command 82 83 EGLBoolean eglClientSignalSyncEXT(EGLDisplay dpy, EGLSync sync, 84 const EGLAttrib *attrib_list); 85 86 may be called to switch sync objects which support it to the 87 signaled state. Currently only sync objects with type 88 EGL_SYNC_CLIENT_EXT provide this support. The attribute list may be 89 used to provide additional information to the signaling operation, 90 as defined for the sync type. 91 92 Errors 93 94 eglClientSignalSyncEXT returns EGL_FALSE on failure, and has no 95 effect on <sync>. 96 If <dpy> is not the name of a valid, initialized EGLDisplay, an 97 EGL_BAD_DISPLAY error is generated. 98 If <sync> is not a valid sync object associated with <dpy>, an 99 EGL_BAD_PARAMETER error is generated. 100 If <attrib_list> contains an attribute name not defined for the 101 type of <sync>, an EGL_BAD_ATTRIBUTE error is generated. 102 If <sync>'s type does not support this direct signaling, an 103 EGL_BAD_ACCESS error is generated. 104 105Insert new subsection in 3.8.1 Sync Objects 106 107 3.8.1.x Creating and Signaling Client Sync Objects 108 109 If type is EGL_SYNC_CLIENT_EXT, a client sync object is created. The 110 EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED 111 or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other 112 attributes may be specified for a client sync object. The value of 113 EGL_SYNC_CONDITION will be set to EGL_SYNC_CLIENT_SIGNAL_EXT. 114 115 A client sync object in the unsignaled state will switch to the 116 signaled state when eglClientSignalSyncEXT is called. No attributes 117 are supported for signaling a sync object of this type. Signaling a 118 client sync object which is already in the signaled state will have 119 no effect. 120 121 A client sync object which is in the signaled state may be switched 122 back to the unsignaled state with eglUnsignalSyncEXT. No attributes 123 are supported for unsignaling a sync object of this type. 124 125Add to the error list for eglWaitSync in 3.8.1.3 Waiting for Sync 126Objects 127 128 If <sync> is of type EGL_SYNC_CLIENT_EXT, an EGL_BAD_ACCESS error is 129 generated. 130 131Issues 132 133 None 134 135Revision History 136 137 #2 (April 20, 2018) Daniel Kartch 138 - Renamed to EXT 139 - Fixed missing attrib_list in New Functions section 140 - Eliminated condition as an allowed attribute at creation. This 141 is inconsistent with other sync extensions, and there is no 142 need to make it configurable at this time. Future extensions 143 can make the condition configurable if desired. 144 145 #1 (Feburary 22, 2018) Daniel Kartch 146 - Initial draft as XXX 147