st/mesa: conditional rendering should not kill texture decompression via blit
authorMarek Olšák <maraeo@gmail.com>
Sun, 29 May 2011 16:20:36 +0000 (18:20 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 30 May 2011 08:51:03 +0000 (10:51 +0200)
NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_cb_texture.c

index c7c4da684180a03a94a02230d66ecba623919f56..88f62902b25d321d88539dd676a2e4f43bdf6efc 100644 (file)
@@ -795,6 +795,11 @@ decompress_with_blit(struct gl_context * ctx, GLenum target, GLint level,
       return;
    }
 
+   /* Disable conditional rendering. */
+   if (st->render_condition) {
+      pipe->render_condition(pipe, NULL, 0);
+   }
+
    /* blit/render/decompress */
    util_blit_pixels_tex(st->blit,
                         src_view,      /* pipe_resource (src) */
@@ -806,6 +811,12 @@ decompress_with_blit(struct gl_context * ctx, GLenum target, GLint level,
                         0.0,              /* z */
                         PIPE_TEX_MIPFILTER_NEAREST);
 
+   /* Restore conditional rendering state. */
+   if (st->render_condition) {
+      pipe->render_condition(pipe, st->render_condition,
+                             st->condition_mode);
+   }
+
    /* map the dst_surface so we can read from it */
    tex_xfer = pipe_get_transfer(pipe,
                                 dst_texture, 0, 0,