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

Ian Romanick idr at freedesktop.org
Tue Feb 10 09:34:25 PST 2015


This patch is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

We'll have to see if this breaks any applications...

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