[Mesa-dev] Mesa (master): draw: fix flat shading and screen-space linear interpolation in clipper
Stéphane Marchesin
stephane.marchesin at gmail.com
Tue Jul 3 16:23:46 PDT 2012
On Fri, Jun 29, 2012 at 3:49 PM, Olivier Galibert <galibert at pobox.com> wrote:
> On Fri, Jun 29, 2012 at 03:09:23PM -0700, Stéphane Marchesin wrote:
>> I do, but it fixes a regression, so unless you have a fix, it's the way to
>> go. If you have a fix I'll happily test it :)
>
> Just between us, revert on small regressions may not be optimal long
> term on a project like mesa where the review/commit pipeline is
> clogged. The risk of losing developers is non-negligible. The linux
> kernel can afford it because even if you miss a cycle you know that
> you will have another one in two months, and there are a lot of
> intermediate collation trees in which your patch can be tried out and
> shaken for bugs (subsystem trees, -next, akp patch tree, etc). I'm
> not sure Mesa can afford it.
Overall, with piglit+llvmpipe you're already reproducing the
regressions, and with git it's possible to develop in a branch until
all the regressions are gone and then merge your changes. So I think
we have a fairly reasonable setup to avoid regressions in mesa and the
overhead is pretty much zero.
>
> That said, try this.
Yup, that fixes it.
Stéphane
>
> commit 56555c58d7f16c8d619c21feb23096155e2fb505
> Author: Olivier Galibert <galibert at pobox.com>
> Date: Sat Jun 30 00:41:20 2012 +0200
>
> lp_bld_tgsi_soa: Fix conversion of system values to float.
>
> Signed-off-by: Olivier Galibert <galibert at pobox.com>
>
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> index 55db561..f8df2bc 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> @@ -811,9 +811,10 @@ emit_fetch_system_value(
> break;
> }
>
> + /* Extend that when atype can happen to be float */
> if (atype != stype) {
> if (stype == TGSI_TYPE_FLOAT) {
> - res = LLVMBuildBitCast(builder, res, bld_base->base.vec_type, "");
> + res = lp_build_int_to_float(&bld_base->base, res);
> } else if (stype == TGSI_TYPE_UNSIGNED) {
> res = LLVMBuildBitCast(builder, res, bld_base->uint_bld.vec_type, "");
> } else if (stype == TGSI_TYPE_SIGNED) {
More information about the mesa-dev
mailing list