1------------------------------------------------------------------------- 2drawElements Quality Program Test Specification 3----------------------------------------------- 4 5Copyright 2014 The Android Open Source Project 6 7Licensed under the Apache License, Version 2.0 (the "License"); 8you may not use this file except in compliance with the License. 9You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13Unless required by applicable law or agreed to in writing, software 14distributed under the License is distributed on an "AS IS" BASIS, 15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16See the License for the specific language governing permissions and 17limitations under the License. 18------------------------------------------------------------------------- 19 Texture gather tests 20 21Tests: 22 + dEQP-GLES31.functional.texture.gather.* 23 24Includes: 25 + textureGather, textureGatherOffset and textureGatherOffsets tests 26 - Also dynamic-offset variant of textureGatherOffset 27 + All supported texture types 28 - 2D 29 - 2D array 30 - Cube map for offset-less variant only (not defined for others) 31 + rgba8 unorm, uint and int color formats 32 + depth32f format for shadow variants 33 - LESS and GREATER comparison functions 34 + For color textures, test each value (0 to 3) for the color component 35 argument, as well as no argument (implicit 0) 36 + Power-of-two and non-power-of-two texture sizes 37 - Test each wrap mode (clamp to edge, repeat, mirrored repeat) for both S and 38 T coordinates 39 + Texture swizzle (for color formats) 40 - Test each swizzle source for each color component 41 + Test that filter modes have no effect (assuming texture is still complete) 42 + Base level 43 + For color textures, test gathering from incomplete texture 44 + For offset(s) variants, test various offsets from both the spec-required 45 minimum range as well as implementation's range 46 47Excludes: 48 + Rest of texture formats 49 + Rest of depth comparison functions 50 + Negative tests 51 52Description: 53 54The texture gather test group contains tests for the textureGather* group of 55functions. 56 57Each test case creates and sets up a 2d, 2d array or cube texture with unorm, 58int, uint or depth format. A shader program is created that uses the appropriate 59textureGather* on that texture in the fragment shader, and outputs the resulting 60color as a fragment output. A framebuffer object with a renderbuffer object as 61its color attachment is used; the renderbuffer's format matches that of the 62texture (except for depth formats, for which rgba8 is used). The resulting image 63is read with glReadPixels(), and verified with routines that take coordinate 64imprecisions into account. Multiple shaders and rendering iterations are used, 65so that different color component and/or offset arguments to the textureGather* 66function can be tested. 67 68The textureGatherOffsets functions, as well as textureGatherOffset with dynamic 69offset, are tested if the GL_EXT_gpu_shader5 extension is supported. 70