glsl: Remove unnecessary assignments to type
[mesa.git] / src / compiler / glsl / ir_set_program_inouts.cpp
index 66f0c1ebf08279da4045145b0258bd5498193507..90b06b9f41749b174a4e62ea4c2396c4ee3e8ed5 100644 (file)
@@ -149,7 +149,7 @@ void
 ir_set_program_inouts_visitor::mark_whole_variable(ir_variable *var)
 {
    const glsl_type *type = var->type;
-
+   bool is_vertex_input = false;
    if (this->shader_stage == MESA_SHADER_GEOMETRY &&
        var->data.mode == ir_var_shader_in && type->is_array()) {
       type = type->fields.array;
@@ -173,8 +173,11 @@ ir_set_program_inouts_visitor::mark_whole_variable(ir_variable *var)
       type = type->fields.array;
    }
 
-   mark(this->prog, var, 0,
-        var->count_attribute_slots(this->shader_stage == MESA_SHADER_VERTEX),
+   if (this->shader_stage == MESA_SHADER_VERTEX &&
+       var->data.mode == ir_var_shader_in)
+      is_vertex_input = true;
+
+   mark(this->prog, var, 0, type->count_attribute_slots(is_vertex_input),
         this->shader_stage);
 }