Merge "Use de::ArrayBuffer, not raw arrays, in sglrReferenceContext."
[platform/upstream/VK-GL-CTS.git] / doc / testspecs / GLES31 / functional.shaders.opaque_type_indexing.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     Opaque Type Indexing
20
21 Tests:
22  + dEQP-GLES31.functional.shaders.opaque_type_indexing.*
23
24 Includes:
25  + Indexing of sampler arrays
26    - all sampler types
27    - single sampler array
28    - 1x1 texture per unit, unique color per texture
29  + Indexing of Uniform Block instance arrays
30    - single uint var in each block
31  + Indexing of SSBO instance arrays
32    - single uint var in each block
33    - read only
34  + Indexing of atomic counter arrays
35    - single array
36  + Vertex, fragment and compute shaders
37  + Indexing with constant literals
38  + Indexing with uniform values (XXX_gpu_shader5)
39  + Indexing with dynamically uniform values (XXX_gpu_shader5)
40
41 Excludes (will be added later):
42  + SSBO writes, atomic ops, unsized array length queries
43  + Different texture sizes and filtering modes
44  + Indexing inside complex control flow (loop iterator var)
45  + Indexing with non-trivial constant expressions
46  + Negative tests
47
48 Description:
49
50 Opaque type indexing tests generate a shader that does multiple reads from a
51 specific opaque type array. The indexing expression depends on the test case
52 type. Constant literal cases simply index with constant literal values,
53 uniform cases with values read directly from a list of uniforms, and
54 dynamically uniform cases using attribute/varying/SSBO variables depending on
55 the shader type.
56
57 Results from the indexing operations are collected using transform feedback,
58 fragment shader outputs, or written into a SSBO depending on the shader type.
59 Results are validated against reference values.