glsl: add packed varyings for outputs with single stage program
authorTapani Pälli <tapani.palli@intel.com>
Tue, 12 Jan 2016 09:03:14 +0000 (11:03 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Wed, 13 Jan 2016 05:30:46 +0000 (07:30 +0200)
Commit 8926dc8 added a check where we add packed varyings of output
stage only when we have multiple stages,  however duplicates are already
handled by changes in commit 0508d950 and we want to add outputs also in
case where we have only one stage.

Fixes regression caused by 8926dc8 for following test:
   ES31-CTS.program_interface_query.separate-programs-vertex

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/glsl/linker.cpp

index eb1bdc05932c0d1831f44094029c0ee4c30ebe81..e8c0b98176065f1163550ff8cd138902abcab6f3 100644 (file)
@@ -3753,13 +3753,8 @@ build_program_resource_list(struct gl_shader_program *shProg)
       if (!add_packed_varyings(shProg, input_stage, GL_PROGRAM_INPUT))
          return;
 
-      /* Only when dealing with multiple stages, otherwise we would have
-       * duplicate gl_shader_variable entries.
-       */
-      if (input_stage != output_stage) {
-         if (!add_packed_varyings(shProg, output_stage, GL_PROGRAM_OUTPUT))
-            return;
-      }
+      if (!add_packed_varyings(shProg, output_stage, GL_PROGRAM_OUTPUT))
+         return;
    }
 
    if (!add_fragdata_arrays(shProg))