xref: /aosp_15_r20/external/deqp/doc/testspecs/GLES3/functional.primitive_restart.txt (revision 35238bce31c2a825756842865a792f8cf7f89930)
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