From dd781c1ccb2e76837f76e2d49ae4ab8fefcc97c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Sun, 17 Jul 2022 21:34:06 +0200 Subject: [PATCH] ac/nir/ngg: Create output variable for primitive ID export. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes the RADV/LLVM backend happy and mitigates a crash. Signed-off-by: Timur Kristóf Reviewed-by: Qiang Yu Part-of: --- src/amd/common/ac_nir_lower_ngg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c index fdb38279e3b..24b465194fa 100644 --- a/src/amd/common/ac_nir_lower_ngg.c +++ b/src/amd/common/ac_nir_lower_ngg.c @@ -1406,6 +1406,14 @@ ac_nir_lower_ngg_nogs(nir_shader *shader, const bool need_prim_id_store_shared = export_prim_id && shader->info.stage == MESA_SHADER_VERTEX; + if (export_prim_id) { + nir_variable *prim_id_var = nir_variable_create(shader, nir_var_shader_out, glsl_uint_type(), "ngg_prim_id"); + prim_id_var->data.location = VARYING_SLOT_PRIMITIVE_ID; + prim_id_var->data.driver_location = VARYING_SLOT_PRIMITIVE_ID; + prim_id_var->data.interpolation = INTERP_MODE_NONE; + shader->info.outputs_written |= VARYING_BIT_PRIMITIVE_ID; + } + nir_builder builder; nir_builder *b = &builder; /* This is to avoid the & */ nir_builder_init(b, impl);