Merge "Use de::ArrayBuffer, not raw arrays, in sglrReferenceContext."
[platform/upstream/VK-GL-CTS.git] / doc / testspecs / GLES31 / functional.draw_indirect.txt
1 -------------------------------------------------------------------------
2 drawElements Quality Program Test Specification
3 -----------------------------------------------
4
5 Copyright 2014 The Android Open Source Project
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11      http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 -------------------------------------------------------------------------
19     Indirect drawing tests
20
21 Tests:
22  + dEQP-GLES31.functional.draw_indirect.*
23
24 Includes:
25  + Draw all basic primitives
26    - Points, triangles, triangle strips, triangle fans, lines, line
27      strips, line loops
28  + DrawArraysIndirect firstVertex
29  + DrawElementsIndirect index array tests
30  + DrawElementsIndirect baseVertex
31    - Test positive and negative baseVertex values
32  + Instanced draw with a high instance count
33  + Negative tests
34     - Bad alignment
35         - Source data beyond the end of the buffer
36         - Use of client side attribute arrays
37
38 Excludes:
39
40 Description:
41
42 Primitive drawing cases draw a group of primitives with random generated
43 vertex attributes and compare the output to a reference image generated
44 by a simple reference rasterizer. Each primitive is tested using a single
45 (generated) attribute array, multiple attribute arrays, instanced
46 attribute array (instance divisor > 0) and with a non-array current
47 attribute.
48
49 DrawArraysIndirect firstVertex cases draw random triangles using
50 glDrawElementIndirect with firstVertex > 0 and compare results to a
51 generated reference image.
52
53 DrawElementsIndirect index array cases draw random triangles using
54 glDrawElementIndirect with index types of unsigned byte, short and int
55 with both firstIndex = 0 and firstIndex = 1 and compare results to
56 generated reference images.
57
58 DrawElementsIndirect baseVertex cases draw random triangles with index
59 types of unsigned byte, short and int using both positive and negative
60 baseVertex values and compare results to generated reference images.
61
62 Instanced draw cases draw a grid by instancing a single tile. The result
63 is verified by simply searching for background colored (black) pixels in
64 the result image. Resulting image should not contain any background
65 colored pixels.
66
67 Negative cases test try to issue a bad indirect draw command expecting an
68 INVALID_OPERATION. Bad commands tested are commands with bad alignment,
69 commands only partially in the DRAW_INDIRECT_BUFFER buffer, and commands
70 not even partially in the DRAW_INDIRECT_BUFFER buffer.