[Mesa-dev] [PATCH v2 26/82] glsl: Don't do copy propagation on buffer variables

Iago Toral Quiroga itoral at igalia.com
Wed Jun 3 00:01:16 PDT 2015


Since the backing storage for these is shared we cannot ensure that the
value won't change by writes from other threads.
---
 src/glsl/opt_copy_propagation.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/glsl/opt_copy_propagation.cpp b/src/glsl/opt_copy_propagation.cpp
index 806027b..f206995 100644
--- a/src/glsl/opt_copy_propagation.cpp
+++ b/src/glsl/opt_copy_propagation.cpp
@@ -330,7 +330,7 @@ ir_copy_propagation_visitor::add_copy(ir_assignment *ir)
 	  */
 	 ir->condition = new(ralloc_parent(ir)) ir_constant(false);
 	 this->progress = true;
-      } else {
+      } else if (lhs_var->data.mode != ir_var_shader_storage) {
 	 entry = new(this->acp) acp_entry(lhs_var, rhs_var);
 	 this->acp->push_tail(entry);
       }
-- 
1.9.1



More information about the mesa-dev mailing list