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

Copyright 2015 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.
-------------------------------------------------------------------------
    EXT_texture_border_clamp tests

Tests:
 + dEQP-GLES31.texture.border_clamp.*
 + dEQP-GLES31.functional.state_query.texture.*.texture_border_color_*

Includes:
 + State query tests
 + Rendering tests with all GLES31 texture formats.
 + Tests with power-of-two and non-power-of-two texture sizes.
 + Nearest and linear samping. Sampling with texture gather.
 + Rendering tests with border value exceeding the representable range of
   the texture format.
 + Sampling depth textures with mode set to COMPARE_REF_TO_TEXTURE.

Excludes:
 + Sampling with mipmaps
 + Sampling with texture 2d arrays or cubemaps
 + Texture swizzle cases
 + Exhaustive testing of all s/t/r wrapping mode combinations

Description:

Texture border clamp cases test functionality added in
EXT_texture_border_clamp extension. Tests set up a texture with a certain
format, set border color to certain value, set one or more wrapping modes to
CLAMP_TO_BORDER, and then proceed to render the texture to screen. The
rendering result is then verified. Test cases also generate a reference image
which may be useful when evaluating results.

In formats.* subgroup, all GLES31 texture formats are tested. Each format is
tested with power-of-two and non-power-of-two texture sizes using NEAREST and
LINEAR filtering, and texture-gather fetching.

In range_clamp.* subgroup, border color components are set to values that are
not in the representable range of the internal format. The effective value is
expected to be clamped to the valid range.

In sampler.* subgroup, texture border color and wrapping mode are set using
a sampler state.

In per_axis_wrap_mode.*, texture wrap mode is not same in all S, T, and R
directions. Wrapping is tested for 2D and 3D textures with multiple formats
and with different sampling modes.

In depth_compare_mode.*, depth texture border values are tested with compare
mode set to COMPARE_REF_TO_TEXTURE.

In unused_channels.*, border color has non-zero values in components that are
not representable in the target formats. These components are expected to have
no effect.