Class INTELPerformanceQuery

java.lang.Object
org.lwjgl.opengles.INTELPerformanceQuery

public class INTELPerformanceQuery extends Object
Native bindings to the INTEL_performance_query extension.

The purpose of this extension is to expose Intel proprietary hardware performance counters to the OpenGL applications. Performance counters may count:

  • number of hardware events such as number of spawned vertex shaders. In this case the results represent the number of events.
  • duration of certain activity, like time took by all fragment shader invocations. In that case the result usually represents the number of clocks in which the particular HW unit was busy. In order to use such counter efficiently, it should be normalized to the range of <0,1> by dividing its value by the number of render clocks.
  • used throughput of certain memory types such as texture memory. In that case the result of performance counter usually represents the number of bytes transferred between GPU and memory.

This extension specifies universal API to manage performance counters on different Intel hardware platforms. Performance counters are grouped together into proprietary, hardware-specific, fixed sets of counters that are measured together by the GPU.

It is assumed that performance counters are started and ended on any arbitrary boundaries during rendering.

A set of performance counters is represented by a unique query type. Each query type is identified by assigned name and ID. Multiple query types (sets of performance counters) are supported by the Intel hardware. However each Intel hardware generation supports different sets of performance counters. Therefore the query types between hardware generations can be different. The definition of query types and their results structures can be learned through the API. It is also documented in a separate document of Intel OGL Performance Counters Specification issued per each new hardware generation.

