From 27a0b24bf238342031e0709584e4d71ab228f1ec Mon Sep 17 00:00:00 2001 From: Matthew Nicholls Date: Wed, 25 Oct 2017 14:20:43 +0100 Subject: [PATCH] ac/nir: generate correct instruction for atomic min/max on unsigned images v2: fix silly typo Cc: "17.2 17.3" Reviewed-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/common/ac_nir_to_llvm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 3d635d42064..06937d684be 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -3667,15 +3667,17 @@ static LLVMValueRef visit_image_atomic(struct ac_nir_context *ctx, LLVMValueRef i1true = LLVMConstInt(ctx->ac.i1, 1, false); MAYBE_UNUSED int length; + bool is_unsigned = glsl_get_sampler_result_type(type) == GLSL_TYPE_UINT; + switch (instr->intrinsic) { case nir_intrinsic_image_atomic_add: atomic_name = "add"; break; case nir_intrinsic_image_atomic_min: - atomic_name = "smin"; + atomic_name = is_unsigned ? "umin" : "smin"; break; case nir_intrinsic_image_atomic_max: - atomic_name = "smax"; + atomic_name = is_unsigned ? "umax" : "smax"; break; case nir_intrinsic_image_atomic_and: atomic_name = "and";