Class ARBTimerQuery



  • public class ARBTimerQuery
    extends java.lang.Object
    Native bindings to the ARB_timer_query extension.

    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.3.

    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static int GL_TIME_ELAPSED
      Accepted by the target parameter of BeginQuery, EndQuery, and GetQueryiv.
      static int GL_TIMESTAMP
      Accepted by the target parameter of GetQueryiv and QueryCounter.
    • Field Detail

      • GL_TIME_ELAPSED

        public static final int GL_TIME_ELAPSED
        Accepted by the target parameter of BeginQuery, EndQuery, and GetQueryiv.
        See Also:
        Constant Field Values
      • GL_TIMESTAMP

        public static final int GL_TIMESTAMP
        Accepted by the target parameter of GetQueryiv and QueryCounter. Accepted by the value parameter of GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev.
        See Also:
        Constant Field Values
    • Method Detail

      • glQueryCounter

        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.
        Parameters:
        id - the name of a query object into which to record the GL time
        target - the counter to query. Must be:
        TIMESTAMP
      • glGetQueryObjecti64v

        public static void glGetQueryObjecti64v(int id,
                                                int pname,
                                                java.nio.LongBuffer params)
        Returns the 64bit integer value of query object parameter.
        Parameters:
        id - the name of a query object
        pname - the symbolic name of a query object parameter. One of:
        QUERY_RESULTQUERY_RESULT_AVAILABLE
        params - the requested data
      • glGetQueryObjecti64

        public static long glGetQueryObjecti64(int id,
                                               int pname)
        Returns the 64bit integer value of query object parameter.
        Parameters:
        id - the name of a query object
        pname - the symbolic name of a query object parameter. One of:
        QUERY_RESULTQUERY_RESULT_AVAILABLE
      • glGetQueryObjectui64v

        public static void glGetQueryObjectui64v(int id,
                                                 int pname,
                                                 java.nio.LongBuffer params)
        Unsigned version of GetQueryObjecti64v.
        Parameters:
        id - the name of a query object
        pname - the symbolic name of a query object parameter
        params - the requested data
      • glGetQueryObjectui64

        public static long glGetQueryObjectui64(int id,
                                                int pname)
        Unsigned version of GetQueryObjecti64v.
        Parameters:
        id - the name of a query object
        pname - the symbolic name of a query object parameter
      • glGetQueryObjecti64v

        public static void glGetQueryObjecti64v(int id,
                                                int pname,
                                                long[] params)
        Array version of: GetQueryObjecti64v
      • glGetQueryObjectui64v

        public static void glGetQueryObjectui64v(int id,
                                                 int pname,
                                                 long[] params)
        Array version of: GetQueryObjectui64v