Add a "slow_cc" option to EXT_framebuffer_multisample/alpha-blending.

When fast color clears are added to i965, there is a danger that they
may cause this test to stop reproducing bug 53077.  To avoid that, add
a command-line option which causes the test to use a clear color that
isn't fast color clearable.

As a result of this patch, a new piglit test is added:
"spec/EXT_framebuffer_multisample/alpha-blending slow_cc".  As of Mesa
commit fd05ede, this test is known to fail on Ivy Bridge and Haswell.
These failures are already covered by bug 53077.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
More comprehensive test for alpha blending with multisampling.

This test validates a corner case of the fix for
https://bugs.freedesktop.org/show_bug.cgi?id=53077 ([IVB] Output error
with msaa when both of framebuffer and source color's alpha are not
1).  Specifically, it verifies that the first time alpha blending is
used on a multisampled framebuffer, the contents of the framebuffer
are properly preserved.
Test intrastage interface block array matching rules.

Note: as of Mesa 5cb80f0, test "intrastage-interface-unnamed-array" is
known to fail.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Rename and clarify interface-blocks-vs-gs-array-size-mismatch.shader_test.

The test was correct, but not for the reasons stated in the comment.
The reason a sized VS output interface array should fail to match an
unsized GS input interface array is because geometry shader inputs
require an extra level of array indexing to match corresponding vertex
shader outputs.

This patch renames the test, and updates the comment, to reflect
what's actually being tested.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
More tests for vs-gs interface block array matching rules.
More tests for vs-fs interface block matching rules.

Note: as of Mesa 5cb80f0, tests "interface-vs-array-to-fs-unnamed" and
"interface-vs-unnamed-to-fs-array" are known to fail.
Check that transform feedback size/type comes from gs, not vs.

When the current program has both a geometry shader and a vertex
shader, transform feedback needs to link with the geometry shader.
This test verifies that the type and size of the varyings captured by
transform feedback match their declarations in the geometry shader,
even if there are vertex shader outputs with the same names and
different types.

The test exercises one built-in shader output (gl_ClipDistance) and
one user-defined shader output.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Test interpolation qualifiers inside of interface blocks.

Validated using the NVIDIA proprietary driver for Linux (version
313.18).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Test the "centroid" qualifier inside of interface blocks.

Validated using the NVIDIA proprietary driver for Linux (version
313.18).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
gs: Test that gl_MaxGeometryInputComponents can actually be achieved.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
gs: Fix geometry layout case insensitivity tests.

These tests use check_link: true, which means that they each need to
specify a complete set of geometry shader layout qualifiers in order
to pass.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
gs: Test redeclaring either gl_PerVertex in or out, and using both.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Test a corner case involving arrays, structs, and interface blocks.

This patch exercises the same corner case as
https://bugs.freedesktop.org/show_bug.cgi?id=70368.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>