glsl: Compile test precision qualifiers on structure members

Section 4.1.8 (Structures) of both the GLSL ES 1.00 spec and GLSL 1.30
specs says:

    "Member declarators may contain precision qualifiers, but may not
    contain any other qualifiers."

However, at some point this stopped working in Mesa.  These tests
current fail on Mesa master and 9.2, but they both pass on the 9.1
branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68753
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: Aras Pranckevicius <aras@unity3d.com>
glsl-1.30: Check that qualifiers other than precision qualifiers are rejected

v2: smoot => smooth.  Noticed by Matt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Test that nothing is drawn if GS emits too few vertices to create a primitive

v2: add check for how many primitives were actually generated

Reviewed-by: Paul Berry <stereotype441@gmail.com>
GL 3.2: Test ReadPixels() works properly with layered framebuffers.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
glsl: Add precision qualifier tests for sampler types in GLSL and GLSL ES

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
CL: Add atomic_add/inc uint threaded tests

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
CL: Add atomic_sub/atomic_dec tests

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
gs: Test that input arrays can be accessed dynamically.

Most geometry shaders access their input arrays using a constant index
(or an index that is constant after loop unrolling).  This test checks
that we get the right results if we access a geometry shader input
array using a non-constant index.
xfb: Fix max_varyings/max_xfb_varyings mix-up.

The transform feedback max-varyings test had a mix-up between
max_varyings (the number of varying vec4's supported by the
implementation) and max_xfb_varyings (the number of transform feedback
output vec4's supported by the implementation).

As a result, we would run the test as though both values were
max_xfb_varyings, but we would check the results as though both values
were max_varyings.  This would cause spurious failures on
implementations for which max_varyings is greater than
max_xfb_varyings.
gs: less demanding tests for triangle strips.

Commit 2ef33fd introduced some fairly demanding tests to verify that
for each possible input primitive type, vertices are delivered to the
geometry shader in the proper order.

Some hardware may not be able to satisfy all of OpenGL's ordering
requirements for GL_TRIANGLE_STRIP and GL_TRIANGLE_STRIP_ADJACENCY (in
particular, Intel Ivy Bridge requires some workarounds, and I haven't
yet determined whether those workarounds are possible in all
circumstances).

In case the implementation can't get the ordering exactly right, we
still want to make sure that (a) triangle orientation is correct, and
(b) with GL_TRIANGLE_STRIP_ADJACENCY, adjacent vertices are correctly
ordered relative to the primary triangle vertices.
gs: Test corner case for triangle strip ordering with primitive restart.

Verified using the NVIDIA proprietary driver for linux.
gs: Test interaction between gl_PrimitiveIDIn and primitive restart.

Verified using the NVIDIA proprietary driver for linux.
!UPSTREAM: Test core GS inputs on GLSL 1.50

TODO:
- Make this work.