summaryrefslogtreecommitdiff
path: root/src/mesa/main/ffvertex_prog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/ffvertex_prog.c')
-rw-r--r--src/mesa/main/ffvertex_prog.c34
1 files changed, 5 insertions, 29 deletions
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index a5d8bb1a3af..31fea0cbf7f 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -375,21 +375,9 @@ load_input(struct tnl_program *p, gl_vert_attrib attr,
const struct glsl_type *type)
{
if (p->state->varying_vp_inputs & VERT_BIT(attr)) {
- nir_variable *var =
- nir_find_variable_with_location(p->b->shader,
- nir_var_shader_in,
- attr);
- if (!var) {
- var = nir_variable_create(p->b->shader,
- nir_var_shader_in,
- type,
- gl_vert_attrib_name(attr));
-
- var->data.location = attr;
- var->data.driver_location = p->b->shader->num_inputs++;
-
- p->b->shader->info.inputs_read |= (uint64_t)VERT_BIT(attr);
- }
+ nir_variable *var = nir_get_variable_with_location(p->b->shader, nir_var_shader_in,
+ attr, type);
+ p->b->shader->info.inputs_read |= (uint64_t)VERT_BIT(attr);
return nir_load_var(p->b, var);
} else
return load_state_var(p, STATE_CURRENT_ATTRIB, attr, 0, 0, type);
@@ -405,20 +393,8 @@ static nir_variable *
register_output(struct tnl_program *p, gl_varying_slot slot,
const struct glsl_type *type)
{
- nir_variable *var =
- nir_find_variable_with_location(p->b->shader,
- nir_var_shader_out,
- slot);
- if (var)
- return var;
-
- const char *name =
- gl_varying_slot_name_for_stage(slot, MESA_SHADER_VERTEX);
- var = nir_variable_create(p->b->shader, nir_var_shader_out, type, name);
-
- var->data.location = slot;
- var->data.driver_location = p->b->shader->num_outputs++;
-
+ nir_variable *var = nir_get_variable_with_location(p->b->shader, nir_var_shader_out,
+ slot, type);
p->b->shader->info.outputs_written |= BITFIELD64_BIT(slot);
return var;
}