Re: [Mesa-dev] [PATCH 02/10] gallium/radeon: strenghten some checking for DMA preparation
On 19.05.2016 12:59, Marek Olšák wrote: From: Marek Olšák Just for consistency. This doesn't fix anything, because DCC is not supported with non-mipmapped textures. --- 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 db63beb..23c483b 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. +* Also, we can't discard DCC for one level only. +*/ 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)) A bit bike-shedding, but the comment confused for me for a while. Perhaps "We can only discard DCC for the entire texture."? Nicolai @@ -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)) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 02/10] gallium/radeon: strenghten some checking for DMA preparation
Ping for the rest of the series. Marek On Thu, May 19, 2016 at 12:59 PM, Marek Olšák wrote: > From: Marek Olšák > > Just for consistency. This doesn't fix anything, because DCC is not > supported with non-mipmapped textures. > --- > 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 db63beb..23c483b 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. > +* Also, we can't discard DCC for one level only. > +*/ > 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.7.4 > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 02/10] gallium/radeon: strenghten some checking for DMA preparation
From: Marek Olšák Just for consistency. This doesn't fix anything, because DCC is not supported with non-mipmapped textures. --- 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 db63beb..23c483b 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. +* Also, we can't discard DCC for one level only. +*/ 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.7.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev