Module: Mesa Branch: main Commit: 5db5ff58b73de749378223ae80f542f832ec5461 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5db5ff58b73de749378223ae80f542f832ec5461
Author: Vasily Khoruzhick <anars...@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.er...@gmail.com> Signed-off-by: Vasily Khoruzhick <anars...@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,