This removes a clunky hack where the depth buffer was enabled during the
*clear*, instead of during depth buffer linking. That said, this does
not yet support writeback like AFBC depth buffers.

Signed-off-by: Alyssa Rosenzweig <aly...@rosenzweig.io>
---
 src/gallium/drivers/panfrost/pan_mfbd.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_mfbd.c 
b/src/gallium/drivers/panfrost/pan_mfbd.c
index a141fd314c0..b9c7cb221e7 100644
--- a/src/gallium/drivers/panfrost/pan_mfbd.c
+++ b/src/gallium/drivers/panfrost/pan_mfbd.c
@@ -58,8 +58,6 @@ panfrost_mfbd_clear(
                 struct bifrost_fb_extra *fbx,
                 struct bifrost_render_target *rt)
 {
-        struct panfrost_context *ctx = job->ctx;
-
         if (job->clear & PIPE_CLEAR_COLOR) {
                 rt->clear_color_1 = job->clear_color;
                 rt->clear_color_2 = job->clear_color;
@@ -74,14 +72,6 @@ panfrost_mfbd_clear(
         if (job->clear & PIPE_CLEAR_STENCIL) {
                 fb->clear_stencil = job->clear_stencil;
         }
-
-        if (job->clear & (PIPE_CLEAR_DEPTH | PIPE_CLEAR_STENCIL)) {
-                /* Setup combined 24/8 depth/stencil */
-                fb->unk3 |= MALI_MFBD_EXTRA;
-                fbx->flags = 0x405;
-                fbx->ds_linear.depth = ctx->depth_stencil_buffer.gpu;
-                fbx->ds_linear.depth_stride = ctx->pipe_framebuffer.width * 4;
-        }
 }
 
 static void
@@ -155,6 +145,15 @@ panfrost_mfbd_set_zsbuf(
                 fbx->ds_afbc.padding = 0x1000;
 
                 fb->unk3 |= MALI_MFBD_DEPTH_WRITE;
+        } else if (rsrc->bo->layout == PAN_LINEAR) {
+                fb->unk3 |= MALI_MFBD_EXTRA;
+                fbx->flags |= MALI_EXTRA_PRESENT | MALI_EXTRA_ZS | 0x1;
+
+                fbx->ds_linear.depth = rsrc->bo->gpu[0];
+                fbx->ds_linear.depth_stride =
+                        util_format_get_stride(surf->format, 
surf->texture->width0);
+        } else {
+                assert(0);
         }
 }
 
-- 
2.20.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to