summaryrefslogtreecommitdiff
path: root/src/mapi
diff options
context:
space:
mode:
authorPetri Latvala <petri.latvala@intel.com>2014-04-23 11:08:52 +0300
committerIan Romanick <ian.d.romanick@intel.com>2014-05-02 10:07:04 -0700
commitdac82ceac5d726ff8851051f671396cfbd1abc63 (patch)
treebdc4d8190e5fbe5d82990a5fa06ead42838c6ea4 /src/mapi
parent6ccb98e88c3589dd8f09737ea0c47682bb19e4d3 (diff)
mesa: Add core support for the GL_INTEL_performance_query extension.
Like AMD_performance_monitor, this extension provides an interface for applications (and OpenGL-based tools) to access GPU performance counters. Since the exact performance counters available vary between vendors and hardware generations, the extension provides an API the application can use to get the names, types, and minimum/maximum values of all available counters. Applications create performance queries based on available query types, and begin/end measurement collection. Multiple queries can be measuring simultaneously. v2: Whitespace changes v3: src/mapi/glapi/gen/gl_API.xml: Also expose the functions to GLES2. v4: Whitespace changes, static_dispatch="false" for all functions, fix dispatch_sanity test for GLES2 functions Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/mapi')
-rw-r--r--src/mapi/glapi/gen/INTEL_performance_query.xml93
-rw-r--r--src/mapi/glapi/gen/Makefile.am1
-rw-r--r--src/mapi/glapi/gen/gl_API.xml2
3 files changed, 96 insertions, 0 deletions
diff --git a/src/mapi/glapi/gen/INTEL_performance_query.xml b/src/mapi/glapi/gen/INTEL_performance_query.xml
new file mode 100644
index 0000000000..25cd1817f5
--- /dev/null
+++ b/src/mapi/glapi/gen/INTEL_performance_query.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+
+<category name="GL_INTEL_performance_query" number="443">
+
+ <function name="GetFirstPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryId" type="GLuint *"/>
+ </function>
+
+ <function name="GetNextPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryId" type="GLuint"/>
+ <param name="nextQueryId" type="GLuint *"/>
+ </function>
+
+ <function name="GetPerfQueryIdByNameINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryName" type="GLchar *"/>
+ <param name="queryId" type="GLuint *"/>
+ </function>
+
+ <function name="GetPerfQueryInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryId" type="GLuint"/>
+ <param name="queryNameLength" type="GLuint"/>
+ <param name="queryName" type="GLchar *"/>
+ <param name="dataSize" type="GLuint *"/>
+ <param name="noCounters" type="GLuint *"/>
+ <param name="noInstances" type="GLuint *"/>
+ <param name="capsMask" type="GLuint *"/>
+ </function>
+
+ <function name="GetPerfCounterInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryId" type="GLuint"/>
+ <param name="counterId" type="GLuint"/>
+ <param name="counterNameLength" type="GLuint"/>
+ <param name="counterName" type="GLchar *"/>
+ <param name="counterDescLength" type="GLuint"/>
+ <param name="counterDesc" type="GLchar *"/>
+ <param name="counterOffset" type="GLuint *"/>
+ <param name="counterDataSize" type="GLuint *"/>
+ <param name="counterTypeEnum" type="GLuint *"/>
+ <param name="counterDataTypeEnum" type="GLuint *"/>
+ <param name="rawCounterMaxValue" type="GLuint64 *"/>
+ </function>
+
+ <function name="CreatePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryId" type="GLuint"/>
+ <param name="queryHandle" type="GLuint *"/>
+ </function>
+
+ <function name="DeletePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryHandle" type="GLuint"/>
+ </function>
+
+ <function name="BeginPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryHandle" type="GLuint"/>
+ </function>
+
+ <function name="EndPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryHandle" type="GLuint"/>
+ </function>
+
+ <function name="GetPerfQueryDataINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <param name="queryHandle" type="GLuint"/>
+ <param name="flags" type="GLuint"/>
+ <param name="dataSize" type="GLsizei"/>
+ <param name="data" type="GLvoid *"/>
+ <param name="bytesWritten" type="GLuint *"/>
+ </function>
+
+ <enum name="PERFQUERY_SINGLE_CONTEXT_INTEL" value="0x0000"/>
+ <enum name="PERFQUERY_GLOBAL_CONTEXT_INTEL" value="0x0001"/>
+ <enum name="PERFQUERY_WAIT_INTEL" value="0x83FB"/>
+ <enum name="PERFQUERY_FLUSH_INTEL" value="0x83FA"/>
+ <enum name="PERFQUERY_DONOT_FLUSH_INTEL" value="0x83F9"/>
+ <enum name="PERFQUERY_COUNTER_EVENT_INTEL" value="0x94F0"/>
+ <enum name="PERFQUERY_COUNTER_DURATION_NORM_INTEL" value="0x94F1"/>
+ <enum name="PERFQUERY_COUNTER_DURATION_RAW_INTEL" value="0x94F2"/>
+ <enum name="PERFQUERY_COUNTER_THROUGHPUT_INTEL" value="0x94F3"/>
+ <enum name="PERFQUERY_COUNTER_RAW_INTEL" value="0x94F4"/>
+ <enum name="PERFQUERY_COUNTER_TIMESTAMP_INTEL" value="0x94F5"/>
+ <enum name="PERFQUERY_COUNTER_DATA_UINT32_INTEL" value="0x94F8"/>
+ <enum name="PERFQUERY_COUNTER_DATA_UINT64_INTEL" value="0x94F9"/>
+ <enum name="PERFQUERY_COUNTER_DATA_FLOAT_INTEL" value="0x94FA"/>
+ <enum name="PERFQUERY_COUNTER_DATA_DOUBLE_INTEL" value="0x94FB"/>
+ <enum name="PERFQUERY_COUNTER_DATA_BOOL32_INTEL" value="0x94FC"/>
+ <enum name="PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL" value="0x94FD"/>
+ <enum name="PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL" value="0x94FE"/>
+ <enum name="PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL" value="0x94FF"/>
+ <enum name="PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL" value="0x9500"/>
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index 35cf924da0..6f36989bcc 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -172,6 +172,7 @@ API_XML = \
EXT_texture_array.xml \
EXT_texture_integer.xml \
EXT_transform_feedback.xml \
+ INTEL_performance_query.xml \
KHR_debug.xml \
NV_conditional_render.xml \
NV_primitive_restart.xml \
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 46640397bc..d6f9b57877 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -12812,6 +12812,8 @@
<enum name="SKIP_DECODE_EXT" value="0x8A4A"/>
</category>
+<xi:include href="INTEL_performance_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<!-- Unnumbered extensions sorted by name. -->
<category name="GL_ATI_blend_equation_separate">