radeonsi: don't flush sL1 conditionally in WAIT_ON_CE_COUNTER
authorMarek Olšák <marek.olsak@amd.com>
Sat, 29 Jul 2017 20:03:38 +0000 (22:03 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 1 Aug 2017 15:06:38 +0000 (17:06 +0200)
I don't know the condition for the flush, but we better turn this off.
The sL1 flush is used when CE dumps stuff into a ring buffer and the ring
buffer wraps.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_state_draw.c

index a5f5b7f98a0add0b98da7ef6f3988ef14917956d..dfe423610bfb329e8f061b7c81fe4322efbbd5c4 100644 (file)
@@ -1145,10 +1145,10 @@ void si_ce_pre_draw_synchronization(struct si_context *sctx)
 {
        if (sctx->ce_need_synchronization) {
                radeon_emit(sctx->ce_ib, PKT3(PKT3_INCREMENT_CE_COUNTER, 0, 0));
-               radeon_emit(sctx->ce_ib, 1);
+               radeon_emit(sctx->ce_ib, 1); /* 1 = increment CE counter */
 
                radeon_emit(sctx->b.gfx.cs, PKT3(PKT3_WAIT_ON_CE_COUNTER, 0, 0));
-               radeon_emit(sctx->b.gfx.cs, 1);
+               radeon_emit(sctx->b.gfx.cs, 0); /* 0 = don't flush sL1 conditionally */
        }
 }
 
@@ -1156,7 +1156,7 @@ void si_ce_post_draw_synchronization(struct si_context *sctx)
 {
        if (sctx->ce_need_synchronization) {
                radeon_emit(sctx->b.gfx.cs, PKT3(PKT3_INCREMENT_DE_COUNTER, 0, 0));
-               radeon_emit(sctx->b.gfx.cs, 0);
+               radeon_emit(sctx->b.gfx.cs, 0); /* unused */
 
                sctx->ce_need_synchronization = false;
        }