summaryrefslogtreecommitdiffstats
path: root/src/amd/common/ac_llvm_build.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/amd/common/ac_llvm_build.h')
-rw-r--r--src/amd/common/ac_llvm_build.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h
index 27f2097a1c6..f57acc20663 100644
--- a/src/amd/common/ac_llvm_build.h
+++ b/src/amd/common/ac_llvm_build.h
@@ -205,6 +205,35 @@ struct ac_export_args {
void ac_emit_export(struct ac_llvm_context *ctx, struct ac_export_args *a);
+enum ac_image_opcode {
+ ac_image_sample,
+ ac_image_gather4,
+ ac_image_load,
+ ac_image_load_mip,
+ ac_image_get_lod,
+ ac_image_get_resinfo,
+};
+
+struct ac_image_args {
+ enum ac_image_opcode opcode;
+ bool level_zero;
+ bool bias;
+ bool lod;
+ bool deriv;
+ bool compare;
+ bool offset;
+
+ LLVMValueRef resource;
+ LLVMValueRef sampler;
+ LLVMValueRef addr;
+ unsigned dmask;
+ bool unorm;
+ bool da;
+};
+
+LLVMValueRef ac_emit_image_opcode(struct ac_llvm_context *ctx,
+ struct ac_image_args *a);
+
#ifdef __cplusplus
}
#endif