diff options
Diffstat (limited to 'src/compiler/glsl')
-rw-r--r-- | src/compiler/glsl/link_varyings.cpp | 10 |
1 files 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 |