<div dir="ltr">On 7 April 2013 11:12, Jordan Justen <span dir="ltr"><<a href="mailto:jljusten@gmail.com" target="_blank">jljusten@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Sat, Apr 6, 2013 at 7:49 PM, Paul Berry <<a href="mailto:stereotype441@gmail.com" target="_blank">stereotype441@gmail.com</a>> wrote:<br>
> +   if (consumer_var == NULL) {<br>
> +      /* Since there is no consumer_var, the interpolation type of this<br>
> +       * varying cannot possibly affect rendering.  Also, since the GL spec<br>
> +       * only requires integer varyings to be "flat" when they are fragment<br>
> +       * shader inputs, it is possible that this variable is non-flat and is<br>
> +       * (or contains) an integer.<br>
> +       *<br>
> +       * lower_packed_varyings requires all integer varyings to flat,<br>
> +       * regardless of where they appear.  We can trivially satisfy that<br>
> +       * requirement by changing the interpolation type to flat here.<br>
> +       */<br>
> +      producer_var->centroid = false;<br>
> +      producer_var->interpolation = INTERP_QUALIFIER_FLAT;<br>
<br>
</div>Should we check if producer_var's type is an integer?<br></blockquote><div><br></div>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.<br>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Could this cause issues if the producer stage is later linked to<br>
another consumer?<br></blockquote><div><br></div><div>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.<br></div></div>
</div></div>