glsl/linker: Fail linking on ES if uniform precision qualifiers don't match

When GL_OES_geometry_shader is enabled, this fixes
dEQP-GLES31.functional.shaders.linkage.geometry.uniform.rules.type_mismatch_1.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Ian Romanick 2016-05-24 12:04:53 -07:00
parent 06201e4f1a
commit 259fc50545
1 changed files with 7 additions and 0 deletions

View File

@ -1153,6 +1153,13 @@ cross_validate_globals(struct gl_shader_program *prog,
mode_string(var), var->name);
return;
}
if (prog->IsES && existing->data.precision != var->data.precision) {
linker_error(prog, "declarations for %s `%s` have "
"mismatching precision qualifiers\n",
mode_string(var), var->name);
return;
}
} else
variables->add_variable(var);
}