[Mesa-dev] [PATCH] radeonsi: Fix y/z/w component values of TGSI_SEMANTIC_FOG pixel shader inputs
Alex Deucher
alexdeucher at gmail.com
Thu Aug 22 06:44:00 PDT 2013
On Wed, Aug 21, 2013 at 12:33 PM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> They are defined as constant 0.0/0.0/1.0.
>
> Three more little piglits.
>
> Cc: mesa-stable at lists.freedesktop.org
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> src/gallium/drivers/radeonsi/radeonsi_shader.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c
> index f1c7c6b..a1dec17 100644
> --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
> +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
> @@ -198,6 +198,8 @@ static void declare_input_fs(
> struct si_shader *shader = &si_shader_ctx->shader->shader;
> struct lp_build_context * base =
> &si_shader_ctx->radeon_bld.soa.bld_base.base;
> + struct lp_build_context *uint =
> + &si_shader_ctx->radeon_bld.soa.bld_base.uint_bld;
> struct gallivm_state * gallivm = base->gallivm;
> LLVMTypeRef input_type = LLVMFloatTypeInContext(gallivm->context);
> LLVMValueRef main_fn = si_shader_ctx->radeon_bld.main_fn;
> @@ -341,6 +343,22 @@ static void declare_input_fs(
> }
>
> shader->ninterp++;
> + } else if (decl->Semantic.Name == TGSI_SEMANTIC_FOG) {
> + LLVMValueRef args[4];
> +
> + args[0] = uint->zero;
> + args[1] = attr_number;
> + args[2] = params;
> + args[3] = interp_param;
> + si_shader_ctx->radeon_bld.inputs[radeon_llvm_reg_index_soa(input_index, 0)] =
> + build_intrinsic(base->gallivm->builder, intr_name,
> + input_type, args, args[3] ? 4 : 3,
> + LLVMReadNoneAttribute | LLVMNoUnwindAttribute);
> + si_shader_ctx->radeon_bld.inputs[radeon_llvm_reg_index_soa(input_index, 1)] =
> + si_shader_ctx->radeon_bld.inputs[radeon_llvm_reg_index_soa(input_index, 2)] =
> + lp_build_const_float(gallivm, 0.0f);
> + si_shader_ctx->radeon_bld.inputs[radeon_llvm_reg_index_soa(input_index, 3)] =
> + lp_build_const_float(gallivm, 1.0f);
> } else {
> for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) {
> LLVMValueRef args[4];
> --
> 1.8.4.rc3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list