[Mesa-dev] [PATCH 2/3] mesa: Add support for the ARB_pipeline_statistics_query extension
Ilia Mirkin
imirkin at alum.mit.edu
Tue Feb 17 16:37:44 PST 2015
On Tue, Feb 17, 2015 at 7:21 PM, Ben Widawsky
<benjamin.widawsky at intel.com> wrote:
> On Tue, Feb 17, 2015 at 11:41:01AM -0800, Ian Romanick wrote:
>> On 02/13/2015 11:02 PM, Ben Widawsky wrote:
>> > This was originally part of a single patch which added the extension, and
>> > implemented it for i965 classic. For information about the evolution of the
>> > patch, please see the subsequent commit.
>> >
>> > One difference here as compared to the original mega patch is this does build
>> > support for the compute shader query. Since it cannot be tested on any platform,
>> > it will always return NULL for now. Jordan has already written a patch to
>> > address this, and when that patch lands, this logic can be modified. Tesselation
>> > shader support still won't build, so it's stubbed out.
>> >
>> > v2: Fix typo in subject (Brian Paul)
>> > Add checks for desktop gl (Ilia)
>> > Fail for any callers for now (Ilia)
>> > Update QueryCounterBits for new tokens (Ilia)
>> > Jordan: Use _mesa_has_compute_shaders
>> >
>> > Cc: Jordan Justen <jljusten at gmail.com>
>> > Cc: Ilia Mirkin <imirkin at alum.mit.edu>
>> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
>> > ---
>> > .../glapi/gen/ARB_pipeline_statistics_query.xml | 24 ++++++
>> > src/mapi/glapi/gen/Makefile.am | 1 +
>> > src/mapi/glapi/gen/gl_API.xml | 3 +
>> > src/mesa/main/config.h | 3 +
>> > src/mesa/main/extensions.c | 1 +
>> > src/mesa/main/mtypes.h | 15 ++++
>> > src/mesa/main/queryobj.c | 91 ++++++++++++++++++++++
>> > 7 files changed, 138 insertions(+)
>> > create mode 100644 src/mapi/glapi/gen/ARB_pipeline_statistics_query.xml
>> >
>> > diff --git a/src/mapi/glapi/gen/ARB_pipeline_statistics_query.xml b/src/mapi/glapi/gen/ARB_pipeline_statistics_query.xml
>> > new file mode 100644
>> > index 0000000..1c66533
>> > --- /dev/null
>> > +++ b/src/mapi/glapi/gen/ARB_pipeline_statistics_query.xml
>> > @@ -0,0 +1,24 @@
>> > +<?xml version="1.0"?>
>> > +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
>> > +
>> > +<!-- Note: no GLX protocol info yet. -->
>> > +
>> > +<OpenGLAPI>
>> > +
>> > +<category name="GL_ARB_pipeline_statistics_query" number="171">
>> > +
>> > + <enum name="VERTICES_SUBMITTED" value="0x82EE"/>
>> > + <enum name="PRIMITIVES_SUBMITTED" value="0x82EF"/>
>> > + <enum name="VERTEX_SHADER_INVOCATIONS" value="0x82F0"/>
>> > + <enum name="TESS_CONTROL_SHADER_PATCHES" value="0x82F1"/>
>> > + <enum name="TESS_EVALUATION_SHADER_INVOCATIONS" value="0x82F2"/>
>> > + <!-- <enum name="GEOMETRY_SHADER_INVOCATIONS" value="0x887F"/> -->
>> > + <enum name="GEOMETRY_SHADER_PRIMITIVES_EMITTED" value="0x82F3"/>
>> > + <enum name="FRAGMENT_SHADER_INVOCATIONS" value="0x82F4"/>
>> > + <enum name="COMPUTE_SHADER_INVOCATIONS" value="0x82F5"/>
>> > + <enum name="CLIPPING_INPUT_PRIMITIVES" value="0x82F6"/>
>> > + <enum name="CLIPPING_OUTPUT_PRIMITIVES" value="0x82F7"/>
>>
>> Aren't all of these supposed to have _ARB on the end?
>>
>
> I just copied the other ones which seemed to do a similar thing, and they did
> not have ARB. So, I think /not/ but you tell me.
>From the spec:
New Tokens
Accepted by the <target> parameter of BeginQuery, EndQuery, GetQueryiv,
BeginQueryIndexed, EndQueryIndexed and GetQueryIndexediv:
VERTICES_SUBMITTED_ARB 0x82EE
PRIMITIVES_SUBMITTED_ARB 0x82EF
VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
GEOMETRY_SHADER_INVOCATIONS 0x887F
GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
So I think Ian's right. Only GEOMETRY_SHADER_INVOCATIONS doesn't get
the _ARB suffix. Also looking at the Khronos GL headers, they also
only have the _ARB-suffixed versions there.
-ilia
More information about the mesa-dev
mailing list