diff --git a/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c b/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c index 03922302a9e..dc49cbf62ee 100644 --- a/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c +++ b/src/gallium/drivers/radeonsi/si_nir_kill_outputs.c @@ -35,7 +35,10 @@ bool si_nir_kill_outputs(nir_shader *nir, const union si_shader_key *key) continue; nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); - if (intr->intrinsic != nir_intrinsic_store_output) + if (intr->intrinsic != nir_intrinsic_store_output && + /* for mesh shader outputs */ + intr->intrinsic != nir_intrinsic_store_per_vertex_output && + intr->intrinsic != nir_intrinsic_store_per_primitive_output) continue; /* No indirect indexing allowed. */ diff --git a/src/gallium/drivers/radeonsi/si_shader_info.c b/src/gallium/drivers/radeonsi/si_shader_info.c index 34fcebdcdea..be5304d4a86 100644 --- a/src/gallium/drivers/radeonsi/si_shader_info.c +++ b/src/gallium/drivers/radeonsi/si_shader_info.c @@ -407,6 +407,7 @@ static void gather_instruction(const struct nir_shader *nir, struct si_shader_in break; case nir_intrinsic_load_input: case nir_intrinsic_load_per_vertex_input: + case nir_intrinsic_load_per_primitive_input: case nir_intrinsic_load_input_vertex: case nir_intrinsic_load_interpolated_input: gather_io_instrinsic(nir, info, intr, true);