Applications can benefit from accurate timing information in a number of different ways. During application development, timing information can help
identify application or driver bottlenecks. At run time, applications can use timing information to dynamically adjust the amount of detail in a scene
to achieve constant frame rates. OpenGL implementations have historically provided little to no useful timing information. Applications can get some
idea of timing by reading timers on the CPU, but these timers are not synchronized with the graphics rendering pipeline. Reading a CPU timer does not
guarantee the completion of a potentially large amount of graphics work accumulated before the timer is read, and will thus produce wildly inaccurate
results. Finish can be used to determine when previous rendering commands have been completed, but will idle the graphics pipeline and adversely
affect application performance.
This extension provides a query mechanism that can be used to determine the amount of time it takes to fully complete a set of GL commands, and without stalling the rendering pipeline. It uses the query object mechanisms first introduced in the occlusion query extension, which allow time intervals to be polled asynchronously by the application.
Promoted to core in OpenGL 3..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_TIME_ELAPSED
Accepted by the |
| public static final int | GL_TIMESTAMP
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | ||
|---|---|---|---|
| public static long | glGetQueryObjecti64(int
the name of a query object id, int the symbolic name of a query object parameter. One of: pname)
Returns the 64bit integer value of query object parameter. | ||
| public static void | glGetQueryObjecti64v(int
the name of a query object id, int the symbolic name of a query object parameter. One of: pname, LongBuffer
the requested data params)Returns the 64bit integer value of query object parameter. | ||
| public static void | glGetQueryObjecti64v(int
the name of a query object id, int the symbolic name of a query object parameter. One of: pname, long
the requested data params)Returns the 64bit integer value of query object parameter. | ||
| public static void | |||
| public static long | glGetQueryObjectui64(int
the name of a query object id, int the symbolic name of a query object parameter pname)Unsigned version of | ||
| public static void | glGetQueryObjectui64v(int
the name of a query object id, int the symbolic name of a query object parameter pname, LongBuffer the requested data params)Unsigned version of | ||
| public static void | glGetQueryObjectui64v(int
the name of a query object id, int the symbolic name of a query object parameter pname, long the requested data params)Unsigned version of | ||
| public static void | |||
| public static void | glQueryCounter(int
the name of a query object into which to record the GL time id, int the counter to query. Must be: target)
Records the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed. | ||
| public static void | |||
| public static void |
| GL_TIME_ELAPSED | back to summary |
|---|---|
| public static final int GL_TIME_ELAPSED Accepted by the | |
| GL_TIMESTAMP | back to summary |
|---|---|
| public static final int GL_TIMESTAMP Accepted by the | |
| ARBTimerQuery | back to summary |
|---|---|
| protected ARBTimerQuery() | |
| glGetQueryObjecti64 | back to summary | ||
|---|---|---|---|
| public static long glGetQueryObjecti64(int id, int pname) Returns the 64bit integer value of query object parameter.
| |||
| glGetQueryObjecti64v | back to summary | ||
|---|---|---|---|
| public static void glGetQueryObjecti64v(int id, int pname, LongBuffer params) Returns the 64bit integer value of query object parameter.
| |||
| glGetQueryObjecti64v | back to summary | ||
|---|---|---|---|
| public static void glGetQueryObjecti64v(int id, int pname, long params) Returns the 64bit integer value of query object parameter.
| |||
| glGetQueryObjecti64v | back to summary |
|---|---|
| public static void glGetQueryObjecti64v(int id, int pname, long[] params) Array version of: | |
| glGetQueryObjectui64 | back to summary |
|---|---|
| public static long glGetQueryObjectui64(int id, int pname) Unsigned version of
| |
| glGetQueryObjectui64v | back to summary |
|---|---|
| public static void glGetQueryObjectui64v(int id, int pname, LongBuffer params) Unsigned version of
| |
| glGetQueryObjectui64v | back to summary |
|---|---|
| public static void glGetQueryObjectui64v(int id, int pname, long params) Unsigned version of
| |
| glGetQueryObjectui64v | back to summary |
|---|---|
| public static void glGetQueryObjectui64v(int id, int pname, long[] params) Array version of: | |
| glQueryCounter | back to summary | |
|---|---|---|
| public static void glQueryCounter(int id, int target) Records the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.
| ||
| nglGetQueryObjecti64v | back to summary |
|---|---|
| public static void nglGetQueryObjecti64v(int id, int pname, long params) Unsafe version of: | |
| nglGetQueryObjectui64v | back to summary |
|---|---|
| public static void nglGetQueryObjectui64v(int id, int pname, long params) Unsafe version of: | |