| ------------------------------------------------------------------------- |
| 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. |
| ------------------------------------------------------------------------- |
| Primitive restart tests |
| |
| Tests: |
| + dEQP-GLES3.functional.primitive_restart.* |
| |
| Includes: |
| + Draw using: |
| - glDrawElements() |
| - glDrawElementsInstanced() |
| - glDrawRangeElements() |
| + All primitive types |
| + All index types |
| + Primitive restart index placing special cases: |
| - Use/don't use two consecutive primitive restarts |
| - Restarts/no restarts as first value of index array |
| - Restarts/no restarts as last value of index array |
| - Combinations of above |
| |
| Excludes: |
| + Test for correctness of rasterization |
| |
| Description: |
| |
| Vertex positions and indices are generated such that multiple primitives are |
| defined with the same index array, using the fixed primitive restart index to |
| separate the primitives. Various sizes (in terms of index count between |
| restarts) of primitives are generated. |
| |
| Special cases are generated such that there are indices at the beginning or end |
| of the index array, or the index array contains two consecutive restarts |
| where there would normally be one. These cases are otherwise equivalent and |
| should render identically. |
| |
| For glDrawElementsInstanced(), an instance count of 1 is used. For |
| glDrawRangeElements(), the start parameter is 0, and the end parameter is the |
| largest non-restart index in the index array. |
| |
| The result is compared to an image produced by doing multiple ordinary draw |
| calls instead of using primitive restarts. |