On Tue, Feb 12, 2013 at 06:39:09PM +0100, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daen...@amd.com>
> 
> 8 more little piglits.
>

Is this a candidate for the stable branch?
 
> Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
> ---
>  src/gallium/drivers/radeonsi/radeonsi_shader.c | 29 
> ++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c 
> b/src/gallium/drivers/radeonsi/radeonsi_shader.c
> index 36711be..5b832f9 100644
> --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
> +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
> @@ -612,6 +612,12 @@ static void si_llvm_emit_epilogue(struct 
> lp_build_tgsi_context * bld_base)
>               int i;
>  
>               tgsi_parse_token(parse);
> +
> +             if (parse->FullToken.Token.Type == TGSI_TOKEN_TYPE_PROPERTY &&
> +                 parse->FullToken.FullProperty.Property.PropertyName ==
> +                 TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS)
> +                     shader->fs_write_all = TRUE;
> +
>               if (parse->FullToken.Token.Type != TGSI_TOKEN_TYPE_DECLARATION)
>                       continue;
>  
> @@ -775,6 +781,29 @@ static void si_llvm_emit_epilogue(struct 
> lp_build_tgsi_context * bld_base)
>       last_args[1] = lp_build_const_int32(base->gallivm,
>                                           si_shader_ctx->type == 
> TGSI_PROCESSOR_FRAGMENT);
>  
> +     if (shader->fs_write_all && shader->nr_cbufs > 1) {
> +             int i;
> +
> +             /* Specify that this is not yet the last export */
> +             last_args[2] = lp_build_const_int32(base->gallivm, 0);
> +
> +             for (i = 1; i < shader->nr_cbufs; i++) {
> +                     /* Specify the target we are exporting */
> +                     last_args[3] = lp_build_const_int32(base->gallivm,
> +                                                         V_008DFC_SQ_EXP_MRT 
> + i);
> +
> +                     lp_build_intrinsic(base->gallivm->builder,
> +                                        "llvm.SI.export",
> +                                        
> LLVMVoidTypeInContext(base->gallivm->context),
> +                                        last_args, 9);
> +
> +                     si_shader_ctx->shader->spi_shader_col_format |=
> +                             si_shader_ctx->shader->spi_shader_col_format << 
> 4;
> +             }
> +
> +             last_args[3] = lp_build_const_int32(base->gallivm, 
> V_008DFC_SQ_EXP_MRT);
> +     }
> +
>       /* Specify that this is the last export */
>       last_args[2] = lp_build_const_int32(base->gallivm, 1);
>  
> -- 
> 1.8.1.3
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to