glsl: Match unnamed record types across stages.
authorGrigori Goronzy <greg@chown.ath.cx>
Tue, 26 Nov 2013 23:15:06 +0000 (00:15 +0100)
committerMatt Turner <mattst88@gmail.com>
Tue, 21 Jan 2014 22:01:09 +0000 (14:01 -0800)
commit955c93dc089f85fe52f4f34971ffcca43eb87310
treed2dc98a5aa06eff7b187d41ee406dcfd334e529d
parent41c9bf884ff266e9c2286002446ed2297838086f
glsl: Match unnamed record types across stages.

Unnamed record types are assigned to separate types per stage, e.g. if

uniform struct { ... } a;

is defined in both vertex and fragment shader, two separate types will
result with different names. When linking the shader, this results in a
type conflict. However, there is no reason why this should not be
allowed according to GLSL specifications. Compare and match record types
when linking shader stages to avoid this conflict.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/linker.cpp