Module: Mesa
Branch: master
Commit: 461a5c899c08064467abb635536381a5a5659280
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=461a5c899c08064467abb635536381a5a5659280

Author: Ian Romanick <ian.d.roman...@intel.com>
Date:   Tue Jun  5 15:04:24 2018 -0700

glsl: Don't copy propagate from SSBO or shared variables either

Since SSBOs can be written by other GPU threads, copy propagating a read
can cause the value to magically change.  SSBO reads are also very
expensive, so doing it twice will be slower.

Haswell, Broadwell, and Skylake had similar results. (Skylake shown)
total instructions in shared programs: 14399120 -> 14399119 (<.01%)
instructions in affected programs: 684 -> 683 (-0.15%)
helped: 1
HURT: 0

total cycles in shared programs: 532978931 -> 532973113 (<.01%)
cycles in affected programs: 530484 -> 524666 (-1.10%)
helped: 1
HURT: 0

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.olive...@intel.com>
Cc: mesa-sta...@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106774

---

 src/compiler/glsl/opt_copy_propagation.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/compiler/glsl/opt_copy_propagation.cpp 
b/src/compiler/glsl/opt_copy_propagation.cpp
index 6220aa86da..206dffe4f1 100644
--- a/src/compiler/glsl/opt_copy_propagation.cpp
+++ b/src/compiler/glsl/opt_copy_propagation.cpp
@@ -347,6 +347,8 @@ ir_copy_propagation_visitor::add_copy(ir_assignment *ir)
    if (lhs_var != NULL && rhs_var != NULL && lhs_var != rhs_var) {
       if (lhs_var->data.mode != ir_var_shader_storage &&
           lhs_var->data.mode != ir_var_shader_shared &&
+          rhs_var->data.mode != ir_var_shader_storage &&
+          rhs_var->data.mode != ir_var_shader_shared &&
           lhs_var->data.precise == rhs_var->data.precise) {
          _mesa_hash_table_insert(acp, lhs_var, rhs_var);
       }

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to