From ef765d07894bdb6234c2f9cb47c7c3ab0f20fccf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 11 May 2016 14:09:55 +0200 Subject: [PATCH] gallium/radeon: strenghten some checking for DMA preparation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Just for consistency. This doesn't fix anything, because DCC is not supported with non-mipmapped textures. v1.1: fix the comment about DCC Reviewed-by: Nicolai Hähnle Reviewed-by: Bas Nieuwenhuizen --- src/gallium/drivers/radeon/r600_texture.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index db63bebc676..7a241fedbd0 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -74,8 +74,11 @@ bool r600_prepare_for_dma_blit(struct r600_common_context *rctx, return false; if (rdst->dcc_offset) { - /* We can't discard DCC if the texture has been exported. */ + /* We can't discard DCC if the texture has been exported. + * We can only discard DCC for the entire texture. + */ if (rdst->resource.is_shared || + rdst->resource.b.b.last_level > 0 || !util_texrange_covers_whole_level(&rdst->resource.b.b, dst_level, dstx, dsty, dstz, src_box->width, src_box->height, src_box->depth)) @@ -90,6 +93,8 @@ bool r600_prepare_for_dma_blit(struct r600_common_context *rctx, * SDMA. Otherwise, use the 3D path. */ if (rdst->cmask.size && rdst->dirty_level_mask & (1 << dst_level)) { + /* The CMASK clear is only enabled for the first level. */ + assert(dst_level == 0); if (!util_texrange_covers_whole_level(&rdst->resource.b.b, dst_level, dstx, dsty, dstz, src_box->width, src_box->height, src_box->depth)) -- 2.30.2