Ian added this check in commit 259fc505454ea6a67aeacf6cdebf1398d9947759. While reviewing the rules, I found a citation which spells this out clearly, so I figured I'd send a patch to add it as a comment.
Cc: i...@freedesktop.org Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/compiler/glsl/linker.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index c95edf3..78c9ea8 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -1154,6 +1154,14 @@ cross_validate_globals(struct gl_shader_program *prog, return; } + /* The GLSL ES 3.2 specification says: + * + * "Uniforms in shaders all share a single global name space when + * linked into a program or separable program. Hence, the types, + * precisions and any location specifiers of all declared uniform + * variables with the same name must match across shaders that + * are linked into a single program." + */ if (prog->IsES && existing->data.precision != var->data.precision) { linker_error(prog, "declarations for %s `%s` have " "mismatching precision qualifiers\n", -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev