On 10/17/2013 08:07 PM, Paul Berry wrote: > Previously, Mesa followed the linkage rules outlined in the GLSL > 1.20-1.40 specs, which (collectively) said that GLSL versions 1.10 and > 1.20 could be linked together, but no other versions could be linked. > > In GLSL 4.30, the linkage rules were relaxed so that any two desktop > GLSL versions can be linked together. This change was made because it > reflected the behaviour of nearly all existing implementations (see > Khronos bug 8463). Mesa was one of the few (perhaps the only) > exceptions to prohibit cross-linking of some GLSL versions. > > Since the GLSL linkage rules were deliberately relaxed in order to > match the behaviour of existing implementations, it seems appropriate > to relax the rules in Mesa too (even though Mesa doesn't support GLSL > 4.30 yet). > > Note that linking ES and desktop shaders is still prohibited, as is > linking ES shaders having different GLSL versions. > > Fixes piglit tests "shaders/version-mixing {interstage,intrastage}". > --- > src/glsl/linker.cpp | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp > index 9095a40..0a949b4 100644 > --- a/src/glsl/linker.cpp > +++ b/src/glsl/linker.cpp > @@ -2057,14 +2057,10 @@ link_shaders(struct gl_context *ctx, struct > gl_shader_program *prog) > } > } > > - /* Previous to GLSL version 1.30, different compilation units could mix > and > - * match shading language versions. With GLSL 1.30 and later, the > versions > - * of all shaders must match. > - * > - * GLSL ES has never allowed mixing of shading language versions. > + /* In desktop GLSL, different shader versions may be linked together. In > + * GLSL ES, all shader versions must be the same. > */ > - if ((is_es_prog || max_version >= 130) > - && min_version != max_version) { > + if (is_es_prog && min_version != max_version) { > linker_error(prog, "all shaders must use same shading " > "language version\n"); > goto done; >
Looks good to me. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev