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    Vertex Attribute Binding Tests
20
21Tests:
22 + dEQP-GLES31.functional.vertex_attribute_binding.*
23 + dEQP-GLES31.functional.state_query.vertex_attribute_binding.*
24 + dEQP-GLES31.stress.vertex_attribute_binding.*
25
26Includes:
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
52Excludes:
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
57Description:
58
59State query tests verify initial values, and state setting and
60querying functions by setting random values. Modifications to
61vertex attribute binding state after use of vertex attribute
62pointer API is also verified.
63
64Rendering tests set vertex attribute state using vertex attribute
65binding API and issue a single draw command. Resulting image is
66then verified. Mixed API rendering tests intermix both vertex
67attribute binding and the vertexAttribPointer API commands to
68modify the state of the same or different vertex attributes.
69
70Stress tests source elements at invalid locations. Tests source
71elements out of buffer range and at non-aligned locations using
72binding point buffer offset and/or vertex attribute relative
73offset.
74