summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/opt_copy_propagation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/opt_copy_propagation.cpp')
-rw-r--r--src/compiler/glsl/opt_copy_propagation.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/glsl/opt_copy_propagation.cpp b/src/compiler/glsl/opt_copy_propagation.cpp
index 310708db868..ae62921a0df 100644
--- a/src/compiler/glsl/opt_copy_propagation.cpp
+++ b/src/compiler/glsl/opt_copy_propagation.cpp
@@ -331,7 +331,8 @@ ir_copy_propagation_visitor::add_copy(ir_assignment *ir)
ir->condition = new(ralloc_parent(ir)) ir_constant(false);
this->progress = true;
} else if (lhs_var->data.mode != ir_var_shader_storage &&
- lhs_var->data.mode != ir_var_shader_shared) {
+ lhs_var->data.mode != ir_var_shader_shared &&
+ lhs_var->data.precise == rhs_var->data.precise) {
entry = new(this->acp) acp_entry(lhs_var, rhs_var);
this->acp->push_tail(entry);
}