Merge "Use de::ArrayBuffer, not raw arrays, in sglrReferenceContext."
[platform/upstream/VK-GL-CTS.git] / doc / testspecs / GLES31 / functional.compute.basic.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     Basic Compute Shader Tests
20
21 Tests:
22  + dEQP-GLES31.functional.compute.basic.*
23
24 Includes:
25  + Empty compute shader
26  + Single and multiple compute shader invocations (1 to 4k invocations)
27  + Various work group sizes (1 to 30 items)
28  + Reading from and writing to SSBO
29    - variables with basic type
30    - sized array
31    - unsized array as a last member
32  + Atomic counter (atomicCounterIncrement)
33  + Image access
34    - r32ui format
35    - read, write
36    - atomic operation (imageAtomicAdd)
37  + Work-group barriers
38    - SSBO access
39    - shared variable access
40    - image access (3plus mandates read or write only?)
41  + API level barrier commands
42    - SSBO access
43    - image access
44  + Program interface query (incidental coverage)
45
46 Excludes:
47  + This excludes all but a couple of possible variants of
48    - data types
49    - SSBO layouts
50    - image formats
51    - built-in functions (atomics etc.)
52    - ...
53
54 Description:
55
56 The objective of basic compute tests is to provide a simplest possible test
57 case for each of the major compute-related features. The tests will not try to
58 test all possible variants, such as data types. Separate targeted test sets
59 will be developed to exhaustively test the features later.
60
61 Tests typically operate by first compiling one or more programs with just a
62 compute shader. One or more (in API-level barrier tests) compute invocations
63 are made, and results are read back using buffer mapping. Comparison algorithm
64 varies by test case.