From b1f0ec824e8cb63418800bbdd4307f15f1f06664 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 4 Mar 2026 13:31:56 +0100 Subject: [PATCH 1/2] pan/lib: remove traces of S8_UINT_Z24_UNORM support This was never supported on Panfrost, so let's stop pretending. --- src/panfrost/lib/pan_desc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/panfrost/lib/pan_desc.c b/src/panfrost/lib/pan_desc.c index 9022c306bfb..20b661933b6 100644 --- a/src/panfrost/lib/pan_desc.c +++ b/src/panfrost/lib/pan_desc.c @@ -194,7 +194,6 @@ translate_s_format(enum pipe_format in) return MALI_S_FORMAT_X24S8; #if PAN_ARCH < 9 - case PIPE_FORMAT_S8_UINT_Z24_UNORM: case PIPE_FORMAT_S8X24_UINT: return MALI_S_FORMAT_S8X24; case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: From d50eb2a1e87745df73b422d856f17c1c5eea389d Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 4 Mar 2026 13:28:24 +0100 Subject: [PATCH 2/2] panfrost: use util_format_stencil_only() Calling util_format_get_depth_only() just to throw the result away right away isn't great. Let's switch to util_format_stencil_only() instead, and trust that it does the right thing. This should only change results for the PIPE_FORMAT_S8_UINT_Z24_UNORM case, where we'd get PIPE_FORMAT_S8X24_UINT instead. That seens more correct, but it's kinda irrelevant, because we don't expose support for that format in the first place. --- src/gallium/drivers/panfrost/pan_fb_preload.c | 28 ++----------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_fb_preload.c b/src/gallium/drivers/panfrost/pan_fb_preload.c index 96dc7e95408..fcc22c3a530 100644 --- a/src/gallium/drivers/panfrost/pan_fb_preload.c +++ b/src/gallium/drivers/panfrost/pan_fb_preload.c @@ -708,19 +708,7 @@ pan_preload_get_views(const struct pan_fb_info *fb, bool zs, if (fb->zs.preload.s) { const struct pan_image_view *view = fb->zs.view.s ?: fb->zs.view.zs; - enum pipe_format fmt = util_format_get_depth_only(view->format); - - switch (view->format) { - case PIPE_FORMAT_Z24_UNORM_S8_UINT: - fmt = PIPE_FORMAT_X24S8_UINT; - break; - case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: - fmt = PIPE_FORMAT_X32_S8X24_UINT; - break; - default: - fmt = view->format; - break; - } + enum pipe_format fmt = util_format_stencil_only(view->format); if (fmt != view->format) { *patched_s = *view; @@ -864,19 +852,7 @@ pan_preload_emit_textures(struct pan_pool *pool, const struct pan_fb_info *fb, if (fb->zs.preload.s) { const struct pan_image_view *view = fb->zs.view.s ?: fb->zs.view.zs; - enum pipe_format fmt = util_format_get_depth_only(view->format); - - switch (view->format) { - case PIPE_FORMAT_Z24_UNORM_S8_UINT: - fmt = PIPE_FORMAT_X24S8_UINT; - break; - case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: - fmt = PIPE_FORMAT_X32_S8X24_UINT; - break; - default: - fmt = view->format; - break; - } + enum pipe_format fmt = util_format_stencil_only(view->format); #if PAN_ARCH >= 7 struct pan_image_view *pview = &patched_views[patched_count++];