summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/nir/nir_to_tgsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/nir/nir_to_tgsi.c')
-rw-r--r--src/gallium/auxiliary/nir/nir_to_tgsi.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/gallium/auxiliary/nir/nir_to_tgsi.c b/src/gallium/auxiliary/nir/nir_to_tgsi.c
index 5d60915392f..cb95afa5383 100644
--- a/src/gallium/auxiliary/nir/nir_to_tgsi.c
+++ b/src/gallium/auxiliary/nir/nir_to_tgsi.c
@@ -3673,15 +3673,8 @@ nir_lower_primid_sysval_to_input_filter(const nir_instr *instr, const void *_dat
static nir_ssa_def *
nir_lower_primid_sysval_to_input_lower(nir_builder *b, nir_instr *instr, void *data)
{
- nir_variable *var = *(nir_variable **)data;
- if (!var) {
- var = nir_variable_create(b->shader, nir_var_shader_in, glsl_uint_type(), "gl_PrimitiveID");
- var->data.location = VARYING_SLOT_PRIMITIVE_ID;
- b->shader->info.inputs_read |= VARYING_BIT_PRIMITIVE_ID;
- var->data.driver_location = b->shader->num_inputs++;
-
- *(nir_variable **)data = var;
- }
+ nir_variable *var = nir_get_variable_with_location(b->shader, nir_var_shader_in,
+ VARYING_SLOT_PRIMITIVE_ID, glsl_uint_type());
nir_io_semantics semantics = {
.location = var->data.location,
@@ -3695,11 +3688,9 @@ nir_lower_primid_sysval_to_input_lower(nir_builder *b, nir_instr *instr, void *d
static bool
nir_lower_primid_sysval_to_input(nir_shader *s)
{
- nir_variable *input = NULL;
-
return nir_shader_lower_instructions(s,
nir_lower_primid_sysval_to_input_filter,
- nir_lower_primid_sysval_to_input_lower, &input);
+ nir_lower_primid_sysval_to_input_lower, NULL);
}
const void *