[Mesa-dev] [PATCH 1/3] glsl/linker: fix varying packing for non-flat integer varyings.
Paul Berry
stereotype441 at gmail.com
Sun Apr 7 11:42:57 PDT 2013
On 7 April 2013 11:12, Jordan Justen <jljusten at gmail.com> wrote:
> On Sat, Apr 6, 2013 at 7:49 PM, Paul Berry <stereotype441 at gmail.com>
> wrote:
> > + if (consumer_var == NULL) {
> > + /* Since there is no consumer_var, the interpolation type of this
> > + * varying cannot possibly affect rendering. Also, since the GL
> spec
> > + * only requires integer varyings to be "flat" when they are
> fragment
> > + * shader inputs, it is possible that this variable is non-flat
> and is
> > + * (or contains) an integer.
> > + *
> > + * lower_packed_varyings requires all integer varyings to flat,
> > + * regardless of where they appear. We can trivially satisfy that
> > + * requirement by changing the interpolation type to flat here.
> > + */
> > + producer_var->centroid = false;
> > + producer_var->interpolation = INTERP_QUALIFIER_FLAT;
>
> Should we check if producer_var's type is an integer?
>
Yeah, that's a good point. It shouldn't affect correctness, but it will
make the patch less invasive, and that seems worthwhile since I'm hoping
this can be cherry-picked back to 9.1. I'll follow up with a v2 of the
series.
>
> Could this cause issues if the producer stage is later linked to
> another consumer?
>
That shouldn't be a problem, since at this stage of linking, we are
operating on a copy of the IR that is private to this particular linked
program.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130407/8a9a4cda/attachment.html>
More information about the mesa-dev
mailing list