glsl: Validate qualifiers on VS color outputs with FS color inputs
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 30 Aug 2013 22:42:01 +0000 (15:42 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 4 Sep 2013 15:11:45 +0000 (08:11 -0700)
commit0851aa73659f894e6b54e3ef272c1fa360165128
tree0cae10aade8f73f007d77daced5b59e92d48a0c3
parentceceaf53ceb7f5251833646a212a1c7e5786511c
glsl: Validate qualifiers on VS color outputs with FS color inputs

The vertex shader color outputs (gl_FrontColor, gl_BackColor,
gl_FrontSecondaryColor, and gl_BackSecondaryColor) don't have the same
names as the matching fragment shader color inputs (gl_Color and
gl_SecondaryColor).  As a result, the qualifiers on them were not being
properly cross validated.

Full spec compliance required ir_variable::used and
ir_variable::assigned be set properly.  Without the preceeding patch,
which fixes the ::clone method to copy them, this will not be the case.

Fixes all of the previously failing piglit
spec/glsl-1.30/linker/interpolation-qualifiers tests.

v2: Update callers of cross_validate_types_and_qualifiers and
cross_validate_front_and_back_color.  The function signature changed in
v2 of a previous patch.  Suggested by Paul.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47755
src/glsl/link_varyings.cpp