summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRhys Perry <pendingchaos02@gmail.com>2022-04-14 18:57:51 +0100
committerMarge Bot <emma+marge@anholt.net>2022-04-15 10:39:40 +0000
commit8fe8c5dfd08a7582e99c41146e50b21bea5d8485 (patch)
tree1ee251326caed815df45e8e3c77d33e7a7bb4456
parent7be6632f7d9a18557d2f75cce607ea17d93313f5 (diff)
ac/nir: properly handle large global access constant offsets
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@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>
-rw-r--r--src/amd/common/ac_nir_lower_global_access.c4
1 files changed, 3 insertions, 1 deletions
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);