summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>2020-08-06 09:13:32 -0400
committerMarge Bot <eric+marge@anholt.net>2020-08-11 09:00:11 +0000
commit5cf7eec6b153baa69788938cac902e59da965d62 (patch)
tree772acb13f16ce62a0026d8ef5b0f5caab5776d95
parent2d010d3dc5f210336d283caaf6453c52cbab6c31 (diff)
nir/lower_ssbo: Don't set align_* for atomics
Fixes crashes when lowering atomic SSBOs: run: ../src/compiler/nir/nir.h:1875: nir_intrinsic_align_mul: Assertion `info->index_map[NIR_INTRINSIC_ALIGN_MUL] > 0' failed. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6204>
-rw-r--r--src/compiler/nir/nir_lower_ssbo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_lower_ssbo.c b/src/compiler/nir/nir_lower_ssbo.c
index 904d92fa7e8..1c861755619 100644
--- a/src/compiler/nir/nir_lower_ssbo.c
+++ b/src/compiler/nir/nir_lower_ssbo.c
@@ -128,8 +128,10 @@ lower_ssbo_instr(nir_builder *b, nir_intrinsic_instr *intr)
global->num_components = intr->num_components;
global->src[is_store ? 1 : 0] = nir_src_for_ssa(address);
- nir_intrinsic_set_align_mul(global, nir_intrinsic_align_mul(intr));
- nir_intrinsic_set_align_offset(global, nir_intrinsic_align_offset(intr));
+ if (!is_atomic) {
+ nir_intrinsic_set_align_mul(global, nir_intrinsic_align_mul(intr));
+ nir_intrinsic_set_align_offset(global, nir_intrinsic_align_offset(intr));
+ }
if (is_store) {
nir_src_copy(&global->src[0], &intr->src[0], global);