nir/lower_vectorize_tess_levels: set num_components for vectorized loads
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 17 Aug 2021 18:04:16 +0000 (14:04 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 18 Aug 2021 12:18:15 +0000 (12:18 +0000)
this otherwise explodes when rewriting e.g., a single array component load to a vec4

Fixes: f5adf27fb92 ("nir,radv: add and use nir_vectorize_tess_levels()")

fixes zmike/mesa#94

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12419>

src/compiler/nir/nir_lower_io_to_vector.c

index 433e5cc..13d692e 100644 (file)
@@ -632,6 +632,7 @@ nir_vectorize_tess_levels_impl(nir_function_impl *impl)
          } else {
             b.cursor = nir_after_instr(instr);
             nir_ssa_def *val = &intrin->dest.ssa;
+            val->num_components = intrin->num_components;
             nir_ssa_def *comp = nir_channel(&b, val, index);
             nir_ssa_def_rewrite_uses_after(val, comp, comp->parent_instr);
          }