mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-12 13:20:33 +01:00
radeonsi: fix mesh shader outputs kill
Mesh shader uses store per vertex output for point size
and store per primitive output for layer id.
This fixes gpu-ratemeter run slow for kill point size
and layer id cases when mono shader is used which expect
to kill these outputs.
Also gather fragment shader per primitive input info
to kill mesh shader per primitive output.
Fixes: e6e21dfbf2 ("radeonsi: kill outputs for mesh shader")
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39644>
This commit is contained in:
parent
5b159025d7
commit
f20cd07e21
2 changed files with 5 additions and 1 deletions
|
|
@ -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. */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue