summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_state_common.c
diff options
context:
space:
mode:
authorHenri Verbeet <hverbeet@gmail.com>2011-01-30 18:57:39 +0100
committerHenri Verbeet <hverbeet@gmail.com>2011-01-30 18:59:13 +0100
commit38b54158b68479e1f97c8452ba0d67f50dce7582 (patch)
treea899fdb5944ccf2d3e59a80a470ca2cfc673ff4b /src/gallium/drivers/r600/r600_state_common.c
parent3f0a966807f03a364edea0272ddf45f08ab7ce4f (diff)
r600g: Update the flushed depth texture after drawing to the corresponding texture.
I know Jerome will probably rewrite the way depth textures work sometime soon. For the time being this should at least make common depth texture usage for shadowing work properly though.
Diffstat (limited to 'src/gallium/drivers/r600/r600_state_common.c')
-rw-r--r--src/gallium/drivers/r600/r600_state_common.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 2df8188f0a..e086e272c8 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -496,6 +496,8 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
struct r600_drawl draw = {};
unsigned prim;
+ r600_flush_depth_textures(rctx);
+
if (rctx->vertex_elements->incompatible_layout) {
r600_begin_vertex_translate(rctx, info->min_index, info->max_index);
}
@@ -597,6 +599,12 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
r600_context_draw(&rctx->ctx, &rdraw);
}
+ if (rctx->framebuffer.zsbuf)
+ {
+ struct pipe_resource *tex = rctx->framebuffer.zsbuf->texture;
+ ((struct r600_resource_texture *)tex)->flushed = false;
+ }
+
pipe_resource_reference(&draw.index_buffer, NULL);
/* delete previous translated vertex elements */