1e5c31af7Sopenharmony_ci-------------------------------------------------------------------------
2e5c31af7Sopenharmony_cidrawElements Quality Program Test Specification
3e5c31af7Sopenharmony_ci-----------------------------------------------
4e5c31af7Sopenharmony_ci
5e5c31af7Sopenharmony_ciCopyright 2014 The Android Open Source Project
6e5c31af7Sopenharmony_ci
7e5c31af7Sopenharmony_ciLicensed under the Apache License, Version 2.0 (the "License");
8e5c31af7Sopenharmony_ciyou may not use this file except in compliance with the License.
9e5c31af7Sopenharmony_ciYou may obtain a copy of the License at
10e5c31af7Sopenharmony_ci
11e5c31af7Sopenharmony_ci     http://www.apache.org/licenses/LICENSE-2.0
12e5c31af7Sopenharmony_ci
13e5c31af7Sopenharmony_ciUnless required by applicable law or agreed to in writing, software
14e5c31af7Sopenharmony_cidistributed under the License is distributed on an "AS IS" BASIS,
15e5c31af7Sopenharmony_ciWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16e5c31af7Sopenharmony_ciSee the License for the specific language governing permissions and
17e5c31af7Sopenharmony_cilimitations under the License.
18e5c31af7Sopenharmony_ci-------------------------------------------------------------------------
19e5c31af7Sopenharmony_ci    Texture format sets
20e5c31af7Sopenharmony_ci
21e5c31af7Sopenharmony_ciTests:
22e5c31af7Sopenharmony_ci + dEQP-GLES3.functional.texture.format.*
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ciIncludes:
25e5c31af7Sopenharmony_ci + Unsized color texture formats:
26e5c31af7Sopenharmony_ci   - GLES2: ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA
27e5c31af7Sopenharmony_ci   - GLES3: RED, RG, INTEGER variants
28e5c31af7Sopenharmony_ci + Unsized depth and stencil formats:
29e5c31af7Sopenharmony_ci   - DEPTH_COMPONENT, DEPTH_STENCIL
30e5c31af7Sopenharmony_ci + All sized color texture formats
31e5c31af7Sopenharmony_ci + All sized depth and stencil texture formats
32e5c31af7Sopenharmony_ci + sRGB texture formats
33e5c31af7Sopenharmony_ci + Following compressed texture formats:
34e5c31af7Sopenharmony_ci   - ETC1
35e5c31af7Sopenharmony_ci   - ETC2
36e5c31af7Sopenharmony_ci   - EAC
37e5c31af7Sopenharmony_ci + Power-of-two and non-power-of-two texture sizes
38e5c31af7Sopenharmony_ci + Texture access from fragment shader with following parameters:
39e5c31af7Sopenharmony_ci   - Nearest-neighbor filtering
40e5c31af7Sopenharmony_ci   - Clamp-to-edge wrap mode
41e5c31af7Sopenharmony_ci   - Single texture, unit 0
42e5c31af7Sopenharmony_ci   - Named texture object
43e5c31af7Sopenharmony_ci   - Coordinates in range (0, 0) -> (1, 1)
44e5c31af7Sopenharmony_ci + 2D textures
45e5c31af7Sopenharmony_ci + Cube map textures
46e5c31af7Sopenharmony_ci + 2D array textures
47e5c31af7Sopenharmony_ci + 3D textures
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_ciExcludes:
50e5c31af7Sopenharmony_ci + Other texture wrap and filtering modes
51e5c31af7Sopenharmony_ci   - Covered in functional.texture.filtering and functional.texture.wrap
52e5c31af7Sopenharmony_ci + Vertex-side texture access
53e5c31af7Sopenharmony_ci   - Will be covered in functional.texture.vertex tests
54e5c31af7Sopenharmony_ci + Texture format conversions in upload
55e5c31af7Sopenharmony_ci   - Will be covered in functional.texture.conversion
56e5c31af7Sopenharmony_ci
57e5c31af7Sopenharmony_ciDescription:
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ciTexture format tests create a single texture with pre-configured dimensions
60e5c31af7Sopenharmony_ciand format. Uncompressed images will be filled with gradient that exercises
61e5c31af7Sopenharmony_cithe maximum value range allowed by the format. For compressed formats
62e5c31af7Sopenharmony_cirandomized input bits are used to thoroughly exercise all decoding paths.
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_ciEach test case renders one or more times a plain quad that samples a slice
65e5c31af7Sopenharmony_ciof the image:
66e5c31af7Sopenharmony_ci
67e5c31af7Sopenharmony_ci * 2D textures: Single quad that samples the full texture is rendered.
68e5c31af7Sopenharmony_ci * Cubemaps: Each cube face is rendered separately.
69e5c31af7Sopenharmony_ci * 2D array textures: Each layer is rendered separately.
70e5c31af7Sopenharmony_ci * 3D textures: Each slice is rendered separately.
71e5c31af7Sopenharmony_ci
72e5c31af7Sopenharmony_ciThe viewport is configured to match the slice size. Texture coordinates
73e5c31af7Sopenharmony_ciyield a 1:1 mapping from texels to framebuffer pixels. Thus filtering
74e5c31af7Sopenharmony_cishouldn't affect the resulting images.
75e5c31af7Sopenharmony_ci
76e5c31af7Sopenharmony_ciThe rendered image is compared against a reference that is produced by
77e5c31af7Sopenharmony_cireference renderer. A simple threshold-based comparison is used.
78