[Mesa-dev] [PATCH 10/11] mesa: Return error if BeginQuery is called with an existing object of different type

Eduardo Lima Mitev elima at igalia.com
Thu Feb 26 11:37:38 PST 2015


On 02/10/2015 06:34 PM, Ian Romanick wrote:
> This patch is
> 
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> 
> We'll have to see if this breaks any applications...
> 

I have not merged this patch yet because a piglit test need to be
updated to avoid a regression. The piglit patch is here:

http://lists.freedesktop.org/archives/piglit/2015-February/014789.html

I will appreciate if someone can take a look.

Eduardo

> On 02/10/2015 07:40 AM, Eduardo Lima Mitev wrote:
>> Section 2.14 Asynchronous Queries, page 84 of the OpenGL ES 3.0.4
>> spec states:
>>
>>   "BeginQuery generates an INVALID_OPERATION error if any of the
>>    following conditions hold: [...] id is the name of an
>>    existing query object whose type does not match target; [...]
>>
>> Similar wording exists in the OpenGL 4.5 spec, section 4.2. QUERY
>> OBJECTS AND ASYNCHRONOUS QUERIES, page 43.
>>
>> Fixes 1 dEQP test:
>> * dEQP-GLES3.functional.negative_api.fragment.begin_query
>> ---
>>  src/mesa/main/queryobj.c | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c
>> index 8ce899f..6b4a58b 100644
>> --- a/src/mesa/main/queryobj.c
>> +++ b/src/mesa/main/queryobj.c
>> @@ -361,6 +361,22 @@ _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id)
>>                       "glBeginQuery{Indexed}(query already active)");
>>           return;
>>        }
>> +
>> +      /* Section 2.14 Asynchronous Queries, page 84 of the OpenGL ES 3.0.4
>> +       * spec states:
>> +       *
>> +       *     "BeginQuery generates an INVALID_OPERATION error if any of the
>> +       *      following conditions hold: [...] id is the name of an
>> +       *      existing query object whose type does not match target; [...]
>> +       *
>> +       * Similar wording exists in the OpenGL 4.5 spec, section 4.2. QUERY
>> +       * OBJECTS AND ASYNCHRONOUS QUERIES, page 43.
>> +       */
>> +      if (q->EverBound && q->Target != target) {
>> +         _mesa_error(ctx, GL_INVALID_OPERATION,
>> +                     "glBeginQuery{Indexed}(target mismatch)");
>> +         return;
>> +      }
>>     }
>>  
>>     q->Target = target;
>>
> 
> 



More information about the mesa-dev mailing list