From: Marek Olšák <marek.ol...@amd.com>

---
 src/amd/common/ac_llvm_build.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 8fac89c..6364657 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -729,20 +729,40 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
                                               ARRAY_SIZE(args), 
AC_FUNC_ATTR_READONLY);
        }
 }
 
 LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
                                         LLVMValueRef rsrc,
                                         LLVMValueRef vindex,
                                         LLVMValueRef voffset,
                                         bool readonly_memory)
 {
+       if (HAVE_LLVM >= 0x0309) {
+               LLVMValueRef args [] = {
+                       LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
+                       vindex,
+                       voffset,
+                       LLVMConstInt(ctx->i1, 0, 0), /* glc */
+                       LLVMConstInt(ctx->i1, 0, 0), /* slc */
+               };
+
+               return ac_emit_llvm_intrinsic(ctx,
+                                             
"llvm.amdgcn.buffer.load.format.v4f32",
+                                             ctx->v4f32, args, 
ARRAY_SIZE(args),
+                                             /* READNONE means writes can't
+                                              * affect it, while READONLY means
+                                              * that writes can affect it. */
+                                             readonly_memory ?
+                                                     AC_FUNC_ATTR_READNONE :
+                                                     AC_FUNC_ATTR_READONLY);
+       }
+
        LLVMValueRef args[] = {
                rsrc,
                voffset,
                vindex,
        };
        return ac_emit_llvm_intrinsic(ctx, "llvm.SI.vs.load.input",
                                      ctx->v4f32, args, 3,
                                      AC_FUNC_ATTR_READNONE |
                                      AC_FUNC_ATTR_LEGACY);
 }
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to