Mesa (main): lima: split_load_input: don't split unaligned vec2

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 1 18:24:54 UTC 2021


Module: Mesa
Branch: main
Commit: 5db5ff58b73de749378223ae80f542f832ec5461
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5db5ff58b73de749378223ae80f542f832ec5461

Author: Vasily Khoruzhick <anarsoul at gmail.com>
Date:   Thu Sep 30 19:31:09 2021 -0700

lima: split_load_input: don't split unaligned vec2

Mali4x0 can't fetch unaligned vec2 (i.e. .yz), so don't split it.

Fixes: 6dd0ad66dedc ("lima/ppir: add NIR pass to split varying loads")
Reviewed-by: Erico Nunes <nunes.erico at gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13131>

---

 src/gallium/drivers/lima/ir/lima_nir_split_load_input.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/lima/ir/lima_nir_split_load_input.c b/src/gallium/drivers/lima/ir/lima_nir_split_load_input.c
index dbdb3a81c64..5037896cdf4 100644
--- a/src/gallium/drivers/lima/ir/lima_nir_split_load_input.c
+++ b/src/gallium/drivers/lima/ir/lima_nir_split_load_input.c
@@ -67,6 +67,11 @@ lima_nir_split_load_input_block(nir_block *block, nir_builder *b)
       if (nir_dest_num_components(alu->dest.dest) == 3 && swizzle > 0)
          continue;
 
+      /* mali4xx can't access unaligned vec2, don't split load input */
+      if (nir_dest_num_components(alu->dest.dest) == 2 &&
+          swizzle != 0 && swizzle != 2)
+         continue;
+
       b->cursor = nir_before_instr(&intrin->instr);
       nir_intrinsic_instr *new_intrin = nir_intrinsic_instr_create(
                                              b->shader,



More information about the mesa-commit mailing list