radeonsi/gfx9: use TC L2 for fast color clear with CP DMA
authorMarek Olšák <marek.olsak@amd.com>
Tue, 20 Jun 2017 16:25:05 +0000 (18:25 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 22 Jun 2017 11:15:27 +0000 (13:15 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_cp_dma.c

index 9505d622aefb55fc79eb3ec9270530d46bea307b..e737519eefd117cc709e79ffea626f9eaf3aa8cd 100644 (file)
@@ -142,8 +142,11 @@ static unsigned get_flush_flags(struct si_context *sctx, enum r600_coherency coh
 
 static unsigned get_tc_l2_flag(struct si_context *sctx, enum r600_coherency coher)
 {
-       return coher == R600_COHERENCY_SHADER &&
-              sctx->b.chip_class >= CIK ? CP_DMA_USE_L2 : 0;
+       if ((sctx->b.chip_class >= GFX9 && coher == R600_COHERENCY_CB_META) ||
+           (sctx->b.chip_class >= CIK && coher == R600_COHERENCY_SHADER))
+               return CP_DMA_USE_L2;
+
+       return 0;
 }
 
 static void si_cp_dma_prepare(struct si_context *sctx, struct pipe_resource *dst,