1*35238bceSAndroid Build Coastguard Worker------------------------------------------------------------------------- 2*35238bceSAndroid Build Coastguard WorkerdrawElements Quality Program Test Specification 3*35238bceSAndroid Build Coastguard Worker----------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker 5*35238bceSAndroid Build Coastguard WorkerCopyright 2014 The Android Open Source Project 6*35238bceSAndroid Build Coastguard Worker 7*35238bceSAndroid Build Coastguard WorkerLicensed under the Apache License, Version 2.0 (the "License"); 8*35238bceSAndroid Build Coastguard Workeryou may not use this file except in compliance with the License. 9*35238bceSAndroid Build Coastguard WorkerYou may obtain a copy of the License at 10*35238bceSAndroid Build Coastguard Worker 11*35238bceSAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 12*35238bceSAndroid Build Coastguard Worker 13*35238bceSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software 14*35238bceSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS, 15*35238bceSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16*35238bceSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and 17*35238bceSAndroid Build Coastguard Workerlimitations under the License. 18*35238bceSAndroid Build Coastguard Worker------------------------------------------------------------------------- 19*35238bceSAndroid Build Coastguard Worker Primitive restart tests 20*35238bceSAndroid Build Coastguard Worker 21*35238bceSAndroid Build Coastguard WorkerTests: 22*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.primitive_restart.* 23*35238bceSAndroid Build Coastguard Worker 24*35238bceSAndroid Build Coastguard WorkerIncludes: 25*35238bceSAndroid Build Coastguard Worker + Draw using: 26*35238bceSAndroid Build Coastguard Worker - glDrawElements() 27*35238bceSAndroid Build Coastguard Worker - glDrawElementsInstanced() 28*35238bceSAndroid Build Coastguard Worker - glDrawRangeElements() 29*35238bceSAndroid Build Coastguard Worker + All primitive types 30*35238bceSAndroid Build Coastguard Worker + All index types 31*35238bceSAndroid Build Coastguard Worker + Primitive restart index placing special cases: 32*35238bceSAndroid Build Coastguard Worker - Use/don't use two consecutive primitive restarts 33*35238bceSAndroid Build Coastguard Worker - Restarts/no restarts as first value of index array 34*35238bceSAndroid Build Coastguard Worker - Restarts/no restarts as last value of index array 35*35238bceSAndroid Build Coastguard Worker - Combinations of above 36*35238bceSAndroid Build Coastguard Worker 37*35238bceSAndroid Build Coastguard WorkerExcludes: 38*35238bceSAndroid Build Coastguard Worker + Test for correctness of rasterization 39*35238bceSAndroid Build Coastguard Worker 40*35238bceSAndroid Build Coastguard WorkerDescription: 41*35238bceSAndroid Build Coastguard Worker 42*35238bceSAndroid Build Coastguard WorkerVertex positions and indices are generated such that multiple primitives are 43*35238bceSAndroid Build Coastguard Workerdefined with the same index array, using the fixed primitive restart index to 44*35238bceSAndroid Build Coastguard Workerseparate the primitives. Various sizes (in terms of index count between 45*35238bceSAndroid Build Coastguard Workerrestarts) of primitives are generated. 46*35238bceSAndroid Build Coastguard Worker 47*35238bceSAndroid Build Coastguard WorkerSpecial cases are generated such that there are indices at the beginning or end 48*35238bceSAndroid Build Coastguard Workerof the index array, or the index array contains two consecutive restarts 49*35238bceSAndroid Build Coastguard Workerwhere there would normally be one. These cases are otherwise equivalent and 50*35238bceSAndroid Build Coastguard Workershould render identically. 51*35238bceSAndroid Build Coastguard Worker 52*35238bceSAndroid Build Coastguard WorkerFor glDrawElementsInstanced(), an instance count of 1 is used. For 53*35238bceSAndroid Build Coastguard WorkerglDrawRangeElements(), the start parameter is 0, and the end parameter is the 54*35238bceSAndroid Build Coastguard Workerlargest non-restart index in the index array. 55*35238bceSAndroid Build Coastguard Worker 56*35238bceSAndroid Build Coastguard WorkerThe result is compared to an image produced by doing multiple ordinary draw 57*35238bceSAndroid Build Coastguard Workercalls instead of using primitive restarts. 58