diff options
author | Samuel Pitoiset <[email protected]> | 2018-01-10 20:12:10 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2018-01-26 12:14:27 +0100 |
commit | 51e14bc3c00c3fe0511eae7eddc8d89365e964a2 (patch) | |
tree | b84e8610e8992a9aba57666cc85feeecbcf93065 | |
parent | d7c93b558a7f8d97555111664a772b5110eeb6c0 (diff) |
ac: pass the number of channels to ac_build_buffer_load_format()
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r-- | src/amd/common/ac_llvm_build.c | 16 | ||||
-rw-r--r-- | src/amd/common/ac_llvm_build.h | 1 | ||||
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 2 |
5 files changed, 9 insertions, 16 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 705a08ac7ae..fa2f7f5097e 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -1013,20 +1013,12 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx, LLVMValueRef rsrc, LLVMValueRef vindex, LLVMValueRef voffset, + unsigned num_channels, bool can_speculate) { - LLVMValueRef args [] = { - LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""), - vindex, - voffset, - ctx->i1false, /* glc */ - ctx->i1false, /* slc */ - }; - - return ac_build_intrinsic(ctx, - "llvm.amdgcn.buffer.load.format.v4f32", - ctx->v4f32, args, ARRAY_SIZE(args), - ac_get_load_intr_attribs(can_speculate)); + return ac_build_buffer_load_common(ctx, rsrc, vindex, voffset, + num_channels, false, false, + can_speculate, true); } /** diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h index f87889daf6d..0a9053ef92c 100644 --- a/src/amd/common/ac_llvm_build.h +++ b/src/amd/common/ac_llvm_build.h @@ -214,6 +214,7 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx, LLVMValueRef rsrc, LLVMValueRef vindex, LLVMValueRef voffset, + unsigned num_channels, bool can_speculate); LLVMValueRef diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 7b6d7bca9c1..b40769fe5a0 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -2319,7 +2319,7 @@ static LLVMValueRef build_tex_intrinsic(struct ac_nir_context *ctx, args->resource, args->addr, ctx->ac.i32_0, - true); + 4, true); } args->opcode = ac_image_sample; @@ -5361,7 +5361,7 @@ handle_vs_input_decl(struct nir_to_llvm_context *ctx, input = ac_build_buffer_load_format(&ctx->ac, t_list, buffer_index, ctx->ac.i32_0, - true); + 4, true); for (unsigned chan = 0; chan < 4; chan++) { LLVMValueRef llvm_chan = LLVMConstInt(ctx->ac.i32, chan, false); diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 4717366d07b..8d3e34f91c8 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -610,7 +610,7 @@ void si_llvm_load_input_vs( input[i] = ac_build_buffer_load_format(&ctx->ac, t_list, vertex_index, voffset, - true); + 4, true); } /* Break up the vec4 into individual components */ diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c index d5c9470974a..7bffc26ba6c 100644 --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c @@ -1826,7 +1826,7 @@ static void build_tex_intrinsic(const struct lp_build_tgsi_action *action, emit_data->args[0], emit_data->args[2], emit_data->args[1], - true); + 4, true); return; } |