-------------------------------------------------------------------------
drawElements Quality Program Test Specification
-----------------------------------------------
Copyright 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------------
Vertex Attribute Binding Tests
Tests:
+ dEQP-GLES31.functional.vertex_attribute_binding.*
+ dEQP-GLES31.functional.state_query.vertex_attribute_binding.*
+ dEQP-GLES31.stress.vertex_attribute_binding.*
Includes:
+ Vertex attribute binding state setting and queries
+ Drawing with all attributes sourced from a single buffer
- Single and multiple attributes, multiple attributes sharing
components.
- Non-zero buffer offset
- Sourcing elements at an aligned location from a buffer with
a combination of non-aligned buffer offset and non-aligned
vertex attribute start offset.
+ Drawing with all attributes sourced from different binding points
- Basic drawing
- Binding point stride set to zero
- Binding point instance divisor
- Binding same buffer object to multiple binding points
+ Mixing vertex attribute binding and vertex attribute pointer APIs
- Different APIs for different vertex attributes
- Use vertex attribute binding API to change state set with vertex
attribute pointer API
+ Negative tests
- Use with default VAO
- BindVertexBuffer for non-gen'd buffer name
- Invalid values
+ Stress tests
- Sourcing elements over buffer bounds
- Sourcing elements at non-aligned locations
Excludes:
+ Use of all vertex attribute binding points
+ Sourcing elements from a buffer with a large stride/offset
+ Buffer object lifetime/validity after deleteBuffers
Description:
State query tests verify initial values, and state setting and
querying functions by setting random values. Modifications to
vertex attribute binding state after use of vertex attribute
pointer API is also verified.
Rendering tests set vertex attribute state using vertex attribute
binding API and issue a single draw command. Resulting image is
then verified. Mixed API rendering tests intermix both vertex
attribute binding and the vertexAttribPointer API commands to
modify the state of the same or different vertex attributes.
Stress tests source elements at invalid locations. Tests source
elements out of buffer range and at non-aligned locations using
binding point buffer offset and/or vertex attribute relative
offset.