asahi: Do not support masking with spilled RTs
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Wed, 14 Jun 2023 21:53:38 +0000 (17:53 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 20 Jul 2023 15:33:28 +0000 (15:33 +0000)
Extra complexity for this interaction, not worth it until we have an actual use
case IMHO.

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

src/asahi/lib/agx_tilebuffer.c

index c427462..9b83801 100644 (file)
@@ -123,6 +123,12 @@ agx_tilebuffer_physical_format(struct agx_tilebuffer_layout *tib, unsigned rt)
 bool
 agx_tilebuffer_supports_mask(struct agx_tilebuffer_layout *tib, unsigned rt)
 {
+   /* We don't bother support masking with spilled render targets. This might be
+    * optimized in the future but spilling is so rare anyway it's not worth it.
+    */
+   if (tib->spilled[rt])
+      return false;
+
    enum pipe_format fmt = agx_tilebuffer_physical_format(tib, rt);
    return agx_internal_format_supports_mask((enum agx_internal_formats)fmt);
 }