ac/nir: implement sparse image/texture loads
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7775>
This commit is contained in:
@@ -195,9 +195,14 @@ LLVMValueRef ac_build_gather_values_extended(struct ac_llvm_context *ctx, LLVMVa
|
||||
LLVMValueRef ac_build_gather_values(struct ac_llvm_context *ctx, LLVMValueRef *values,
|
||||
unsigned value_count);
|
||||
|
||||
LLVMValueRef ac_build_concat(struct ac_llvm_context *ctx, LLVMValueRef a, LLVMValueRef b);
|
||||
|
||||
LLVMValueRef ac_extract_components(struct ac_llvm_context *ctx, LLVMValueRef value, unsigned start,
|
||||
unsigned channels);
|
||||
|
||||
LLVMValueRef ac_build_expand(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
unsigned src_channels, unsigned dst_channels);
|
||||
|
||||
LLVMValueRef ac_build_expand_to_vec4(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
unsigned num_channels);
|
||||
LLVMValueRef ac_build_round(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
@@ -261,7 +266,7 @@ LLVMValueRef ac_build_buffer_load(struct ac_llvm_context *ctx, LLVMValueRef rsrc
|
||||
LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx, LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex, LLVMValueRef voffset,
|
||||
unsigned num_channels, unsigned cache_policy,
|
||||
bool can_speculate, bool d16);
|
||||
bool can_speculate, bool d16, bool tfe);
|
||||
|
||||
LLVMValueRef ac_build_tbuffer_load_short(struct ac_llvm_context *ctx, LLVMValueRef rsrc,
|
||||
LLVMValueRef voffset, LLVMValueRef soffset,
|
||||
@@ -399,6 +404,7 @@ struct ac_image_args {
|
||||
bool unorm : 1;
|
||||
bool level_zero : 1;
|
||||
bool d16 : 1; /* data and return values are 16-bit, requires GFX8+ */
|
||||
bool tfe : 1;
|
||||
unsigned attributes; /* additional call-site specific AC_FUNC_ATTRs */
|
||||
|
||||
LLVMValueRef resource;
|
||||
|
Reference in New Issue
Block a user