[Mesa-dev] [PATCH 3/6] st/mesa: BlitFramebuffer should not be killed by conditional rendering
Marek Olšák
maraeo at gmail.com
Sun May 29 09:42:16 PDT 2011
NOTE: This is a candidate for the 7.10 branch.
---
src/mesa/state_tracker/st_cb_blit.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c
index 25c95c7..416be19 100644
--- a/src/mesa/state_tracker/st_cb_blit.c
+++ b/src/mesa/state_tracker/st_cb_blit.c
@@ -109,6 +109,11 @@ st_BlitFramebuffer(struct gl_context *ctx,
dstY1 = tmp;
}
+ /* Disable conditional rendering. */
+ if (st->render_condition) {
+ st->pipe->render_condition(st->pipe, NULL, 0);
+ }
+
if (mask & GL_COLOR_BUFFER_BIT) {
struct gl_renderbuffer_attachment *srcAtt =
&readFB->Attachment[readFB->_ColorReadBufferIndex];
@@ -121,7 +126,7 @@ st_BlitFramebuffer(struct gl_context *ctx,
struct pipe_surface *dstSurf = dstRb->surface;
if (!srcObj->pt)
- return;
+ goto done;
util_blit_pixels(st->blit, srcObj->pt, srcAtt->TextureLevel,
srcX0, srcY0, srcX1, srcY1,
@@ -199,6 +204,13 @@ st_BlitFramebuffer(struct gl_context *ctx,
}
}
}
+
+done:
+ /* Restore conditional rendering state. */
+ if (st->render_condition) {
+ st->pipe->render_condition(st->pipe, st->render_condition,
+ st->condition_mode);
+ }
}
--
1.7.4.1
More information about the mesa-dev
mailing list