r600g: Set RADEON_FLUSH_KEEP_TILING_FLAGS when emitting compute cs
authorTom Stellard <thomas.stellard@amd.com>
Mon, 24 Sep 2012 18:34:02 +0000 (18:34 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Mon, 24 Sep 2012 18:35:50 +0000 (18:35 +0000)
src/gallium/drivers/r600/evergreen_compute.c

index 66034a4..c7b9d33 100644 (file)
@@ -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;