From ccf3e8fc9b961c1aaa649ba19d35a5dae6e7ed6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Tue, 26 Mar 2013 15:09:27 +0100 Subject: [PATCH] radeonsi: remove sampler writemask v3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v2: fix instrinsic name as well v3: LLVM revision incremented as well Signed-off-by: Christian König Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeon/LLVM_REVISION.txt | 2 +- .../drivers/radeonsi/radeonsi_shader.c | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/gallium/drivers/radeon/LLVM_REVISION.txt b/src/gallium/drivers/radeon/LLVM_REVISION.txt index e26c652e96f..e5e7b653fb7 100644 --- a/src/gallium/drivers/radeon/LLVM_REVISION.txt +++ b/src/gallium/drivers/radeon/LLVM_REVISION.txt @@ -1 +1 @@ -@179020 +@179164 diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c index d33d9db5c82..bddf3bd1327 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c @@ -795,10 +795,6 @@ static void tex_fetch_args( unsigned count = 0; unsigned chan; - /* WriteMask */ - /* XXX: should be optimized using emit_data->inst->Dst[0].Register.WriteMask*/ - emit_data->args[0] = lp_build_const_int32(bld_base->base.gallivm, 0xf); - /* Fetch and project texture coordinates */ coords[3] = lp_build_emit_fetch(bld_base, emit_data->inst, 0, TGSI_CHAN_W); for (chan = 0; chan < 3; chan++ ) { @@ -904,20 +900,19 @@ static void tex_fetch_args( while (count < util_next_power_of_two(count)) address[count++] = LLVMGetUndef(LLVMInt32TypeInContext(gallivm->context)); - emit_data->args[1] = lp_build_gather_values(gallivm, address, count); + emit_data->args[0] = lp_build_gather_values(gallivm, address, count); /* Resource */ - emit_data->args[2] = si_shader_ctx->resources[emit_data->inst->Src[1].Register.Index]; + emit_data->args[1] = si_shader_ctx->resources[emit_data->inst->Src[1].Register.Index]; /* Sampler */ - emit_data->args[3] = si_shader_ctx->samplers[emit_data->inst->Src[1].Register.Index]; + emit_data->args[2] = si_shader_ctx->samplers[emit_data->inst->Src[1].Register.Index]; /* Dimensions */ - emit_data->args[4] = lp_build_const_int32(bld_base->base.gallivm, target); + emit_data->args[3] = lp_build_const_int32(bld_base->base.gallivm, target); + + emit_data->arg_count = 4; - emit_data->arg_count = 5; - /* XXX: To optimize, we could use a float or v2f32, if the last bits of - * the writemask are clear */ emit_data->dst_type = LLVMVectorType( LLVMFloatTypeInContext(bld_base->base.gallivm->context), 4); @@ -931,7 +926,7 @@ static void build_tex_intrinsic(const struct lp_build_tgsi_action * action, char intr_name[23]; sprintf(intr_name, "%sv%ui32", action->intr_name, - LLVMGetVectorSize(LLVMTypeOf(emit_data->args[1]))); + LLVMGetVectorSize(LLVMTypeOf(emit_data->args[0]))); emit_data->output[emit_data->chan] = build_intrinsic( base->gallivm->builder, intr_name, emit_data->dst_type,