ac/llvm: set invariant.load on image loads with ACCESS_CAN_REORDER
authorMarek Olšák <marek.olsak@amd.com>
Sun, 4 Dec 2022 11:32:19 +0000 (06:32 -0500)
committerMarge Bot <emma+marge@anholt.net>
Tue, 6 Dec 2022 13:27:16 +0000 (13:27 +0000)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20146>

src/amd/llvm/ac_nir_to_llvm.c

index 8522b03..58f12a1 100644 (file)
@@ -2664,7 +2664,7 @@ static LLVMValueRef visit_image_load(struct ac_nir_context *ctx, const nir_intri
       if (!level_zero)
          args.lod = get_src(ctx, instr->src[3]);
       args.dmask = 15;
-      args.attributes = 0;
+      args.attributes = access & ACCESS_CAN_REORDER ? AC_ATTR_INVARIANT_LOAD : 0;
 
       assert(instr->dest.is_ssa);
       args.d16 = instr->dest.ssa.bit_size == 16;