[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