From 6a502a0a2c5a9c795a275106afee8a1d6033fa52 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Thu, 28 Oct 2021 16:26:37 +0200 Subject: [PATCH] nir: Add new option to lower invocation ID from invocation index. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add this as an option to nir_lower_compute_system_values_options instead of just relying on the shader's options. Signed-off-by: Timur Kristóf Reviewed-by: Caio Oliveira Part-of: --- src/compiler/nir/nir.h | 1 + src/compiler/nir/nir_lower_system_values.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 4e83281..5806049 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -5067,6 +5067,7 @@ typedef struct nir_lower_compute_system_values_options { bool has_base_workgroup_id:1; bool shuffle_local_ids_for_quad_derivatives:1; bool lower_local_invocation_index:1; + bool lower_cs_local_id_from_index:1; } nir_lower_compute_system_values_options; bool nir_lower_compute_system_values(nir_shader *shader, diff --git a/src/compiler/nir/nir_lower_system_values.c b/src/compiler/nir/nir_lower_system_values.c index 5a60b42..a78b5e6 100644 --- a/src/compiler/nir/nir_lower_system_values.c +++ b/src/compiler/nir/nir_lower_system_values.c @@ -275,7 +275,8 @@ lower_compute_system_value_instr(nir_builder *b, /* If lower_cs_local_id_from_index is true, then we derive the local * index from the local id. */ - if (b->shader->options->lower_cs_local_id_from_index) { + if (b->shader->options->lower_cs_local_id_from_index || + (options && options->lower_cs_local_id_from_index)) { /* We lower gl_LocalInvocationID from gl_LocalInvocationIndex based * on this formula: * -- 2.7.4