summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2011-02-04 09:34:32 +1000
committerDave Airlie <airlied@redhat.com>2011-02-04 09:34:32 +1000
commit8c643446f982892aeec4298977fbbe1ab92206fb (patch)
treec291e49d4e322cfa4ab8a240e696e323808ead01
parent2271c793e8650e0e55c054301ab85b5b92b9bf11 (diff)
r600g: evergreen CB check for flushed texture
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 00d5d007ddf..73fa1714361 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -647,6 +647,12 @@ static void evergreen_cb(struct r600_pipe_context *rctx, struct r600_pipe_state
surf = (struct r600_surface *)state->cbufs[cb];
rtex = (struct r600_resource_texture*)state->cbufs[cb]->texture;
+
+ if (rtex->depth && !rtex->is_flushing_texture) {
+ r600_texture_depth_flush(&rctx->context, state->cbufs[cb]->texture, TRUE);
+ rtex = rtex->flushed_depth_texture;
+ }
+
rbuffer = &rtex->resource;
bo[0] = rbuffer->bo;
bo[1] = rbuffer->bo;