summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2023-05-15 08:51:12 -0400
committerMarge Bot <emma+marge@anholt.net>2023-05-16 22:36:21 +0000
commit65469d6b233585da59733456f44f601a97449e39 (patch)
tree50c7947ca7f7d781b2c2f055091fe11a6d58e317
parent6431ba087f634485ef32599161a5580a9258a717 (diff)
downloadmesa-65469d6b233585da59733456f44f601a97449e39.tar.gz
agx: Lower legacy atomics sooner
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23036>
-rw-r--r--src/asahi/compiler/agx_compile.c2
-rw-r--r--src/asahi/compiler/agx_nir_lower_shared_bitsize.c12
2 files changed, 3 insertions, 11 deletions
diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c
index a4f5517ec41..46887267339 100644
--- a/src/asahi/compiler/agx_compile.c
+++ b/src/asahi/compiler/agx_compile.c
@@ -2021,7 +2021,6 @@ agx_optimize_nir(nir_shader *nir, unsigned *preamble_size)
NIR_PASS_V(nir, nir_opt_cse);
NIR_PASS_V(nir, nir_lower_alu_to_scalar, NULL, NULL);
NIR_PASS_V(nir, nir_lower_load_const_to_scalar);
- NIR_PASS_V(nir, nir_lower_legacy_atomics);
/* Cleanup optimizations */
nir_move_options move_all = nir_move_const_undef | nir_move_load_ubo |
@@ -2381,6 +2380,7 @@ agx_preprocess_nir(nir_shader *nir, bool support_lod_bias)
NIR_PASS_V(nir, nir_opt_sink, move_all);
NIR_PASS_V(nir, nir_opt_move, move_all);
NIR_PASS_V(nir, agx_nir_lower_ubo);
+ NIR_PASS_V(nir, nir_lower_legacy_atomics);
NIR_PASS_V(nir, agx_nir_lower_shared_bitsize);
}
diff --git a/src/asahi/compiler/agx_nir_lower_shared_bitsize.c b/src/asahi/compiler/agx_nir_lower_shared_bitsize.c
index dedd9d67cd8..4e3f885acad 100644
--- a/src/asahi/compiler/agx_nir_lower_shared_bitsize.c
+++ b/src/asahi/compiler/agx_nir_lower_shared_bitsize.c
@@ -17,16 +17,8 @@ pass(struct nir_builder *b, nir_instr *instr, UNUSED void *data)
switch (intr->intrinsic) {
case nir_intrinsic_load_shared:
case nir_intrinsic_store_shared:
- case nir_intrinsic_shared_atomic_add:
- case nir_intrinsic_shared_atomic_imin:
- case nir_intrinsic_shared_atomic_umin:
- case nir_intrinsic_shared_atomic_imax:
- case nir_intrinsic_shared_atomic_umax:
- case nir_intrinsic_shared_atomic_and:
- case nir_intrinsic_shared_atomic_or:
- case nir_intrinsic_shared_atomic_xor:
- case nir_intrinsic_shared_atomic_exchange:
- case nir_intrinsic_shared_atomic_comp_swap:
+ case nir_intrinsic_shared_atomic:
+ case nir_intrinsic_shared_atomic_swap:
break;
default:
return false;