From ebc419fcbddb80648c526efc2b15e15e474724e3 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 8 Mar 2016 23:53:37 +1100 Subject: glsl: don't validate ifc blocks using validation meant for variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Samuel Iglesias Gonsálvez --- src/compiler/glsl/link_varyings.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp index c40ed586d14..34eb848a9c1 100644 --- a/src/compiler/glsl/link_varyings.cpp +++ b/src/compiler/glsl/link_varyings.cpp @@ -312,8 +312,14 @@ cross_validate_outputs_to_inputs(struct gl_shader_program *prog, } if (output != NULL) { - cross_validate_types_and_qualifiers(prog, input, output, - consumer->Stage, producer->Stage); + /* Interface blocks have their own validation elsewhere so don't + * try validating them here. + */ + if (!(input->get_interface_type() && + output->get_interface_type())) + cross_validate_types_and_qualifiers(prog, input, output, + consumer->Stage, + producer->Stage); } else { /* Check for input vars with unmatched output vars in prev stage * taking into account that interface blocks could have a matching -- cgit v1.2.3