r600/sfn: catch remaining indirect inputs when lowering GS input arrays
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Lowering IO to temps leads to problems with RA with piglit
   spec@glsl-1.50@execution@geometry@max-input-component

Not doing so results in an assertion failure with piglit
   spec@glsl-1.50@execution@geometry@dynamic_input_array_index

because not all indirect IO access is lowered. Using
nir_lower_indirect_derefs works around this limitations.

v2: Fix formatting (Patrick Lerda)

Fixes: 1186c73c6 (r600: implement gs indirect load_per_vertex_input)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36051>
This commit is contained in:
Gert Wollny 2025-07-09 22:58:30 +02:00 committed by Marge Bot
parent 00b752565c
commit 5d4f59a3ed

View file

@ -798,6 +798,11 @@ r600_finalize_nir_common(nir_shader *nir, enum amd_gfx_level gfx_level)
if (nir->info.stage == MESA_SHADER_GEOMETRY) {
NIR_PASS(_, nir, r600_gs_load_deref_io_to_indirect_per_vertex_input);
NIR_PASS(_,
nir,
nir_lower_indirect_derefs,
nir_var_shader_in,
R600_GS_VERTEX_INDIRECT_TOTAL);
}
NIR_PASS(_, nir, nir_lower_flrp, nir_lower_flrp_mask, false);