The EXT_disjoint_timer_query extension is part of the WebGL API and provides a way to measure the duration of a set of GL commands, without stalling the rendering pipeline.
WebGL extensions are available using the WebGLRenderingContext.getExtension()
method. For more information, see also Using Extensions in the WebGL tutorial.
Availability: This extension should be available in WebGL1 contexts only.
is available in WebGL 2 contexts .disjoint_timer_query_webgl2
In WebGL 2, the getQueryObject
was renamed to getQueryParameter
.
In WebGL 2, other queries (such as occlusion queries and primitive queries) are possible using WebGLQuery
objects.
Types
This extension exposes a new type:
- GLuint64EXT
- Unsigned 64-bit integer number.
Constants
This extension exposes seven new constants.
ext.QUERY_COUNTER_BITS_EXT
- A
GLint
indicating the number of bits used to hold the query result for the given target. ext.CURRENT_QUERY_EXT
- A
WebGLQuery
object, which is the currently active query for the given target. ext.QUERY_RESULT_EXT
- A
GLuint64EXT
containing the query result. ext.QUERY_RESULT_AVAILABLE_EXT
- A
GLboolean
indicating whether or not a query result is available. ext.TIME_ELAPSED_EXT
- Elapsed time (in nanoseconds).
ext.TIMESTAMP_EXT
- The current time.
ext.GPU_DISJOINT_EXT
- A
GLboolean
indicating whether or not the GPU performed any disjoint operation.
Methods
This extension exposes eight new methods.
ext.createQueryEXT()
-
Creates a new
WebGLQuery
. ext.deleteQueryEXT()
-
Deletes a given
WebGLQuery
. ext.isQueryEXT()
-
Returns
true
if a given object is aWebGLQuery
. ext.beginQueryEXT()
- The timer starts when all commands prior to
beginQueryEXT
have been fully executed. ext.endQueryEXT()
- The timer stops when all commands prior to
endQueryEXT
have been fully executed. ext.queryCounterEXT()
-
Records the current time into the corresponding query object.
ext.getQueryEXT()
- Returns information about a query target.
ext.getQueryObjectEXT()
- Return the state of a query object.
Examples
var ext = gl.getExtension('EXT_disjoint_timer_query');
Specifications
Specification | Status | Comment |
---|---|---|
EXT_disjoint_timer_query The definition of 'EXT_disjoint_timer_query' in that specification. |
Working Draft | Initial definition. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
beginQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
createQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
deleteQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
endQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
getQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
getQueryObjectEXT | 47 | 51.0 | (No) | ? | ? | ? |
isQueryEXT | 47 | 51.0 | (No) | ? | ? | ? |
queryCounterEXT | 47 | 51.0 | (No) | ? | ? | ? |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
beginQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
createQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
deleteQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
endQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
getQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
getQueryObjectEXT | ? | 47 | (No) | (No) | ? | ? | ? |
isQueryEXT | ? | 47 | (No) | (No) | ? | ? | ? |
queryCounterEXT | ? | 47 | (No) | (No) | ? | ? | ? |