glsl: warn in GL as well as ES when varying not written
authorTimothy Arceri <timothy.arceri@collabora.com>
Mon, 15 Feb 2016 03:06:04 +0000 (14:06 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Tue, 16 Feb 2016 00:15:43 +0000 (11:15 +1100)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93339

src/compiler/glsl/link_varyings.cpp

index 590de17450752f683b6b414c336481864092c9ec..05cc1a2b7f860da6a2a7d4e999e98727346a3059 100644 (file)
@@ -1739,22 +1739,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
@@ -1772,6 +1757,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));
             }
          }
       }