diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index fab5344293a..68324665ba5 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -398,6 +398,13 @@ cross_validate_globals(struct gl_shader_program *prog, existing->constant_value = var->constant_value->clone(talloc_parent(existing), NULL); } + + if (existing->invariant != var->invariant) { + linker_error_printf(prog, "declarations for %s `%s' have " + "mismatching invariant qualifiers\n", + mode_string(var), var->name); + return false; + } } else variables.add_variable(var->name, var); }