arb_texture_multisample: new test for fb configs

This tests FBO setup with various combinations of multisample textures
and `classic` multisample renderbuffers, and for each, checks:

- That the renderbuffers or textures can be created
- Completeness status

If the configuration is expected to work, additionally:
- Actual sample count >= requested sample count
- Sample positions meet spec requirements (all obtainable, and in [0,1]

Covers the fixedsamplelocations and sample count consistency
requirements in the spec.

V2: - Don't specify window size, we don't care.
    - Add comment about internalformat defaulting.
    - Don't specify dims, sample count per attachment; attachment
      is either multisampled or not, dims are always the same.
    - Report each config result using subtests
    - Support testing different sample counts, and test 2/4/6/8/16
        samples in all.tests. Unsupported sample counts are skipped.
    - Fixup for signature change of piglit_report_subtest_result.
    - Test some multisample array scenarios too.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_texture_multisample: new test for teximage state

This tests that the new teximage state added in ARB_texture_multisample
exists and has correct defaults for non-multisample textures:

    - GL_TEXTURE_SAMPLES = 0
    - GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = true

V2: Don't specify window size, we don't care.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_texture_multisample: new tests for sample mask

Adds tests for sample mask:

- Initial state
- Fetching of each sample mask word
- Execution test via rendering with various masks to a multisample FBO,
  then downsampling via glBlitFramebuffer and checking the result.

V2: Don't specify window size when we don't care

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_texture_multisample: add new sampler targets to textureSize

Covers use of the textureSize() glsl builtin with multisample samplers

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_texture_multisample: add test for texelFetch()

Writes a test pattern to individual samples in a multisample texture,
and tests texelFetch() reads the correct values for each sample.

V2: - support testing various sample counts
    - fix bogus aggregation of probes

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
rude hack: use smaller formats in texturing tests.

RGBA32I, RGBA32UI, and RGBA32F are huge and
unsupported for multisample textures on at least Gen6 i965.

This shouldn't be committed as-is, but it allowed for testing of
multisample samplers with the generic textureSize() test.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
add test for texelfetch with multisample array textures

new version, lots of bugfixes rolled in.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
add new test for errors

Tests that glFramebufferTextureLayer produces the correct error for
layer < 0 when used with GL_TEXTURE_2D_MULTISAMPLE_ARRAY. This was
overlooked in the initial mesa implementation of
ARB_texture_multisample, and crashed deep in the driver instead.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>