radeonsi: select the optimal micro tile mode at clear regardless of fast clear
authorMarek Olšák <marek.olsak@amd.com>
Wed, 17 Mar 2021 18:42:44 +0000 (14:42 -0400)
committerMarge Bot <eric+marge@anholt.net>
Fri, 19 Mar 2021 16:05:03 +0000 (16:05 +0000)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9615>

src/gallium/drivers/radeonsi/si_clear.c

index 6394eeb..e3bb69c 100644 (file)
@@ -415,6 +415,10 @@ static void si_do_fast_color_clear(struct si_context *sctx, unsigned *buffers,
          continue;
       }
 
+      /* We can change the micro tile mode before a full clear. */
+      /* This is only used for MSAA textures when clearing all layers. */
+      si_set_optimal_micro_tile_mode(sctx->screen, tex);
+
       /* only supported on tiled surfaces */
       if (tex->surface.is_linear) {
          continue;
@@ -527,9 +531,6 @@ static void si_do_fast_color_clear(struct si_context *sctx, unsigned *buffers,
          p_atomic_inc(&sctx->screen->compressed_colortex_counter);
       }
 
-      /* We can change the micro tile mode before a full clear. */
-      si_set_optimal_micro_tile_mode(sctx->screen, tex);
-
       *buffers &= ~clear_bit;
 
       /* Chips with DCC constant encoding don't need to set the clear