OSDN Git Service

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 eb1bdc0..e8c0b98 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))