r600g: evergreen CB check for flushed texture
authorDave Airlie <airlied@redhat.com>
Thu, 3 Feb 2011 23:34:32 +0000 (09:34 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 3 Feb 2011 23:34:32 +0000 (09:34 +1000)
src/gallium/drivers/r600/evergreen_state.c

index 00d5d007ddfa99801b67293a0b36f5e6d296afc7..73fa1714361ef127c6698d1bc97edccb264323da 100644 (file)
@@ -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;