Revert "freedreno/a6xx: Remove unneeded MSAA clear fallback"
authorChia-I Wu <olvaffe@gmail.com>
Wed, 30 Nov 2022 21:32:55 +0000 (13:32 -0800)
committerMarge Bot <emma+marge@anholt.net>
Thu, 1 Dec 2022 17:35:42 +0000 (17:35 +0000)
This reverts commit ded82cf4bdd9a74eded2a9a95ab14e2c0d907c0a and fixes

$ deqp-gles31 --deqp-gl-config-name=rgba8888d24s8ms4 \
    -n dEQP-GLES31.functional.primitive_bounding_box.depth.*

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20085>

src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
src/gallium/drivers/freedreno/a6xx/fd6_draw.c
src/gallium/drivers/freedreno/freedreno_screen.h

index 010e43c150f17df33283e782a931478d4023dda1..6976e6c707f264b07dce961901065627c573b6d4 100644 (file)
@@ -806,11 +806,6 @@ fd6_clear_surface(struct fd_context *ctx, struct fd_ringbuffer *ring,
    }
 
    uint32_t nr_samples = fd_resource_nr_samples(psurf->texture);
-
-   /* TODO the trick of multiplying the dimensions for MSAA sysmem clears
-    * works for linear, but falls apart with tiled/ubwc.
-    */
-
    OUT_PKT4(ring, REG_A6XX_GRAS_2D_DST_TL, 2);
    OUT_RING(ring, A6XX_GRAS_2D_DST_TL_X(box2d->x * nr_samples) |
                      A6XX_GRAS_2D_DST_TL_Y(box2d->y));
index 3fffb2a88f8069ff4c905082ffc376cd15a74eb3..3ce6e7d5e2c79450f1c25ef6887b8431e34ff516 100644 (file)
@@ -475,13 +475,9 @@ fd6_clear(struct fd_context *ctx, unsigned buffers,
    const bool has_depth = pfb->zsbuf;
    unsigned color_buffers = buffers >> 2;
 
-   /* multisample clear does not work properly for sysmem: */
-   if (pfb->samples > 1) {
-      /* layered rendering forces sysmem, so just bail now: */
-      if (pfb->layers > 1)
-         return false;
-      ctx->batch->gmem_reason |= FD_GMEM_MSAA_CLEAR;
-   }
+   /* we need to do multisample clear on 3d pipe, so fallback to u_blitter: */
+   if (pfb->samples > 1)
+      return false;
 
    /* If we're clearing after draws, fallback to 3D pipe clears.  We could
     * use blitter clears in the draw batch but then we'd have to patch up the
index c76b3d3d6b62317318a87680457f1a0d9806edf9..0aa0e2357c4a12c403aea63f7682414315534c58 100644 (file)
@@ -57,7 +57,6 @@ enum fd_gmem_reason {
    FD_GMEM_BLEND_ENABLED = BIT(3),
    FD_GMEM_LOGICOP_ENABLED = BIT(4),
    FD_GMEM_FB_READ = BIT(5),
-   FD_GMEM_MSAA_CLEAR = BIT(6),
 };
 
 struct fd_screen {