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