diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2022-04-14 18:57:51 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-04-15 10:39:40 +0000 |
commit | 8fe8c5dfd08a7582e99c41146e50b21bea5d8485 (patch) | |
tree | 1ee251326caed815df45e8e3c77d33e7a7bb4456 | |
parent | 7be6632f7d9a18557d2f75cce607ea17d93313f5 (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.c | 4 |
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); |