From: Marek Olšák <marek.ol...@amd.com>

The main impact is that {upload, draw, upload, draw, ..} doesn't flush
framebuffer caches before every upload.
---
 src/gallium/drivers/r600/r600_hw_context.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_hw_context.c 
b/src/gallium/drivers/r600/r600_hw_context.c
index 5d6200d..718d185 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -385,15 +385,7 @@ void r600_cp_dma_copy_buffer(struct r600_context *rctx,
        src_offset += r600_resource(src)->gpu_address;
 
        /* Flush the caches where the resources are bound. */
-       rctx->b.flags |= R600_CONTEXT_INV_CONST_CACHE |
-                        R600_CONTEXT_INV_VERTEX_CACHE |
-                        R600_CONTEXT_INV_TEX_CACHE |
-                        R600_CONTEXT_FLUSH_AND_INV |
-                        R600_CONTEXT_FLUSH_AND_INV_CB |
-                        R600_CONTEXT_FLUSH_AND_INV_DB |
-                        R600_CONTEXT_FLUSH_AND_INV_CB_META |
-                        R600_CONTEXT_FLUSH_AND_INV_DB_META |
-                        R600_CONTEXT_STREAMOUT_FLUSH |
+       rctx->b.flags |= r600_get_flush_flags(R600_COHERENCY_SHADER) |
                         R600_CONTEXT_WAIT_3D_IDLE;
 
        /* There are differences between R700 and EG in CP DMA,
@@ -449,11 +441,6 @@ void r600_cp_dma_copy_buffer(struct r600_context *rctx,
        if (rctx->b.chip_class >= R700) {
                radeon_emit(cs, PKT3(PKT3_PFP_SYNC_ME, 0, 0));
                radeon_emit(cs, 0);
-
-               /* Invalidate the read caches. */
-               rctx->b.flags |= R600_CONTEXT_INV_CONST_CACHE |
-                                R600_CONTEXT_INV_VERTEX_CACHE |
-                                R600_CONTEXT_INV_TEX_CACHE;
        } else {
                rctx->b.gfx.flush(rctx, RADEON_FLUSH_ASYNC, NULL);
        }
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to