-------------------------------------------------------------------------
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 unit usage tests

Tests:
 + dEQP-GLES2.functional.texture.units.*

Includes:
 + Use of multiple units simultaneously:
   - 1, 2, 4, 8
   - all available
 + Mixed texture formats
 + Mixed texture types
 + Mixed texture parameters

Description:

For each texture unit a 2D or cube map texture is generated. Shader samples all
textures and adds scaled lookup values together to yield a value in range 0..1
for each output component.

For each texture a separate coordinate array is generated, yielding different
sample points. Simple quad is rendered with a fragment shader that adds texture
lookup results together. Resulting image is compared against a reference image
produced by a reference renderer.
