radeonsi/gfx9: don't ever flush the TC metadata cache
authorMarek Olšák <marek.olsak@amd.com>
Tue, 20 Jun 2017 16:26:12 +0000 (18:26 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 22 Jun 2017 11:15:27 +0000 (13:15 +0200)
The closed Vulkan driver doesn't do it either.

Also remove some old comments that aren't useful.

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

index 85ceacad80f629f22164e233b9ed186291409fbd..332e0c43de8102e1997688ba717b9fe7346a513e 100644 (file)
@@ -971,22 +971,15 @@ void si_emit_cache_flush(struct si_context *sctx)
                }
 
                /* TC    | TC_WB         = invalidate L2 data
-                * TC_MD | TC_WB         = invalidate L2 metadata
+                * TC_MD | TC_WB         = invalidate L2 metadata (DCC, etc.)
                 * TC    | TC_WB | TC_MD = invalidate L2 data & metadata
-                *
-                * The metadata cache must always be invalidated for coherency
-                * between CB/DB and shaders. (metadata = HTILE, CMASK, DCC)
-                *
-                * TC must be invalidated on GFX9 only if the CB/DB surface is
-                * not pipe-aligned. If the surface is RB-aligned, it might not
-                * strictly be pipe-aligned since RB alignment takes precendence.
                 */
-               tc_flags = EVENT_TC_WB_ACTION_ENA |
-                          EVENT_TC_MD_ACTION_ENA;
+               tc_flags = 0;
 
                /* Ideally flush TC together with CB/DB. */
                if (rctx->flags & SI_CONTEXT_INV_GLOBAL_L2) {
                        tc_flags |= EVENT_TC_ACTION_ENA |
+                                   EVENT_TC_WB_ACTION_ENA |
                                    EVENT_TCL1_ACTION_ENA;
 
                        /* Clear the flags. */