[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