reduce minimum GL version for GLSL 1.30 to GL2.1

Everything in GLSL 1.30 can be usefully supported on a pre-GL3
implementation if we also have EXT_gpu_shader4 to provide the
otherwise GL3+ entrypoints.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
shader_runner: allow unsigned uniforms without GL3

If EXT_gpu_shader4 is supported, we have the GL entrypoints
required.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
isinf/isnan: Relax GL version requirement

This test can work with 2.1 + GLSL 1.30 + EXT_gpu_shader4.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
glsl-1.30: Relax GL version requirement on shader tests

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
piglit-vbo: allow int attributes without GL3

The required entrypoints for this exist in EXT_gpu_shader4 as well.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
CL: Basic test of bitselect builtin

Tests all possible combinations of bitselect input/output bit values, but
only does so for scalar signed int.
CL: Add vload/vstore with/without offset tests for int data types.

Offset was being calculated wrong in libclc, and tests would've caught it.

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
summary.py: Fix duplicate entries bug

The current behavior is that changes fixes and regressions are
calculated by comparing result[i] against result[i++], of course when
there are four or more results provided a test could regress or be fixed
twice. This causes them to be added to the list multiple times, and thus
written into the HTML or text more than once.

This patch corrects this behavior by converting the list to a set before
passing it along to mako or to be printed. Since a set can only hold
unique values this prevents it from being printed more than once.

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
arb_texture_storage_multisample: add test for TexStorage*Multisample

V2: - Use a legal (sized!) internalformat.
    - Refactor to subtests.
    - Add new test cases for:
        * Correct error generation for unsized formats.
        * Correct error generation for texture object zero.

V3: - fix up style

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_texture_storage_multisample: add new tex-param test

V3: - style nits
    - more thorough testing that invalid params didn't stick
	(thanks Eric)

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
gs: Verify that uniforms and constants are available in geometry shaders.
gs: Test that gl_VerticesIn is correct for all input primitive types.
Sanity test interactions between ARB_geometry_shader4 and other extensions.

This patch verifies that the following extensions are available in
geometry shaders, and that all of the functions provided by each
extension can be called from geometry shaders:

- ARB_shader_texture_lod
- ARB_shading_language_packing
- ARB_texture_cube_map_array
- ARB_texture_multisample
- ARB_texture_rectangle
- ARB_uniform_buffer_object
- EXT_texture_array
!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