Browse Source

Integrated glsl-optimizer.

Branimir Karadžić 8 years ago
parent
commit
9908ae000b
2 changed files with 10 additions and 4 deletions
  1. 4 0
      3rdparty/.editorconfig
  2. 6 4
      3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp

+ 4 - 0
3rdparty/.editorconfig

@@ -31,3 +31,7 @@ indent_size  = 4
 [remotery/*]
 [remotery/*]
 indent_style = space
 indent_style = space
 indent_size  = 4
 indent_size  = 4
+
+[glsl-optimizer/*]
+indent_style = space
+indent_size  = 3

+ 6 - 4
3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp

@@ -3045,10 +3045,12 @@ process_initializer(ir_variable *var, ast_declaration *decl,
    /* Propagate precision qualifier for constant value */
    /* Propagate precision qualifier for constant value */
    if (type->qualifier.flags.q.constant) {
    if (type->qualifier.flags.q.constant) {
       ir_constant *constant_value = rhs->constant_expression_value();
       ir_constant *constant_value = rhs->constant_expression_value();
-      constant_value->set_precision((glsl_precision)type->qualifier.precision);
-      if (constant_value->type->is_array()) {
-         for (unsigned i = 0; i < constant_value->type->length; i++) {
-            constant_value->get_array_element(i)->set_precision((glsl_precision)type->qualifier.precision);
+      if (NULL != constant_value) {
+         constant_value->set_precision((glsl_precision)type->qualifier.precision);
+         if (constant_value->type->is_array()) {
+            for (unsigned i = 0; i < constant_value->type->length; i++) {
+               constant_value->get_array_element(i)->set_precision((glsl_precision)type->qualifier.precision);
+            }
          }
          }
       }
       }
    }
    }