glsl: don't demote tess control shader outputs
authorMarek Olšák <marek.olsak@amd.com>
Fri, 3 Oct 2014 22:13:42 +0000 (00:13 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 22 Jul 2015 22:59:29 +0000 (00:59 +0200)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/link_varyings.cpp

index 30fce746e165153597cc72ce9300265a44eed813..43245b84a8679af971d4ba7e7412e5f0d6d82ff4 100644 (file)
@@ -1461,8 +1461,12 @@ assign_varying_locations(struct gl_context *ctx,
          /* If a matching input variable was found, add this ouptut (and the
           * input) to the set.  If this is a separable program and there is no
           * consumer stage, add the output.
+          *
+          * Always add TCS outputs. They are shared by all invocations
+          * within a patch and can be used as shared memory.
           */
-         if (input_var || (prog->SeparateShader && consumer == NULL)) {
+         if (input_var || (prog->SeparateShader && consumer == NULL) ||
+             producer->Type == GL_TESS_CONTROL_SHADER) {
             matches.record(output_var, input_var);
          }