aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/evergreen_hw_context.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-05-26 17:18:13 +0200
committerMarek Olšák <[email protected]>2016-06-04 15:42:33 +0200
commit9e62012c30812091e5400d449869f5022ac945ca (patch)
tree89760879a7b994bfd0e6d67b49de58de9e45fe03 /src/gallium/drivers/r600/evergreen_hw_context.c
parentc92a3ae7e99e5271ae0671da1bd5b74fc6c41d2b (diff)
r600g: only do necessary cache flushes in cp_dma_clear_buffer
The main impact is that fast color clear doesn't flush TC, CONST, DB. Reviewed-by: Alex Deucher <[email protected]> Tested-by: Grazvydas Ignotas <[email protected]> Tested-by: Dieter Nützel <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_hw_context.c')
-rw-r--r--src/gallium/drivers/r600/evergreen_hw_context.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/src/gallium/drivers/r600/evergreen_hw_context.c b/src/gallium/drivers/r600/evergreen_hw_context.c
index 2feb8015082..06f03482341 100644
--- a/src/gallium/drivers/r600/evergreen_hw_context.c
+++ b/src/gallium/drivers/r600/evergreen_hw_context.c
@@ -102,15 +102,7 @@ void evergreen_cp_dma_clear_buffer(struct r600_context *rctx,
offset += r600_resource(dst)->gpu_address;
/* Flush the cache where the resource is 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(coher) |
R600_CONTEXT_WAIT_3D_IDLE;
while (size) {
@@ -158,9 +150,4 @@ void evergreen_cp_dma_clear_buffer(struct r600_context *rctx,
*/
if (coher == R600_COHERENCY_SHADER)
r600_emit_pfp_sync_me(rctx);
-
- /* Invalidate the read caches. */
- rctx->b.flags |= R600_CONTEXT_INV_CONST_CACHE |
- R600_CONTEXT_INV_VERTEX_CACHE |
- R600_CONTEXT_INV_TEX_CACHE;
}