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