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