mesa: Throw an error for a new query on an already-active query target.

There's a similar test below, but it's not the same: that one checks whether
this query object is already active (potentially on another target).

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Eric Anholt
2012-10-16 17:21:39 -07:00
parent e755c1a36b
commit ce086ebd89

View File

@@ -301,6 +301,19 @@ _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id)
return;
}
/* From the GL_ARB_occlusion_query spec:
*
* "If BeginQueryARB is called while another query is already in
* progress with the same target, an INVALID_OPERATION error is
* generated."
*/
if (*bindpt) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glBeginQuery{Indexed}(target=%s is active)",
_mesa_lookup_enum_by_nr(target));
return;
}
if (id == 0) {
_mesa_error(ctx, GL_INVALID_OPERATION, "glBeginQuery{Indexed}(id==0)");
return;