From 25897f0692b59c7f5baff9eba9608335b7c2f088 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Thu, 22 May 2025 16:48:55 +0800 Subject: [PATCH] nir/recompute_io_bases: fix for per primitive IO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It does not handle per primitive output and count per primitive input. Reviewed-by: Timur Kristóf Reviewed-by: Marek Olšák Part-of: --- src/compiler/nir/nir_recompute_io_bases.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_recompute_io_bases.c b/src/compiler/nir/nir_recompute_io_bases.c index 1b6f81f7647..38ef4492d2a 100644 --- a/src/compiler/nir/nir_recompute_io_bases.c +++ b/src/compiler/nir/nir_recompute_io_bases.c @@ -50,6 +50,7 @@ nir_get_io_intrinsic(nir_instr *instr, nir_variable_mode modes, case nir_intrinsic_store_output: case nir_intrinsic_store_per_vertex_output: case nir_intrinsic_store_per_view_output: + case nir_intrinsic_store_per_primitive_output: *out_mode = nir_var_shader_out; return modes & nir_var_shader_out ? intr : NULL; default: @@ -149,7 +150,7 @@ nir_recompute_io_bases(nir_shader *nir, nir_variable_mode modes) nir_progress(changed, impl, nir_metadata_control_flow); if (modes & nir_var_shader_in) - nir->num_inputs = BITSET_COUNT(inputs); + nir->num_inputs = BITSET_COUNT(inputs) + BITSET_COUNT(per_prim_inputs); if (modes & nir_var_shader_out) nir->num_outputs = BITSET_COUNT(outputs);