[Mesa-dev] [PATCH] mesa: Fix linker-assigned varying component counting since 8fb1e4a462

Brian Paul brianp at vmware.com
Wed Nov 14 07:08:08 PST 2012


On 11/13/2012 04:22 PM, Eric Anholt wrote:
> The goal of that change was to skip counting things that aren't actually
> outputs from the VS to the FS.  However, explicit_location isn't set in
> the case of linker-assigned locations (the common case), so basically
> varying component counting got disabled.  At this stage of the linker,
> we've already ensured that var->location is set, so we can just look at
> it without worrying.
>
> Fixes i965 assertion failure with the new
> piglit glsl-max-varyings --exceed-limits.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51545
> ---
>   src/glsl/linker.cpp |    3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index 86371b5..3b2ab96 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -2010,8 +2010,7 @@ is_varying_var(GLenum shaderType, const ir_variable *var)
>   {
>      /* Only fragment shaders will take a varying variable as an input */
>      if (shaderType == GL_FRAGMENT_SHADER&&
> -       var->mode == ir_var_in&&
> -       var->explicit_location) {
> +       var->mode == ir_var_in) {
>         switch (var->location) {
>         case FRAG_ATTRIB_WPOS:
>         case FRAG_ATTRIB_FACE:

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list