[Mesa-dev] [PATCH v2 09/11] st/mesa: use the occlusion predicate query for GL_ANY_SAMPLES

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 4 16:54:37 UTC 2016


On Wed, Feb 3, 2016 at 9:11 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Wed, Feb 3, 2016 at 5:11 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> On Sun, Jan 31, 2016 at 9:56 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>> On Sun, Jan 31, 2016 at 3:32 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>>> This is supposed to return GL_TRUE or GL_FALSE, not the full counter
>>>> value.
>>>>
>>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>>> ---
>>>
>>> Errr... hm. Just realized many drivers will fail at this. Oh well,
>>> I'll drop it for now.
>>
>> Are you sure?
>
> Pretty sure. At the very least, nv30 doesn't support it. Definitely fixable.
>
>>
>> We might have to enable this eventually, because if apps use it, it
>> allows faster rendering than with OCCLUSION_COUNTER, because depth
>> test with depth-only rendering and no writes can run at HiZ rate
>> instead of pixel rate.
>
> Yeah, that makes sense. I think we just need to do a driver audit
> first, before enabling it.
>
>   -ilia

And of course this came back to bite me - one of the piglit tests is
failing, it's checking for true/false. I'm dropping this hunk back in
for the non-qbo case at the mesa/main level.

   if (q->Target == GL_ANY_SAMPLES_PASSED ||
       q->Target == GL_ANY_SAMPLES_PASSED_CONSERVATIVE)
      value = !!value;

I'm guessing other drivers might need it too. Ideally we should teach
all the drivers that support occlusion queries about the predicate
variant, and remove this wart.


More information about the mesa-dev mailing list