asahi: Ignore spilled render targets in EOT shaders
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Wed, 14 Jun 2023 21:42:01 +0000 (17:42 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 20 Jul 2023 15:33:28 +0000 (15:33 +0000)
Regardless whether we implement Apple-style eMRT or something simpler, the EOT
shader isn't involved here.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24258>

src/asahi/lib/agx_meta.c

index 23a7e2f..43db67a 100644 (file)
@@ -114,6 +114,13 @@ agx_build_end_of_tile_shader(struct agx_meta_cache *cache,
       if (key->op[rt] == AGX_META_OP_NONE)
          continue;
 
+      /* The end-of-tile shader is unsuitable to handle spilled render targets.
+       * Skip them. If blits are needed with spilled render targets, other parts
+       * of the driver need to implement them.
+       */
+      if (key->tib.spilled[rt])
+         continue;
+
       assert(key->op[rt] == AGX_META_OP_STORE);
       unsigned offset_B = agx_tilebuffer_offset_B(&key->tib, rt);