glsl: Eliminate ambiguity between function ins/outs and shader ins/outs
[mesa.git] / src / glsl / opt_tree_grafting.cpp
index 25b18ea940c98246a15f84e9037f5561b940c71f..113abb7b043021f5d76aad34b6c6e5b500166304 100644 (file)
@@ -211,7 +211,8 @@ ir_tree_grafting_visitor::visit_enter(ir_call *ir)
       ir_rvalue *ir = (ir_rvalue *)iter.get();
       ir_rvalue *new_ir = ir;
 
-      if (sig_param->mode != ir_var_in && sig_param->mode != ir_var_const_in) {
+      if (sig_param->mode != ir_var_function_in
+          && sig_param->mode != ir_var_const_in) {
         if (check_graft(ir, sig_param) == visit_stop)
            return visit_stop;
         continue;
@@ -350,8 +351,9 @@ tree_grafting_basic_block(ir_instruction *bb_first,
       if (!lhs_var)
         continue;
 
-      if (lhs_var->mode == ir_var_out ||
-         lhs_var->mode == ir_var_inout)
+      if (lhs_var->mode == ir_var_function_out ||
+         lhs_var->mode == ir_var_function_inout ||
+          lhs_var->mode == ir_var_shader_out)
         continue;
 
       ir_variable_refcount_entry *entry = info->refs->get_variable_entry(lhs_var);