[Mesa-dev] [PATCH] glsl: warn in GL as well as ES when varying not written

Iago Toral itoral at igalia.com
Mon Feb 15 15:28:47 UTC 2016


Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

On Mon, 2016-02-15 at 14:06 +1100, Timothy Arceri wrote:
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93339
> ---
>  src/compiler/glsl/link_varyings.cpp | 23 +++++++----------------
>  1 file changed, 7 insertions(+), 16 deletions(-)
> 
> diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
> index 2e84972..e3c2fa6 100644
> --- a/src/compiler/glsl/link_varyings.cpp
> +++ b/src/compiler/glsl/link_varyings.cpp
> @@ -1925,22 +1925,7 @@ assign_varying_locations(struct gl_context *ctx,
>  
>           if (var && var->data.mode == ir_var_shader_in &&
>               var->data.is_unmatched_generic_inout) {
> -            if (prog->IsES) {
> -               /*
> -                * On Page 91 (Page 97 of the PDF) of the GLSL ES 1.0 spec:
> -                *
> -                *     If the vertex shader declares but doesn't write to a
> -                *     varying and the fragment shader declares and reads it,
> -                *     is this an error?
> -                *
> -                *     RESOLUTION: No.
> -                */
> -               linker_warning(prog, "%s shader varying %s not written "
> -                              "by %s shader\n.",
> -                              _mesa_shader_stage_to_string(consumer->Stage),
> -                              var->name,
> -                              _mesa_shader_stage_to_string(producer->Stage));
> -            } else if (prog->Version <= 120) {
> +            if (!prog->IsES && prog->Version <= 120) {
>                 /* On page 25 (page 31 of the PDF) of the GLSL 1.20 spec:
>                  *
>                  *     Only those varying variables used (i.e. read) in
> @@ -1958,6 +1943,12 @@ assign_varying_locations(struct gl_context *ctx,
>                              _mesa_shader_stage_to_string(consumer->Stage),
>  			    var->name,
>                              _mesa_shader_stage_to_string(producer->Stage));
> +            } else {
> +               linker_warning(prog, "%s shader varying %s not written "
> +                              "by %s shader\n.",
> +                              _mesa_shader_stage_to_string(consumer->Stage),
> +                              var->name,
> +                              _mesa_shader_stage_to_string(producer->Stage));
>              }
>           }
>        }




More information about the mesa-dev mailing list