summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_blit.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-07-07 19:33:11 +0200
committerMarek Olšák <[email protected]>2012-07-12 02:08:30 +0200
commitdf79eb59566f20a7fa8e11d87b63b81ec35eaf25 (patch)
treeda4ab64991376d759fbe0b2ec8cc9924d284f3a4 /src/gallium/drivers/r600/r600_blit.c
parent43e3f19c766863a655bb9f7c04f7820cbda0c8f5 (diff)
r600g: remove is_flush from DSA state
we can just update the state when decompressing, there's no need to add additional info into the DSA state Reviewed-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_blit.c')
-rw-r--r--src/gallium/drivers/r600/r600_blit.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index d85324b6fbb..b6238dcd050 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -131,6 +131,13 @@ void r600_blit_uncompress_depth(struct pipe_context *ctx,
rctx->family == CHIP_RV620 || rctx->family == CHIP_RV635)
depth = 0.0f;
+ if (rctx->chip_class <= R700 &&
+ !rctx->db_misc_state.flush_depthstencil_through_cb) {
+ /* Enable decompression in DB_RENDER_CONTROL */
+ rctx->db_misc_state.flush_depthstencil_through_cb = true;
+ r600_atom_dirty(rctx, &rctx->db_misc_state.atom);
+ }
+
for (level = 0; level <= texture->resource.b.b.last_level; level++) {
unsigned num_layers = u_num_layers(&texture->resource.b.b, level);
@@ -161,6 +168,12 @@ void r600_blit_uncompress_depth(struct pipe_context *ctx,
if (!staging)
texture->dirty_db = FALSE;
+
+ if (rctx->chip_class <= R700) {
+ /* Disable decompression in DB_RENDER_CONTROL */
+ rctx->db_misc_state.flush_depthstencil_through_cb = false;
+ r600_atom_dirty(rctx, &rctx->db_misc_state.atom);
+ }
}
void r600_flush_depth_textures(struct r600_context *rctx)