The API allows to create multiple instances of any query type and to sample different fragments of 3D rendering with such instances. Query instances are identified with handles.

  • Field Details

    • GL_PERFQUERY_SINGLE_CONTEXT_INTEL

      public static final int GL_PERFQUERY_SINGLE_CONTEXT_INTEL
      Returned by the capsMask parameter of GetPerfQueryInfoINTEL.
      See Also:
    • GL_PERFQUERY_GLOBAL_CONTEXT_INTEL

      public static final int GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
      Returned by the capsMask parameter of GetPerfQueryInfoINTEL.
      See Also:
    • GL_PERFQUERY_WAIT_INTEL

      public static final int GL_PERFQUERY_WAIT_INTEL
      Accepted by the flags parameter of GetPerfQueryDataINTEL.
      See Also:
    • GL_PERFQUERY_FLUSH_INTEL

      public static final int GL_PERFQUERY_FLUSH_INTEL
      Accepted by the flags parameter of GetPerfQueryDataINTEL.
      See Also:
    • GL_PERFQUERY_DONOT_FLUSH_INTEL

      public static final int GL_PERFQUERY_DONOT_FLUSH_INTEL
      Accepted by the flags parameter of GetPerfQueryDataINTEL.
      See Also:
    • GL_PERFQUERY_COUNTER_EVENT_INTEL

      public static final int GL_PERFQUERY_COUNTER_EVENT_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL

      public static final int GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL

      public static final int GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL

      public static final int GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_RAW_INTEL

      public static final int GL_PERFQUERY_COUNTER_RAW_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL

      public static final int GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
      Returned by GetPerfCounterInfoINTEL function as counter type enumeration in location pointed by counterTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL

      public static final int GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
      Returned by glGetPerfCounterInfoINTEL function as counter data type enumeration in location pointed by counterDataTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL

      public static final int GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
      Returned by glGetPerfCounterInfoINTEL function as counter data type enumeration in location pointed by counterDataTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL

      public static final int GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
      Returned by glGetPerfCounterInfoINTEL function as counter data type enumeration in location pointed by counterDataTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL

      public static final int GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
      Returned by glGetPerfCounterInfoINTEL function as counter data type enumeration in location pointed by counterDataTypeEnum.
      See Also:
    • GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL

      public static final int GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
      Returned by glGetPerfCounterInfoINTEL function as counter data type enumeration in location pointed by counterDataTypeEnum.
      See Also:
    • GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL

      public static final int GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
      Accepted by the pname parameter of GetIntegerv.
      See Also:
    • GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL

      public static final int GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
      Accepted by the pname parameter of GetIntegerv.
      See Also:
    • GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL

      public static final int GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
      Accepted by the pname parameter of GetIntegerv.
      See Also:
    • GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL

      public static final int GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
      Accepted by the pname parameter of GetBooleanv.
      See Also:
  • Method Details

    • glBeginPerfQueryINTEL

      public static void glBeginPerfQueryINTEL(int queryHandle)
    • nglCreatePerfQueryINTEL

      public static void nglCreatePerfQueryINTEL(int queryId, long queryHandle)
    • glCreatePerfQueryINTEL

      public static void glCreatePerfQueryINTEL(int queryId, IntBuffer queryHandle)
    • glCreatePerfQueryINTEL

      public static int glCreatePerfQueryINTEL(int queryId)
    • glDeletePerfQueryINTEL

      public static void glDeletePerfQueryINTEL(int queryHandle)
    • glEndPerfQueryINTEL

      public static void glEndPerfQueryINTEL(int queryHandle)
    • nglGetFirstPerfQueryIdINTEL

      public static void nglGetFirstPerfQueryIdINTEL(long queryId)
    • glGetFirstPerfQueryIdINTEL

      public static void glGetFirstPerfQueryIdINTEL(IntBuffer queryId)
    • glGetFirstPerfQueryIdINTEL

      public static int glGetFirstPerfQueryIdINTEL()
    • nglGetNextPerfQueryIdINTEL

      public static void nglGetNextPerfQueryIdINTEL(int queryId, long nextQueryId)
    • glGetNextPerfQueryIdINTEL

      public static void glGetNextPerfQueryIdINTEL(int queryId, IntBuffer nextQueryId)
    • glGetNextPerfQueryIdINTEL

      public static int glGetNextPerfQueryIdINTEL(int queryId)
    • nglGetPerfCounterInfoINTEL

      public static void nglGetPerfCounterInfoINTEL(int queryId, int counterId, int counterNameLength, long counterName, int counterDescLength, long counterDesc, long counterOffset, long counterDataSize, long counterTypeEnum, long counterDataTypeEnum, long rawCounterMaxValue)
    • glGetPerfCounterInfoINTEL

      public static void glGetPerfCounterInfoINTEL(int queryId, int counterId, ByteBuffer counterName, ByteBuffer counterDesc, IntBuffer counterOffset, IntBuffer counterDataSize, IntBuffer counterTypeEnum, IntBuffer counterDataTypeEnum, LongBuffer rawCounterMaxValue)
    • nglGetPerfQueryDataINTEL

      public static void nglGetPerfQueryDataINTEL(int queryHandle, int flags, int dataSize, long data, long bytesWritten)
    • glGetPerfQueryDataINTEL

      public static void glGetPerfQueryDataINTEL(int queryHandle, int flags, ByteBuffer data, IntBuffer bytesWritten)
    • nglGetPerfQueryIdByNameINTEL

      public static void nglGetPerfQueryIdByNameINTEL(long queryName, long queryId)
    • glGetPerfQueryIdByNameINTEL

      public static void glGetPerfQueryIdByNameINTEL(ByteBuffer queryName, IntBuffer queryId)
    • glGetPerfQueryIdByNameINTEL

      public static void glGetPerfQueryIdByNameINTEL(CharSequence queryName, IntBuffer queryId)
    • glGetPerfQueryIdByNameINTEL

      public static int glGetPerfQueryIdByNameINTEL(CharSequence queryName)
    • nglGetPerfQueryInfoINTEL

      public static void nglGetPerfQueryInfoINTEL(int queryId, int queryNameLength, long queryName, long dataSize, long noCounters, long noInstances, long capsMask)
    • glGetPerfQueryInfoINTEL

      public static void glGetPerfQueryInfoINTEL(int queryId, ByteBuffer queryName, IntBuffer dataSize, IntBuffer noCounters, IntBuffer noInstances, IntBuffer capsMask)
    • glCreatePerfQueryINTEL

      public static void glCreatePerfQueryINTEL(int queryId, int[] queryHandle)
      Array version of: CreatePerfQueryINTEL
    • glGetFirstPerfQueryIdINTEL

      public static void glGetFirstPerfQueryIdINTEL(int[] queryId)
      Array version of: GetFirstPerfQueryIdINTEL
    • glGetNextPerfQueryIdINTEL

      public static void glGetNextPerfQueryIdINTEL(int queryId, int[] nextQueryId)
      Array version of: GetNextPerfQueryIdINTEL
    • glGetPerfCounterInfoINTEL

      public static void glGetPerfCounterInfoINTEL(int queryId, int counterId, ByteBuffer counterName, ByteBuffer counterDesc, int[] counterOffset, int[] counterDataSize, int[] counterTypeEnum, int[] counterDataTypeEnum, long[] rawCounterMaxValue)
      Array version of: GetPerfCounterInfoINTEL
    • glGetPerfQueryDataINTEL

      public static void glGetPerfQueryDataINTEL(int queryHandle, int flags, ByteBuffer data, int[] bytesWritten)
      Array version of: GetPerfQueryDataINTEL
    • glGetPerfQueryIdByNameINTEL

      public static void glGetPerfQueryIdByNameINTEL(ByteBuffer queryName, int[] queryId)
      Array version of: GetPerfQueryIdByNameINTEL
    • glGetPerfQueryIdByNameINTEL

      public static void glGetPerfQueryIdByNameINTEL(CharSequence queryName, int[] queryId)
      Array version of: GetPerfQueryIdByNameINTEL
    • glGetPerfQueryInfoINTEL

      public static void glGetPerfQueryInfoINTEL(int queryId, ByteBuffer queryName, int[] dataSize, int[] noCounters, int[] noInstances, int[] capsMask)
      Array version of: GetPerfQueryInfoINTEL