summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2012-09-24 18:34:02 +0000
committerTom Stellard <thomas.stellard@amd.com>2012-09-24 18:35:50 +0000
commitdefe8f0da263c95935dd14d106141d0a22d24aba (patch)
tree9089c5a2f32731c0d007978891b93e35ed994976
parentdda49c3cb741cda2b592c5ad8e5d74edd0d7526f (diff)
r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute cs
-rw-r--r--src/gallium/drivers/r600/evergreen_compute.c8
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 66034a4f02..c7b9d3314a 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;