Mesa (master): r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute cs

Tom Stellard tstellar at kemper.freedesktop.org
Mon Sep 24 18:41:09 UTC 2012


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

Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Mon Sep 24 18:34:02 2012 +0000

r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute cs

---

 src/gallium/drivers/r600/evergreen_compute.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
index 66034a4..c7b9d33 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -320,6 +320,7 @@ static void compute_emit_cs(struct r600_context *ctx, const uint *block_layout,
 		const uint *grid_layout)
 {
 	struct radeon_winsys_cs *cs = ctx->cs;
+	unsigned flush_flags = 0;
 	int i;
 
 	struct r600_resource *onebo = NULL;
@@ -423,7 +424,12 @@ static void compute_emit_cs(struct r600_context *ctx, const uint *block_layout,
 	}
 #endif
 
-	ctx->ws->cs_flush(ctx->cs, RADEON_FLUSH_ASYNC | RADEON_FLUSH_COMPUTE);
+	flush_flags = RADEON_FLUSH_ASYNC | RADEON_FLUSH_COMPUTE;
+	if (ctx->keep_tiling_flags) {
+		flush_flags |= RADEON_FLUSH_KEEP_TILING_FLAGS;
+	}
+
+	ctx->ws->cs_flush(ctx->cs, flush_flags);
 
 	ctx->pm4_dirty_cdwords = 0;
 	ctx->flags = 0;




More information about the mesa-commit mailing list