-------------------------------------------------------------------------
drawElements Quality Program Test Specification
-----------------------------------------------

Copyright 2014 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------------
    Texture format sets

Tests:
 + dEQP-GLES3.functional.texture.format.*

Includes:
 + Unsized color texture formats:
   - GLES2: ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA
   - GLES3: RED, RG, INTEGER variants
 + Unsized depth and stencil formats:
   - DEPTH_COMPONENT, DEPTH_STENCIL
 + All sized color texture formats
 + All sized depth and stencil texture formats
 + sRGB texture formats
 + Following compressed texture formats:
   - ETC1
   - ETC2
   - EAC
 + Power-of-two and non-power-of-two texture sizes
 + Texture access from fragment shader with following parameters:
   - Nearest-neighbor filtering
   - Clamp-to-edge wrap mode
   - Single texture, unit 0
   - Named texture object
   - Coordinates in range (0, 0) -> (1, 1)
 + 2D textures
 + Cube map textures
 + 2D array textures
 + 3D textures

Excludes:
 + Other texture wrap and filtering modes
   - Covered in functional.texture.filtering and functional.texture.wrap
 + Vertex-side texture access
   - Will be covered in functional.texture.vertex tests
 + Texture format conversions in upload
   - Will be covered in functional.texture.conversion

Description:

Texture format tests create a single texture with pre-configured dimensions
and format. Uncompressed images will be filled with gradient that exercises
the maximum value range allowed by the format. For compressed formats
randomized input bits are used to thoroughly exercise all decoding paths.

Each test case renders one or more times a plain quad that samples a slice
of the image:

 * 2D textures: Single quad that samples the full texture is rendered.
 * Cubemaps: Each cube face is rendered separately.
 * 2D array textures: Each layer is rendered separately.
 * 3D textures: Each slice is rendered separately.

The viewport is configured to match the slice size. Texture coordinates
yield a 1:1 mapping from texels to framebuffer pixels. Thus filtering
shouldn't affect the resulting images.

The rendered image is compared against a reference that is produced by
reference renderer. A simple threshold-based comparison is used.