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 Vertex Attribute Binding Tests 20 21 Tests: 22 + dEQP-GLES31.functional.vertex_attribute_binding.* 23 + dEQP-GLES31.functional.state_query.vertex_attribute_binding.* 24 + dEQP-GLES31.stress.vertex_attribute_binding.* 25 26 Includes: 27 + Vertex attribute binding state setting and queries 28 + Drawing with all attributes sourced from a single buffer 29 - Single and multiple attributes, multiple attributes sharing 30 components. 31 - Non-zero buffer offset 32 - Sourcing elements at an aligned location from a buffer with 33 a combination of non-aligned buffer offset and non-aligned 34 vertex attribute start offset. 35 + Drawing with all attributes sourced from different binding points 36 - Basic drawing 37 - Binding point stride set to zero 38 - Binding point instance divisor 39 - Binding same buffer object to multiple binding points 40 + Mixing vertex attribute binding and vertex attribute pointer APIs 41 - Different APIs for different vertex attributes 42 - Use vertex attribute binding API to change state set with vertex 43 attribute pointer API 44 + Negative tests 45 - Use with default VAO 46 - BindVertexBuffer for non-gen'd buffer name 47 - Invalid values 48 + Stress tests 49 - Sourcing elements over buffer bounds 50 - Sourcing elements at non-aligned locations 51 52 Excludes: 53 + Use of all vertex attribute binding points 54 + Sourcing elements from a buffer with a large stride/offset 55 + Buffer object lifetime/validity after deleteBuffers 56 57 Description: 58 59 State query tests verify initial values, and state setting and 60 querying functions by setting random values. Modifications to 61 vertex attribute binding state after use of vertex attribute 62 pointer API is also verified. 63 64 Rendering tests set vertex attribute state using vertex attribute 65 binding API and issue a single draw command. Resulting image is 66 then verified. Mixed API rendering tests intermix both vertex 67 attribute binding and the vertexAttribPointer API commands to 68 modify the state of the same or different vertex attributes. 69 70 Stress tests source elements at invalid locations. Tests source 71 elements out of buffer range and at non-aligned locations using 72 binding point buffer offset and/or vertex attribute relative 73 offset. 74