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. 65