[Mesa-dev] [PATCH 0/2] Extra check for GenQueriesARB and DeleteQueriesARB
Ian Romanick
idr at freedesktop.org
Thu Apr 7 18:27:34 UTC 2016
On 04/06/2016 10:29 PM, Ian Romanick wrote:
> On 04/06/2016 07:47 PM, Kenneth Graunke wrote:
>> On Tuesday, April 5, 2016 2:26:59 PM PDT kevin.rogovin at intel.com wrote:
>>> From: Kevin Rogovin <kevin.rogovin at intel.com>
>>>
>>> This patch sequence enforces an extra check
>>> for GenQueriesARB and DeleteQueriesARB that
>>> is not preset in GenQueries and DeleteQueries.
>>>
>>> Kevin Rogovin (2):
>>> Differentiate between GenQueries and GenQueriesARB
>>> Differentiate between DeleteQueries and DeleteQueriesARB
>>>
>>> src/mapi/glapi/gen/gl_API.xml | 4 ++--
>>> src/mesa/main/context.c | 1 +
>>> src/mesa/main/queryobj.c | 51 +++++++++++++++++++++++++++++++++++++
>> +-----
>>> src/mesa/main/queryobj.h | 4 ++++
>>> 4 files changed, 52 insertions(+), 8 deletions(-)
>>
>> NAK for the series.
>>
>> There is no reason to reject GenQueries during an active query - all it
>> does is create a name. It's completely harmless.
>>
>> You are correct that the ARB_occlusion_query specification does say that
>> an error should be generated. However, I believe the fact that no OpenGL
>> specification includes this error is because it was removed intentionally,
>> and should be treated as a clarification / bug fix.
>>
>> Khronos bug #7612 calls this a "bug fix", and mentions that the
>> specification was updated to match shipping implementations:
>> https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7612
>>
>> Also, making the ARB and non-ARB versions behave differently over an
>> error that nobody wants seems pretty asinine, IMO.
>>
>> For reference, we removed this error in commit
>> 29996e219912fb1fdf35a6595d8f6261384a18dc.
>
> As far as I can tell neither NVIDIA nor AMD generate this error either.
> In fact, NVIDIA uses the same GLX protocol for the ARB and core
> functions making it impossible to have different behavior for the ARB
> and core functions in indirect contexts.
>
> See also Khronos bug #9885.
See also this snippet from gl.xml:
<command>
<proto>void <name>glBeginQuery</name></proto>
<param><ptype>GLenum</ptype> <name>target</name></param>
<param><ptype>GLuint</ptype> <name>id</name></param>
<glx type="render" opcode="231"/>
</command>
<command>
<proto>void <name>glBeginQueryARB</name></proto>
<param><ptype>GLenum</ptype> <name>target</name></param>
<param><ptype>GLuint</ptype> <name>id</name></param>
<alias name="glBeginQuery"/>
</command>
Between this and the aforementioned Khronos bugs, I would argue that any
driver that provides different behavior for glBeginQuery and
glBeginQueryARB is wrong. They have the same GLX protocol, so it is
impossible to differentiate between them for indirect rendering.
If you think this is not correct, you'll have to submit a bug to Khronos
and take it up there.
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160407/4605908c/attachment-0001.sig>
More information about the mesa-dev
mailing list