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 Primitive restart tests 20 21Tests: 22 + dEQP-GLES3.functional.primitive_restart.* 23 24Includes: 25 + Draw using: 26 - glDrawElements() 27 - glDrawElementsInstanced() 28 - glDrawRangeElements() 29 + All primitive types 30 + All index types 31 + Primitive restart index placing special cases: 32 - Use/don't use two consecutive primitive restarts 33 - Restarts/no restarts as first value of index array 34 - Restarts/no restarts as last value of index array 35 - Combinations of above 36 37Excludes: 38 + Test for correctness of rasterization 39 40Description: 41 42Vertex positions and indices are generated such that multiple primitives are 43defined with the same index array, using the fixed primitive restart index to 44separate the primitives. Various sizes (in terms of index count between 45restarts) of primitives are generated. 46 47Special cases are generated such that there are indices at the beginning or end 48of the index array, or the index array contains two consecutive restarts 49where there would normally be one. These cases are otherwise equivalent and 50should render identically. 51 52For glDrawElementsInstanced(), an instance count of 1 is used. For 53glDrawRangeElements(), the start parameter is 0, and the end parameter is the 54largest non-restart index in the index array. 55 56The result is compared to an image produced by doing multiple ordinary draw 57calls instead of using primitive restarts. 58