nir: Set the alignment for SSBO lowering
authorIcecream95 <ixn@keemail.me>
Fri, 17 Jul 2020 11:26:41 +0000 (23:26 +1200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 17 Jul 2020 18:03:50 +0000 (18:03 +0000)
The alignment can just be copied from the source intrinsic.

Fixes the assertion
nir_intrinsic_align_offset(instr) < nir_intrinsic_align_mul(instr)

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5949>

src/compiler/nir/nir_lower_ssbo.c

index 144cd884cf15b936ae16370fde05b07393002434..904d92fa7e860fe861011e0df537da1ebdd11cd2 100644 (file)
@@ -128,6 +128,9 @@ 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_store) {
       nir_src_copy(&global->src[0], &intr->src[0], global);
       nir_intrinsic_set_write_mask(global, nir_intrinsic_write_mask(intr));