[Piglit] [PATCH 6/7] ARB_pipeline_statistics_query (frag): basic test

Alex Deucher alexdeucher at gmail.com
Mon Feb 16 11:14:41 PST 2015


On Sat, Feb 14, 2015 at 2:21 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Sat, Feb 14, 2015 at 2:11 AM, Ben Widawsky
> <benjamin.widawsky at intel.com> wrote:
>> On Sat, Feb 14, 2015 at 02:07:32AM -0500, Ilia Mirkin wrote:
>>> On Sat, Feb 14, 2015 at 1:54 AM, Ben Widawsky
>>> <benjamin.widawsky at intel.com> wrote:
>>> > +static struct query queries[] = {
>>> > +       {
>>> > +        .query = GL_FRAGMENT_SHADER_INVOCATIONS_ARB,
>>> > +        .name = "GL_FRAGMENT_SHADER_INVOCATIONS_ARB",
>>> > +        .min = TEST_WIDTH * TEST_HEIGHT / 2,
>>> > +        .max = 0xffffffff},
>>> > +       /* XXX:
>>> > +        * Intel hardware has some very unpredictable results for fragment
>>> > +        * shader invocations. After a day of head scratching, I've given up.
>>> > +        * Generating a real min, or max is not possible. The spec allows this.
>>> > +        * This will also help variance across vendors.
>>> > +        */
>>>
>>> Is there a working theory as to how this could be less than width *
>>> height? Does it count 1 per quad? (Or how it could be much more than
>>> width * height... I can see edges getting processed unnecessarily,
>>> but... max_int seems high.)
>>
>> No working theory on min, but I figured if we're going to fudge the max, we may
>> as well fudge the min. What would you like as a max? I can show you hardware
>> which generates way more invocations than anything I can contrive. 1440
>> invocations for an 8x8.
>
> Impressive :)
>
> Best I can do is suggest that I don't think you're counting what you
> think you're counting. This has probably occurred to you, but you
> really should triple-check that you're reading (and writing) from the
> right place for this counter.
>

I echo this sentiment.  You might also check if there are any
additional state bits related to counts.  For example, IIRC, on radeon
hw there is some additional state you need to set to get accurate
counts for occlusion queries.

Alex


More information about the Piglit mailing list