Mesa (master): panfrost: Fix Z24 vs Z32 mixup

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 19 18:37:24 UTC 2020


Module: Mesa
Branch: master
Commit: 82792ef19fd757bcc5571db875098d2f272f1f86
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=82792ef19fd757bcc5571db875098d2f272f1f86

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Fri May 15 19:16:56 2020 -0400

panfrost: Fix Z24 vs Z32 mixup

We don't actually support Z32_UNORM; the format we've been using as such
is in fact Z24X8 / Z24S8. Fix that and drop Z32_UNORM.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5069>

---

 src/gallium/drivers/panfrost/pan_mfbd.c   | 4 +---
 src/gallium/drivers/panfrost/pan_sfbd.c   | 6 +-----
 src/panfrost/encoder/pan_format.c         | 5 ++---
 src/panfrost/include/panfrost-job.h       | 2 +-
 src/panfrost/pandecode/pan_pretty_print.c | 2 +-
 5 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_mfbd.c b/src/gallium/drivers/panfrost/pan_mfbd.c
index 723d92b0067..bfb79dd6d3c 100644
--- a/src/gallium/drivers/panfrost/pan_mfbd.c
+++ b/src/gallium/drivers/panfrost/pan_mfbd.c
@@ -298,8 +298,6 @@ panfrost_mfbd_set_zsbuf(
 
                 if (panfrost_is_z24s8_variant(surf->format)) {
                         fbx->flags_lo |= 0x1;
-                } else if (surf->format == PIPE_FORMAT_Z32_UNORM) {
-                        /* default flags (0 in bottom place) */
                 } else if (surf->format == PIPE_FORMAT_Z32_FLOAT) {
                         fbx->flags_lo |= 0xA;
                         fb->mfbd_flags ^= 0x100;
@@ -481,7 +479,7 @@ panfrost_mfbd_fragment(struct panfrost_batch *batch, bool has_draws)
 
         /* When scanning out, the depth buffer is immediately invalidated, so
          * we don't need to waste bandwidth writing it out. This can improve
-         * performance substantially (Z32_UNORM 1080p @ 60fps is 475 MB/s of
+         * performance substantially (Z24X8_UNORM 1080p @ 60fps is 475 MB/s of
          * memory bandwidth!).
          *
          * The exception is ReadPixels, but this is not supported on GLES so we
diff --git a/src/gallium/drivers/panfrost/pan_sfbd.c b/src/gallium/drivers/panfrost/pan_sfbd.c
index 9cbcbcaba4e..7a0deaf4d39 100644
--- a/src/gallium/drivers/panfrost/pan_sfbd.c
+++ b/src/gallium/drivers/panfrost/pan_sfbd.c
@@ -173,16 +173,12 @@ panfrost_sfbd_set_zsbuf(
                 return;
 
         if (panfrost_is_z24s8_variant(surf->format)) {
-
                 /* Stencil data is interleaved with depth */
                 fb->stencil_buffer = fb->depth_buffer;
                 fb->stencil_stride = fb->depth_stride;
-        } else if (surf->format == PIPE_FORMAT_Z32_UNORM ||
-                   surf->format == PIPE_FORMAT_Z32_FLOAT) {
-
+        } else if (surf->format == PIPE_FORMAT_Z32_FLOAT) {
                 /* No stencil, nothing to do */
         } else if (surf->format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT) {
-
                 /* Stencil data in separate buffer */
                 struct panfrost_resource *stencil = rsrc->separate_stencil;
                 struct panfrost_slice stencil_slice = stencil->slices[level];
diff --git a/src/panfrost/encoder/pan_format.c b/src/panfrost/encoder/pan_format.c
index c14c09758f2..02167275034 100644
--- a/src/panfrost/encoder/pan_format.c
+++ b/src/panfrost/encoder/pan_format.c
@@ -110,9 +110,8 @@ struct panfrost_format panfrost_pipe_format_table[PIPE_FORMAT_COUNT] = {
 
         [PIPE_FORMAT_R3G3B2_UNORM] 		= { MALI_RGB332_UNORM, _VT },
 
-        [PIPE_FORMAT_Z24_UNORM_S8_UINT]		= { MALI_Z32_UNORM, _TZ },
-        [PIPE_FORMAT_Z24X8_UNORM]		= { MALI_Z32_UNORM, _TZ },
-        [PIPE_FORMAT_Z32_UNORM]		        = { MALI_Z32_UNORM, _TZ },
+        [PIPE_FORMAT_Z24_UNORM_S8_UINT]		= { MALI_Z24X8_UNORM, _TZ },
+        [PIPE_FORMAT_Z24X8_UNORM]		= { MALI_Z24X8_UNORM, _TZ },
         [PIPE_FORMAT_Z32_FLOAT]		        = { MALI_R32F, _TZ },
         [PIPE_FORMAT_Z32_FLOAT_S8X24_UINT]	= { MALI_R32F, _TZ },
 
diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h
index b02d0abcde9..bb835a13b00 100644
--- a/src/panfrost/include/panfrost-job.h
+++ b/src/panfrost/include/panfrost-job.h
@@ -297,7 +297,7 @@ enum mali_format {
 	MALI_RGB332_UNORM   = MALI_FORMAT_SPECIAL | 0xb,
 	MALI_RGB233_UNORM   = MALI_FORMAT_SPECIAL | 0xc,
 
-	MALI_Z32_UNORM      = MALI_FORMAT_SPECIAL | 0xd,
+	MALI_Z24X8_UNORM    = MALI_FORMAT_SPECIAL | 0xd,
 	MALI_R32_FIXED      = MALI_FORMAT_SPECIAL | 0x11,
 	MALI_RG32_FIXED     = MALI_FORMAT_SPECIAL | 0x12,
 	MALI_RGB32_FIXED    = MALI_FORMAT_SPECIAL | 0x13,
diff --git a/src/panfrost/pandecode/pan_pretty_print.c b/src/panfrost/pandecode/pan_pretty_print.c
index a1a87fa2c2c..05b0d1ae4cb 100644
--- a/src/panfrost/pandecode/pan_pretty_print.c
+++ b/src/panfrost/pandecode/pan_pretty_print.c
@@ -54,7 +54,7 @@ char *pandecode_format(enum mali_format format)
                 DEFINE_CASE(RGB10_A2I);
                 DEFINE_CASE(RGB332_UNORM);
                 DEFINE_CASE(RGB233_UNORM);
-                DEFINE_CASE(Z32_UNORM);
+                DEFINE_CASE(Z24X8_UNORM);
                 DEFINE_CASE(R32_FIXED);
                 DEFINE_CASE(RG32_FIXED);
                 DEFINE_CASE(RGB32_FIXED);



More information about the mesa-commit mailing list