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,