1-------------------------------------------------------------------------
2drawElements Quality Program Test Specification
3-----------------------------------------------
4
5Copyright 2014 The Android Open Source Project
6
7Licensed under the Apache License, Version 2.0 (the "License");
8you may not use this file except in compliance with the License.
9You may obtain a copy of the License at
10
11     http://www.apache.org/licenses/LICENSE-2.0
12
13Unless required by applicable law or agreed to in writing, software
14distributed under the License is distributed on an "AS IS" BASIS,
15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16See the License for the specific language governing permissions and
17limitations under the License.
18-------------------------------------------------------------------------
19    Basic Compute Shader Tests
20
21Tests:
22 + dEQP-GLES31.functional.compute.basic.*
23
24Includes:
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
46Excludes:
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
54Description:
55
56The objective of basic compute tests is to provide a simplest possible test
57case for each of the major compute-related features. The tests will not try to
58test all possible variants, such as data types. Separate targeted test sets
59will be developed to exhaustively test the features later.
60
61Tests typically operate by first compiling one or more programs with just a
62compute shader. One or more (in API-level barrier tests) compute invocations
63are made, and results are read back using buffer mapping. Comparison algorithm
64varies by test case.
65