| ------------------------------------------------------------------------- |
| 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. |
| ------------------------------------------------------------------------- |
| Multiple vertex attribute vertex array tests |
| |
| Tests: |
| + dEQP-GLES2.functional.vertex_arrays.multiple_attributes.* |
| |
| Includes: |
| + Using different attribute counts. |
| + Multiple attributes from different sources(buffer, user pointer). |
| + Multiple attributes with different strides |
| + Multiple attributes with different input types. |
| |
| Excludes: |
| |
| Description: |
| |
| Testcases generate data that defines quads in testcase specifig format. |
| This takes account stride, offsets and other parameters. First attribute is used |
| as coordinates and must have two or more components to form distinct coordinates. |
| First two components are coordinates and six subsequent attributes form two triangles |
| which define a quad. Third and fourth component are same for each vertex in quad. |
| Other attributes are used to define color for quad. These are generated to have |
| same value for each vertex in quad. This data is uploaded to buffer or used from |
| user pointer while rendering. Rendering uses simple shader that takes first |
| attributes first two components and adds first to third component and second |
| to fourth component, if more than two components are used. First and third component |
| are used as x coordinate and second and fourth as y. These values are also scaled to |
| range from -1.0 to 1.0. Other attributes are multiplied component wise and are scaled |
| then to range from 0.0 to 1.0 and used as color. Test renders only once and result is |
| checked against reference implementations result. |
| |
| Attribute count tests render simple float data from user pointer using vec2 in |
| shader. |
| |
| Storage test render using three attributes from buffer or user pointer. Two component |
| float data is used as vec2 in shader. |
| |
| Stride tests use three attributes with different strides. Two component float |
| data is used as vec2 in shader. Strides test uses npot stride, pot stride and types |
| own size as stride. |
| |
| Input type testcases use three attributes with different input types. Attributes |
| are used as vec2 in shader. |