diff options
author | Marek Olšák <[email protected]> | 2016-05-26 17:18:13 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-06-04 15:42:33 +0200 |
commit | 9e62012c30812091e5400d449869f5022ac945ca (patch) | |
tree | 89760879a7b994bfd0e6d67b49de58de9e45fe03 /src/gallium/drivers/r600/evergreen_hw_context.c | |
parent | c92a3ae7e99e5271ae0671da1bd5b74fc6c41d2b (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.c | 15 |
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; } |