[Mesa-dev] [PATCH 1/3] glsl/linker: fix varying packing for non-flat integer varyings.

Jordan Justen jljusten at gmail.com
Sun Apr 7 11:12:16 PDT 2013


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?

Could this cause issues if the producer stage is later linked to
another consumer?

-Jordan


More information about the mesa-dev mailing list