------------------------------------------------------------------------- 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.