1 ------------------------------------------------------------------------- 2 drawElements Quality Program Test Specification 3 ----------------------------------------------- 4 5 Copyright 2014 The Android Open Source Project 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 ------------------------------------------------------------------------- 19 Program-specific Uniform Assignment Tests 20 21 Tests: 22 + dEQP-GLES31.functional.program_uniform.* 23 24 Includes: 25 + Assigning uniform values for a single program with glProgramUniform* 26 + Various uniform types 27 - Most basic types 28 - Structs and arrays, including nested 29 + Both by-pointer and by-value variants of functions tested 30 + Uniforms used in vertex shader, fragment shader, or both 31 + Verify by glGetUniform* or rendering 32 33 Excludes: 34 + Assigning uniforms to multiple programs 35 + Sampler types other than 2d and cube 36 + Negative tests 37 38 Description: 39 40 The glProgramUniform* tests use the alternative uniform assignment API (in 41 contrast to the glUniform* functions) for assigning uniform values to a 42 different program than the currently active one. 43 44 Various combinations of uniforms are tested: single basic-type uniforms, arrays, 45 structs, and nested structures with arrays. Each active uniform is assigned 46 a value using an appropriate glProgramUniform* function, either the pointer 47 variant or the value variant (if possible; for instance, matrices can only be 48 assigned using the pointer variant). Arrays with basic element type can have 49 their first element identified using either just the array's name or that 50 appended with "[0]"; both methods are tested. 51 52 To verify that the correct uniform values were assigned, either the uniform 53 values are queried with glGetUniform* or the shaders are rendered with; the 54 shaders are constructed such that the result should be an all-green quad if 55 the uniforms have correct values, and all-black otherwise. 56 57 At the beginning of each test case, a dummy program is created and made active 58 with glUseProgram; otherwise, the glProgramUniform* calls would behave just as 59 the corresponding glUniform* calls. 60