diff options
Diffstat (limited to 'src/mesa/main/ffvertex_prog.c')
-rw-r--r-- | src/mesa/main/ffvertex_prog.c | 34 |
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; } |