mesa: In conditional rendering fallback, check the query status.
authorEric Anholt <eric@anholt.net>
Mon, 6 Aug 2012 15:26:30 +0000 (08:26 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 8 Aug 2012 23:21:30 +0000 (16:21 -0700)
Otherwise, conditional rendering always takes the fallthrough "render it
anyway" case unless the application had itself done a check or wait on the
query.

Fixes intel oglconform's conditional_render advanced.nofbo.readpixels.

Reviewed-by: Brian Paul <brianp@vmware.com>
NOTE: This is a candidate for the 8.0 branch.

src/mesa/main/condrender.c

index 57f3715211d01e509165e865ec20bd0534b2b0de..bfd2b08180727494d7cd7d81c3095983a50a5ead 100644 (file)
@@ -139,6 +139,8 @@ _mesa_check_conditional_render(struct gl_context *ctx)
    case GL_QUERY_BY_REGION_NO_WAIT:
       /* fall-through */
    case GL_QUERY_NO_WAIT:
+      if (!q->Ready)
+         ctx->Driver.CheckQuery(ctx, q);
       return q->Ready ? (q->Result > 0) : GL_TRUE;
    default:
       _mesa_problem(ctx, "Bad cond render mode %s in "