mesa: Fix error code generation in glBeginConditionalRender()
authorAnuj Phogat <anuj.phogat@gmail.com>
Thu, 12 Dec 2013 22:34:27 +0000 (14:34 -0800)
committerAnuj Phogat <anuj.phogat@gmail.com>
Fri, 13 Dec 2013 19:13:25 +0000 (11:13 -0800)
This patch changes the error condition to satisfy below statement
from OpenGL 4.3 core specification:
"An INVALID_OPERATION error is generated if id is the name of a query
object with a target other SAMPLES_PASSED, ANY_SAMPLES_PASSED, or
ANY_SAMPLES_PASSED_CONSERVATIVE, or if id is the name of a query
currently in progress."

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/condrender.c

index 3d9b0eca1ab4d8edd1390161853541486cdb96a4..2632f7a1a37fb4638f03765dfc6cd8df7b4d66dd 100644 (file)
@@ -72,7 +72,9 @@ _mesa_BeginConditionalRender(GLuint queryId, GLenum mode)
    }
    ASSERT(q->Id == queryId);
 
-   if (q->Target != GL_SAMPLES_PASSED || q->Active) {
+   if ((q->Target != GL_SAMPLES_PASSED &&
+        q->Target != GL_ANY_SAMPLES_PASSED &&
+        q->Target != GL_ANY_SAMPLES_PASSED_CONSERVATIVE) || q->Active) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "glBeginConditionalRender()");
       return;
    }