summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRhys Perry <pendingchaos02@gmail.com>2020-05-04 18:54:11 +0100
committerEric Engestrom <eric@engestrom.ch>2020-05-06 19:32:28 +0200
commitb4e46da708ff0bafba0a94d2260467e35db578ff (patch)
tree474ee6e0116278edb9b8f76ab4267628a5be3e49
parentf2a012f987e158dee8f699c2e1ed9bef07ac9c2e (diff)
nir: add missing group_memory_barrier handling
Totals from 2 (0.00% of 127638) affected shaders: VGPRs: 164 -> 168 (+2.44%) CodeSize: 18420 -> 18756 (+1.82%) Instrs: 3658 -> 3700 (+1.15%) Cycles: 82912 -> 83080 (+0.20%) VMEM: 70 -> 69 (-1.43%) PreVGPRs: 155 -> 168 (+8.39%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> CC: <mesa-stable@lists.freedesktop.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4889> (cherry picked from commit a46aa3dc2e4c5462630d40e152904b7d163c9233)
-rw-r--r--.pick_status.json2
-rw-r--r--src/compiler/nir/nir_opt_copy_prop_vars.c1
-rw-r--r--src/compiler/nir/nir_opt_dead_write_vars.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index f3f410fef20..676b4d0206b 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -742,7 +742,7 @@
"description": "nir: add missing group_memory_barrier handling",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c
index bfbbb4cd55e..77bf2c94dde 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
+++ b/src/compiler/nir/nir_opt_copy_prop_vars.c
@@ -166,6 +166,7 @@ gather_vars_written(struct copy_prop_var_state *state,
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
switch (intrin->intrinsic) {
case nir_intrinsic_control_barrier:
+ case nir_intrinsic_group_memory_barrier:
case nir_intrinsic_memory_barrier:
written->modes |= nir_var_shader_out |
nir_var_mem_ssbo |
diff --git a/src/compiler/nir/nir_opt_dead_write_vars.c b/src/compiler/nir/nir_opt_dead_write_vars.c
index 5a8e2ffaaa0..c77b56a476c 100644
--- a/src/compiler/nir/nir_opt_dead_write_vars.c
+++ b/src/compiler/nir/nir_opt_dead_write_vars.c
@@ -133,6 +133,7 @@ remove_dead_write_vars_local(void *mem_ctx, nir_block *block)
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
switch (intrin->intrinsic) {
case nir_intrinsic_control_barrier:
+ case nir_intrinsic_group_memory_barrier:
case nir_intrinsic_memory_barrier: {
clear_unused_for_modes(&unused_writes, nir_var_shader_out |
nir_var_mem_ssbo |