radeonsi: decompress DCC for SDMA if we're really going to use SDMA

change the order of operations

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
This commit is contained in:
Marek Olšák
2023-05-12 21:55:09 -04:00
committed by Marge Bot
parent d2e6c4d255
commit 52f94e2b93
@@ -376,16 +376,18 @@ bool si_sdma_copy_image(struct si_context *sctx, struct si_texture *dst, struct
if (!si_prepare_for_sdma_copy(sctx, dst, src))
return false;
/* Decompress DCC on older chips */
if (vi_dcc_enabled(src, 0) && sctx->gfx_level < GFX10)
si_decompress_dcc(sctx, src);
/* TODO: DCC compression is possible on GFX10+. See si_set_mutable_tex_desc_fields for
* additional constraints.
* For now, the only use-case of SDMA is DRI_PRIME tiled->linear copy, so this is not
* implemented. */
* For now, the only use-case of SDMA is DRI_PRIME tiled->linear copy, and linear dst
* never has DCC.
*/
if (vi_dcc_enabled(dst, 0))
return false;
/* Decompress DCC on older chips where SDMA can't read it. */
if (vi_dcc_enabled(src, 0) && sctx->gfx_level < GFX10)
si_decompress_dcc(sctx, src);
/* Always flush the gfx queue to get the winsys to handle the dependencies for us. */
si_flush_gfx_cs(sctx, 0, NULL);