This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The WebGL2RenderingContext.clientWaitSync()
method of the WebGL 2 API blocks and waits for a WebGLSync
object to become signaled or a given timeout to be passed.
Syntax
GLenum gl.clientWaitSync(sync, flags, timeout);
Parameters
sync
- A
WebGLSync
object on which to wait on. - flags
- A
GLbitfield
specifying a bitwise combination of flags controlling the flushing behavior. May begl.SYNC_FLUSH_COMMANDS_BIT
. - timeout
- A
GLint64
specifying a timeout (in nanoseconds) for which to wait for the sync object to become signaled. Must not be larger thangl.MAX_CLIENT_WAIT_TIMEOUT_WEBGL
.
Return value
A GLenum
indicating the sync object's status.
gl.ALREADY_SIGNALED
: Indicates that the sync object was signaled when this method was called.gl.TIMEOUT_EXPIRED
: Indicates that thetimeout
time passed and that the sync object did not become signaled.gl.CONDITION_SATISFIED
: Indicates that the sync object was signaled before thetimeout
expired.gl.WAIT_FAILED
: Indicates that an error occurred during the execution.
Examples
var sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0); var status = gl.clientWaitSync(sync, 0, 0);
Specifications
Specification | Status | Comment |
---|---|---|
WebGL 2.0 The definition of 'clientWaitSync' in that specification. |
Editor's Draft | Initial definition for WebGL. |
OpenGL ES 3.0 The definition of 'glClientWaitSync' in that specification. |
Standard | Man page of the (similar) OpenGL API. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | No support [2] | Nightly build [1] | No support | No support | No support |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | No support | No support | No support | No support | No support |
[1] WebGL 2 is enabled by default in Firefox Nightly. To enable it in a release version of Firefox, set the preference webgl.enable-prototype-webgl2
to true
in about:config.
[2] To use an experimental implementation of WebGL 2 in Chrome, you have to start Chrome with the runtime flag --enable-unsafe-es3-apis
.