diff options
Diffstat (limited to 'glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt')
-rw-r--r-- | glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt b/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt new file mode 100644 index 0000000..0b26508 --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt @@ -0,0 +1,132 @@ +Name + + NV_stream_flush + +Name Strings + + EGL_NV_stream_flush + +Contributors + + Santanu Thangaraj + Daniel Kartch + +Contacts + + Santanu Thangaraj, NVIDIA (sthangaraj 'at' nvidia.com) + +Status + + Draft + +Version + + Version 3 - April 11, 2018 + +Number + + 127 + +Extension Type + + EGL display extension + +Dependencies + + Requires the EGL_KHR_stream extension. + + Requires either the EGL_KHR_stream_cross_process_fd or + EGL_NV_stream_remote extensions. + + This extension is written based on the wording of version 27 of + the EGL_KHR_stream extension. + +Overview: + + The EGL_KHR_stream_cross_process_fd and EGL_NV_stream_remote + extensions do not guarantee that when the state of the EGLStream + object representing one endpoint of the stream changes, + the state of the other endpoint will immediately reflect + that change. Depending on the implementation, there may be some + latency in the propagation of state changes. + + This latency will not affect any applications which rely solely + on the stream itself for communication. State changes made on + one side will eventually be visible on the other side, + and can then be responded to. + + This only affects applications which use some additional means of + communication outside of the stream itself, which may encounter + race conditions. In particular, if an application inserts a frame + into a stream, then sends a message to the other side indicating + that the frame is ready, the other side may encounter an error if + it tries to acquire the frame and it is not yet available. + + One solution is to force all operations that change state of one + endpoint to behave synchronously, and not return until the change + is reflected on the other endpoint. However this adds undesirable + delays for the majority of applications and operations where such + synchronization is not required. This extension instead provides + a means for applications to explicitly invoke such + synchronization only where required. + +New types + + None + +New Procedures and functions + + EGLBoolean eglStreamFlushNV( + EGLDisplay dpy, + EGLStreamKHR stream); + +New Tokens + + None + +Add a new subsection "3.10.x EGLStream flush" at the end of section +"3.10 EGLStreams" in EGL_KHR_stream extension. + + The command + + EGLBoolean eglStreamFlushNV( + EGLDisplay dpy, + EGLStreamKHR stream); + + When called with either producer or consumer endpoint of the + stream, will block until any state changes made to this endpoint + prior to the call are visible on the EGLStream object of the other + endpoint. + + On success, EGL_TRUE will be returned. On failure, EGL_FALSE will + be returned and an error will be generated. + + - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid + EGLStream. + + - EGL_BAD_STATE_KHR is generated if <stream> is in + EGL_STREAM_STATE_DISCONNECTED_KHR state. + + - EGL_BAD_DISPLAY is generated if <dpy> is not a valid + EGLDisplay. + + - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized. + +Issues + + 1. When both producer and consumer are connected to a single + EGLStream object, what happens when eglStreamFlushNV is called? + + RESOLVED: The function returns without any blocking. + +Revision History + + #3 (April 11, 2018) Jon Leech + - Add missing NV suffix to eglStreamFlushNV + + #2 (April 2, 2018) Santanu Thangaraj + - Update based on comments from Daniel Kartch + - General cleanup + + #1 (March 26, 2018) Santanu Thangaraj + - Initial draft |