pan/lower_framebuffer: Only call for FS
authorAlyssa Rosenzweig <alyssa@collabora.com>
Mon, 6 Feb 2023 16:34:02 +0000 (11:34 -0500)
committerMarge Bot <emma+marge@anholt.net>
Thu, 23 Mar 2023 23:53:46 +0000 (23:53 +0000)
It doesn't make sense for shader stages other than fragment (and blend which is
fragment-like), assert this.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20906>

src/panfrost/midgard/midgard_compile.c
src/panfrost/util/pan_lower_framebuffer.c

index 08cc62e..35e40ac 100644 (file)
@@ -418,9 +418,11 @@ midgard_preprocess_nir(nir_shader *nir,
    NIR_PASS_V(nir, nir_lower_flrp, 16 | 32 | 64, false /* always_precise */);
    NIR_PASS_V(nir, nir_lower_var_copies);
 
-   NIR_PASS_V(nir, pan_lower_framebuffer, inputs->rt_formats,
-              inputs->raw_fmt_mask, inputs->is_blend,
-              quirks & MIDGARD_BROKEN_BLEND_LOADS);
+   if (nir->info.stage == MESA_SHADER_FRAGMENT) {
+      NIR_PASS_V(nir, pan_lower_framebuffer, inputs->rt_formats,
+                 inputs->raw_fmt_mask, inputs->is_blend,
+                 quirks & MIDGARD_BROKEN_BLEND_LOADS);
+   }
 }
 
 static void
index d2a29e4..f0910bf 100644 (file)
@@ -573,8 +573,7 @@ pan_lower_framebuffer(nir_shader *shader, const enum pipe_format *rt_fmts,
                       uint8_t raw_fmt_mask, bool is_blend,
                       bool broken_ld_special)
 {
-   if (shader->info.stage != MESA_SHADER_FRAGMENT)
-      return false;
+   assert(shader->info.stage == MESA_SHADER_FRAGMENT);
 
    bool progress = false;