Skip to content

aco: fix nir_op_pack_32_4x8 handling

Chia-I Wu requested to merge olv/mesa:radv-pack-32-4x8 into main

What does this MR do and why?

aco: fix nir_op_pack_32_4x8 handling

Ever since commit 52ee4cf2292 ("nir/builder: Teach nir_pack_bits and
nir_unpack_bits about 32_4x8"), the operand of nir_op_pack_32_4x8 might
include swizzle and get_alu_src can return a vgpr.  This fixes

  ACO ERROR:
      In file ../src/amd/compiler/aco_validate.cpp:98
      Operand and Definition types do not match:  s1: %44 = p_parallelcopy %158
  test_basic: ../src/amd/compiler/aco_interface.cpp:85: void validate(aco::Program*):
      Assertion `is_valid' failed.

Merge request reports