summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-11-28 20:57:10 +0100
committerMarek Olšák <[email protected]>2017-11-29 18:21:30 +0100
commit6863651bbdd7dcfad60bae78d1e17898f49ca08b (patch)
tree2ed08bb093f17cd33e59531427788c7ca8e4c7e8 /src/gallium/drivers/radeon
parent2c62ccb10a7f3a2962f51688a3ae957254c5ce9b (diff)
radeonsi: fix layered DCC fast clear
Cc: 17.2 17.3 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r--src/gallium/drivers/radeon/r600_texture.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
index 3fa5f5eaa97..933a4a9bbe9 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -2485,8 +2485,11 @@ void vi_dcc_clear_level(struct r600_common_context *rctx,
assert(rtex->resource.b.b.nr_samples <= 1);
clear_size = rtex->surface.dcc_size;
} else {
+ unsigned num_layers = util_max_layer(&rtex->resource.b.b, level) + 1;
+
dcc_offset += rtex->surface.u.legacy.level[level].dcc_offset;
- clear_size = rtex->surface.u.legacy.level[level].dcc_fast_clear_size;
+ clear_size = rtex->surface.u.legacy.level[level].dcc_fast_clear_size *
+ num_layers;
}
rctx->clear_buffer(&rctx->b, dcc_buffer, dcc_offset, clear_size,