glsl: relax input->output validation for SSO programs
authorTapani Pälli <tapani.palli@intel.com>
Thu, 2 Apr 2015 09:59:55 +0000 (12:59 +0300)
committerTapani Pälli <tapani.palli@intel.com>
Tue, 7 Apr 2015 05:11:07 +0000 (08:11 +0300)
Commit 18004c3 introduced more restrictive validation to linker
between inputs and outputs. This patch skips the additional check
for programs that utilize GL_ARB_separate_shader_objects, there
inputs and outputs might not make exact match during linking but
only when constructing the final pipeline.

This made some of the GL_ARB_program_interface_query tests shaders
fail to link, these tests can be used to verify the change.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/glsl/link_varyings.cpp

index d6fb1ea4fc325a65f171a9ad67afe163f0b8d957..605748a9c2aacd35eb9c0db4c687e2bca9c0b8b0 100644 (file)
@@ -270,7 +270,7 @@ cross_validate_outputs_to_inputs(struct gl_shader_program *prog,
              */
             assert(!input->data.assigned);
             if (input->data.used && !input->get_interface_type() &&
-                !input->data.explicit_location)
+                !input->data.explicit_location && !prog->SeparateShader)
                linker_error(prog,
                             "%s shader input `%s' "
                             "has no matching output in the previous stage\n",