diff --git a/src/amd/vulkan/nir/radv_nir_lower_abi.c b/src/amd/vulkan/nir/radv_nir_lower_abi.c index 88b4dd67d6f..752a2c9c36c 100644 --- a/src/amd/vulkan/nir/radv_nir_lower_abi.c +++ b/src/amd/vulkan/nir/radv_nir_lower_abi.c @@ -292,8 +292,10 @@ lower_abi_instr(nir_builder *b, nir_intrinsic_instr *intrin, void *state) offset = nir_iadd(b, offset, nir_ishl_imm(b, intrin->src[1].ssa, 3)); } - replacement = - nir_load_global_amd(b, 2, 32, addr, offset, .base = sample_pos_offset, .access = ACCESS_NON_WRITEABLE); + offset = nir_iadd_imm_nuw(b, offset, sample_pos_offset); + addr = nir_iadd(b, addr, nir_u2u64(b, offset)); + replacement = nir_build_load_global(b, 2, 32, addr, + .access = ACCESS_NON_WRITEABLE | ACCESS_CAN_SPECULATE | ACCESS_CAN_REORDER); break; } case nir_intrinsic_load_rasterization_samples_amd: