From 5db5ff58b73de749378223ae80f542f832ec5461 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Thu, 30 Sep 2021 19:31:09 -0700 Subject: [PATCH] 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 Signed-off-by: Vasily Khoruzhick Part-of: --- 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,