From 32a220f1f60980de50ecefb3b9ab1f754ade8c83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Tue, 9 Jun 2015 11:06:56 +0300 Subject: [PATCH] glsl: remove cross validation of interpolation qualifier with GLSL 4.40 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Tapani Pälli Reviewed-by: Timothy Arceri --- src/glsl/link_varyings.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/glsl/link_varyings.cpp b/src/glsl/link_varyings.cpp index 278a778..020842a 100644 --- a/src/glsl/link_varyings.cpp +++ b/src/glsl/link_varyings.cpp @@ -128,7 +128,17 @@ cross_validate_types_and_qualifiers(struct gl_shader_program *prog, return; } - if (input->data.interpolation != output->data.interpolation) { + /* GLSL >= 4.40 removes text requiring interpolation qualifiers + * to match cross stage, they must only match within the same stage. + * + * From page 84 (page 90 of the PDF) of the GLSL 4.40 spec: + * + * "It is a link-time error if, within the same stage, the interpolation + * qualifiers of variables of the same name do not match. + * + */ + if (input->data.interpolation != output->data.interpolation && + prog->Version < 440) { linker_error(prog, "%s shader output `%s' specifies %s " "interpolation qualifier, " -- 2.7.4