ARB_fp: invert expected result for duplicate precision hint tests

The ARB_fragment_program spec, 3.11.4.5.2 says:

    "Only one precision control option may be specified by any given
    fragment program.  A fragment program that specifies both the
    "ARB_precision_hint_fastest" and "ARB_precision_hint_nicest"
    program options will fail to load.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
array-of-struct-of-array: Added indexing operator to array.

The GLSL 1.2 spec says: "Arrays can also [be] accessed with the method operator
( . ) and the length method to query the size of the array:".

It doesn't say that members of arrays of structs can be accessed with the method
operator even if the dereference is only used to access the length method of a
nested array.

Reviewed-by: Matt Turner <mattst88@gmail.com>
array-size-sequence-in-parenthesis: Invert expected result.

The test incorectly stated that (5, 3) is not a grammatically correct
constant_expression.

According to the GLSL 1.20 spec this is possible like so:

constant_expression:
    conditional_expression: <---------------------------------------+
        [a bunch of logical & arithmetic binary expressions]:       |
            unary_expression:                                       |
                postfix_expression:                                 |
                    primary_expression:                             |
                        '(' expression ')' ------+                  |
                        INTCONSTANT              |                  |
                                                 |                  |
  +----------------------------------------------+                  |
  |                                                                 |
  V                                                                 |
expression:                                                         |
    assignment_expression                                           |
    expression ',' assignment_expression                            |
                                                                    |
assignment_expression:                                              |
    conditional_expression  ----------------------------------------+

Invert expected result of test and check that correct operand of comma
operator is discarded.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Basic tests of fast color clear functionality on i965/gen7+.

Fast color clears are a hardware feature in i965/gen7+ which allows
the memory writes associated with clearing a color buffer to be
deferred until the buffer is later written to or read from; in most
cases this allows the clear writes to be write-combined with later
rendering operations.

For fast color clears to work correctly, the driver must maintain a
state machine for each buffer to indicate whether there are deferred
clears pending, and if so what the clear value was.  This patch
introduces simple shader_runner tests to validate corner cases of that
state machine.
Test reading from a buffer after fast clearing it.
Test that fast color clears work properly after a blit.
Test interaction between fast color clears and glXSwapBuffers.
Test that ReadPixels into a PBO properly resolves fast clears.
!UPSTREAM: Performance micro-benchmark for fast color clears.
util: Create generic piglit_draw_rect() functions.  TODO: rework.

This patch adds the following functions to piglit-util-gl-common:
- piglit_draw_rect_generic
- piglit_draw_rect_back_generic
- piglit_draw_rect_z_generic
- piglit_draw_rect_tex_generic

These functions are similar to corresponding functions without the
"_generic" suffix, except that instead of delivering vertex position
and texture coordinates to the vertex shader using glVertexPointer()
and glTexCoordPointer(), they deliver to the generic attributes
PIGLIT_ATTRIB_POS and PIGLIT_ATTRIB_TEX.  These functions use VBO's
and VAO's when available, so they may be used when testing core
contexts.

These functions also work with compatibility contexts and with all
GLES versions.  Since GLES1 doesn't support generic vertex attributes,
we fall back to using glVertexPointer() and glTexCoordPointer() in the
GLES1 case.

When building GLES tests, the behaviour of the new _generic functions
is for all intents and purposes the same as that of the pre-existing
non-generic functions.  So to avoid code duplication, the non-generic
functions simply call their generic equivalents in GLES builds.
WIP: start testing GS in/out types
WIP: fix shader_runner error reporting when vertex data included.
WIP: Basic test of GS input varyings
Geometry shaders: add a basic EndPrimitive() test.
WIP: large EndPrimitive test
shader_runner: Add missing newlines to error messages.

Certain shader error messages were missing newlines, leading to the
error message being concatenated on the same line with "PIGLIT:
{'result': 'fail' }".
Make shader_runner able to test new primitive types
!UPSTREAM: Start working on a function accuracy test
!UPSTREAM: more experimentation with function accuracy
!UPSTREAM: glx-fast-color-clear experiments