Reviewed-by: Caio Marcelo de Oliveira Filho <caio.olive...@intel.com>
On Tue, Jun 12, 2018 at 03:48:13PM -0700, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Since SSBOs can be written, copy propagating a read can cause the Optional: maybe write "... can be written by other threads"? > 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> > 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 6220aa86da9..206dffe4f1c 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); > } > -- > 2.14.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev