• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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