Mesa (main): ac/nir: properly handle large global access constant offsets

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 15 11:09:17 UTC 2022


Module: Mesa
Branch: main
Commit: 8fe8c5dfd08a7582e99c41146e50b21bea5d8485
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8fe8c5dfd08a7582e99c41146e50b21bea5d8485

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Thu Apr 14 18:57:51 2022 +0100

ac/nir: properly handle large global access constant offsets

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Fixes: 61ac5acca3b ("radv,ac/nir: lower global access to _amd global access intrinsics")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6321
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15951>

---

 src/amd/common/ac_nir_lower_global_access.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/common/ac_nir_lower_global_access.c b/src/amd/common/ac_nir_lower_global_access.c
index 22a36732e0b..1249dd3ba1b 100644
--- a/src/amd/common/ac_nir_lower_global_access.c
+++ b/src/amd/common/ac_nir_lower_global_access.c
@@ -144,8 +144,10 @@ process_instr(nir_builder *b, nir_instr *instr, void *_)
 
    b->cursor = nir_before_instr(&intrin->instr);
 
-   if (off_const > UINT32_MAX)
+   if (off_const > UINT32_MAX) {
       addr = nir_iadd_imm(b, addr, off_const);
+      off_const = 0;
+   }
 
    nir_intrinsic_instr *new_intrin = nir_intrinsic_instr_create(b->shader, op);
 



More information about the mesa-commit mailing list