Mesa (master): radeonsi/gfx9: don't compare src_va w/ dst_va for CP_DMA_CLEAR

Marek Olšák mareko at kemper.freedesktop.org
Fri Mar 31 19:42:31 UTC 2017


Module: Mesa
Branch: master
Commit: ea595214756cdc366c4c5a27316efa00556ac4ff
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea595214756cdc366c4c5a27316efa00556ac4ff

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Mar 28 19:06:31 2017 +0200

radeonsi/gfx9: don't compare src_va w/ dst_va for CP_DMA_CLEAR

src_va contains the clear value in this case.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeonsi/si_cp_dma.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_cp_dma.c b/src/gallium/drivers/radeonsi/si_cp_dma.c
index 1381d8cfc9..74e0b2d46d 100644
--- a/src/gallium/drivers/radeonsi/si_cp_dma.c
+++ b/src/gallium/drivers/radeonsi/si_cp_dma.c
@@ -84,7 +84,8 @@ static void si_emit_cp_dma(struct si_context *sctx, uint64_t dst_va,
 		command |= S_414_RAW_WAIT(1);
 
 	/* Src and dst flags. */
-	if (sctx->b.chip_class >= GFX9 && src_va == dst_va)
+	if (sctx->b.chip_class >= GFX9 && !(flags & CP_DMA_CLEAR) &&
+	    src_va == dst_va)
 		header |= S_411_DSL_SEL(V_411_NOWHERE); /* prefetch only */
 	else if (flags & CP_DMA_USE_L2)
 		header |= S_411_DSL_SEL(V_411_DST_ADDR_TC_L2);




More information about the mesa-commit mailing list