arb_clear_buffer_object: fix various deprecated formats

- Some float formats were using GL_LUMINANCE_INTEGER as the pixel format.
- Most GL_INTENSITY* internalformats were trying to use
  GL_INTENSITY as the pixel format, which has never been valid in any
  spec version.

Fixes this test against a compatibility context -- core never hits these
cases since the formats have been removed.

V2: Fix commit message; in V1 it bogusly mentioned GL_RED_INTEGER, but
the test was actually using GL_LUMINANCE_INTEGER for float luminance
formats. Oops.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Fabian Bieler <fabianbieler@fastmail.fm>
util shader: Add support for tessellation shaders.
glslparsertest: Support tessellation shaders.

V2: Add .tesc and .tese files to installation parameters of generated_tests
and tests.
shader_runner: Add tessellation support.

Add support for tessellation control and tessellation evaluation shaders.
shader_runner: Support setting of patch parameters.

Add patch parameter directive to set GL_PATCH_VERTICES,
GL_PATCH_DEFAULT_OUTER_LEVEL and GL_PATCH_DEFAULT_INNER_LEVEL.

e.g.:
patch parameter vertices 4
patch parameter default level outer 1.5 2.0 2.5 3.5
patch parameter default level inner 0.0 0.0
arb_tessellation_shader: Test GL limits and default state.

Use glGet*v() to test GL limits and default state introduced by
arb_tessellation_shader.
arb_tessellation_shader: Test evaluation layout getters.

Use glGetProgramiv() to test tessellation evaluation shader input layouts.
Both explicitly specified layouts as well as default layouts are tested.
arb_tessellation_shader: Test control layout getters.

Use glGetProgramiv() to test tessellation control shader output layouts.
arb_tessellation_shader: Test glsl preprocessor defines.
arb_tessellation_shader: Compile test for simple shaders.
arb_tessellation_shader: Negative test without required layout qualifiers.

Tessellation control shaders require the vertices output layout qualifier.
Tessellation evaluation shaders require the primitive mode input layout
qualifier. Test that linnking fails without them.
arb_tessellation_shader: Negative test mismatching shader and primitive type.

From the ARB_tessellation_shader spec (Errors section):

   "The error INVALID_OPERATION is generated by Begin (or vertex array
    commands that implicitly call Begin) if the active program contains a
    tessellation control or evaluation shader and the primitive mode is not
    PATCHES.

    The error INVALID_OPERATION is generated by Begin (or vertex array
    commands that implicitly call Begin) if the primitive mode is PATCHES if
    either:

      *  the active program contains no tessellation evaluation shader, or
      *  no program is active."
arb_tessellation_shader: Negative test get program parameters.

From the ARB_tessellation_shader spec (Errors section):

   "The error INVALID_OPERATION is generated by GetProgramiv if <pname>
   identifies a tessellation control or evaluation shader-specific property
   and <program> has not been linked successfully, or does not contain
   objects to form a shader whose type corresponds to <pname>."

This test only test to get parameters from programs that lack the required
shader type. Unlinked programs are not tested.
arb_tessellation_shader: Negative test valid range of PATCH_VERTICES.

From the ARB_tessellation_shader spec (Errors section):

     "The error INVALID_VALUE is generated by PatchParameteri if <pname> is
     PATCH_VERTICES and <value> is less than or equal to zero or is greater
     than the implementation-dependent maximum patch size."
arb_tessellation_shader: Negative test output-layout size mismatch.

From the ARB_tessellation_shader spec (Section 4.3.8.2):

  "It is a compile-time error if the output patch vertex count specified in
  an output layout qualifier does not match the array size specified in any
  output variable declaration in the same shader."
arb_tessellation_shader: Negative test linking without vertex shader.

From the ARB_tessellation_shader spec (Section 2.14.2):

   Linking will fail if the program object contains objects to form a
   tessellation control shader (see section 2.X.1), and

     * the program contains no objects to form a vertex shader;

From the ARB_tessellation_shader spec (Section 2.14.2):

   Linking will fail if the program object contains objects to form a
   tessellation evaluation shader (see section 2.X.3), and

     * the program contains no objects to form a vertex shader;
arb_tessellation_shader: Negative test shader input size.

Test that non-array inputs to tessellation control and evaluation shaders
fail to link.

Also test that inputs with wrong array size fail to link.

XXX: nvidia doesn't seem to mind wrong sized inputs. Maybe there are shaders
int the wild that rely on this behaviour?
arb_tessellation_shader: Add sanity shader_runner test.

Add test that should tessellate two 3-vertex-patches into one triangle each
to fill the screen.

The test should effectively bahave as if the vertex data was used to draw
GL_TRIANGLES without the tessellation stage.
arb_tessellation_shader: Test large uniforms arrays.

Test uniform arrays of maximal size as well as arrays of uniform blocks.

Also test the for required linking errors if too large uniform arrays are
requested.
arb_tessellation_shader: Test global layout qualifiers.

Test declaring layout qualifiers in multiple shader objects and check for
linking arrays if qualifiers mismatch.