glsl: add infrastructure for ARB_shading_language_include
[mesa.git] / src / compiler / glsl / ir.cpp
index f25ee3ee14413bd17e903d2bff6949f3d346c17c..7a6fe46073ad7b14692e8f3a6771bf8aeda74f05 100644 (file)
@@ -258,6 +258,7 @@ ir_expression::ir_expression(int op, ir_rvalue *op0)
    case ir_unop_bitfield_reverse:
    case ir_unop_interpolate_at_centroid:
    case ir_unop_saturate:
+   case ir_unop_atan:
       this->type = op0->type;
       break;
 
@@ -452,6 +453,7 @@ ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1)
    case ir_binop_mul:
    case ir_binop_div:
    case ir_binop_mod:
+   case ir_binop_atan2:
       if (op0->type->is_scalar()) {
         this->type = op1->type;
       } else if (op1->type->is_scalar()) {
@@ -1718,15 +1720,28 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
    this->u.max_ifc_array_access = NULL;
 
    this->data.explicit_location = false;
+   this->data.explicit_index = false;
+   this->data.explicit_binding = false;
+   this->data.explicit_component = false;
    this->data.has_initializer = false;
+   this->data.is_unmatched_generic_inout = false;
+   this->data.is_xfb_only = false;
+   this->data.explicit_xfb_buffer = false;
+   this->data.explicit_xfb_offset = false;
+   this->data.explicit_xfb_stride = false;
    this->data.location = -1;
    this->data.location_frac = 0;
+   this->data.matrix_layout = GLSL_MATRIX_LAYOUT_INHERITED;
+   this->data.from_named_ifc_block = false;
+   this->data.must_be_shader_input = false;
+   this->data.index = 0;
    this->data.binding = 0;
    this->data.warn_extension_index = 0;
    this->constant_value = NULL;
    this->constant_initializer = NULL;
    this->data.depth_layout = ir_depth_layout_none;
    this->data.used = false;
+   this->data.assigned = false;
    this->data.always_active_io = false;
    this->data.read_only = false;
    this->data.centroid = false;
@@ -1734,6 +1749,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
    this->data.patch = false;
    this->data.explicit_invariant = false;
    this->data.invariant = false;
+   this->data.precise = false;
    this->data.how_declared = ir_var_declared_normally;
    this->data.mode = mode;
    this->data.interpolation = INTERP_MODE_NONE;
@@ -1746,9 +1762,18 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
    this->data.memory_volatile = false;
    this->data.memory_restrict = false;
    this->data.from_ssbo_unsized_array = false;
+   this->data.implicit_sized_array = false;
    this->data.fb_fetch_output = false;
    this->data.bindless = false;
    this->data.bound = false;
+   this->data.image_format = GL_NONE;
+   this->data._num_state_slots = 0;
+   this->data.param_index = 0;
+   this->data.stream = 0;
+   this->data.xfb_buffer = -1;
+   this->data.xfb_stride = -1;
+
+   this->interface_type = NULL;
 
    if (type != NULL) {
       if (type->is_interface())