mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
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.romanick@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106774
This commit is contained in:
parent
1d92d6486a
commit
461a5c899c
1 changed files with 2 additions and 0 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue