ac/llvm: remove the -1 hack from ac_atomic_inc_wrap

To match the behavior of proprietary drivers.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5688>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2020-06-19 18:33:32 +02:00
parent 0c8873d85d
commit 438392243f

View file

@ -3032,16 +3032,6 @@ static LLVMValueRef visit_image_atomic(struct ac_nir_context *ctx,
case nir_intrinsic_image_deref_atomic_inc_wrap: {
atomic_name = "inc";
atomic_subop = ac_atomic_inc_wrap;
/* ATOMIC_INC instruction does:
* value = (value + 1) % (data + 1)
* but we want:
* value = (value + 1) % data
* So replace 'data' by 'data - 1'.
*/
ctx->ssa_defs[instr->src[3].ssa->index] =
LLVMBuildSub(ctx->ac.builder,
ctx->ssa_defs[instr->src[3].ssa->index],
ctx->ac.i32_1, "");
break;
}
case nir_intrinsic_bindless_image_atomic_dec_wrap: