* behavior we want for the results of texture lookups, but probably not for
*/
-#include "main/core.h"
-#include "brw_context.h"
-#include "glsl/ir.h"
-#include "glsl/ir_visitor.h"
-#include "glsl/ir_rvalue_visitor.h"
-#include "glsl/nir/glsl_types.h"
+#include "main/imports.h"
+#include "compiler/glsl/ir.h"
+#include "compiler/glsl/ir_rvalue_visitor.h"
+#include "compiler/glsl_types.h"
#include "util/hash_table.h"
static bool debug = false;
switch (var->data.mode) {
case ir_var_uniform:
case ir_var_shader_storage:
+ case ir_var_shader_shared:
case ir_var_shader_in:
case ir_var_shader_out:
case ir_var_system_value:
ralloc_free(name);
+ if (entry->var->constant_initializer) {
+ ir_constant_data data = {0};
+ assert(entry->var->data.has_initializer);
+ if (entry->var->type->is_double()) {
+ data.d[0] = entry->var->constant_initializer->value.d[i];
+ } else {
+ data.u[0] = entry->var->constant_initializer->value.u[i];
+ }
+ entry->components[i]->data.has_initializer = true;
+ entry->components[i]->constant_initializer = new(entry->components[i]) ir_constant(type, &data);
+ }
+
entry->var->insert_before(entry->components[i]);
}