1*35238bceSAndroid Build Coastguard Worker------------------------------------------------------------------------- 2*35238bceSAndroid Build Coastguard WorkerdrawElements Quality Program Test Specification 3*35238bceSAndroid Build Coastguard Worker----------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker 5*35238bceSAndroid Build Coastguard WorkerCopyright 2014 The Android Open Source Project 6*35238bceSAndroid Build Coastguard Worker 7*35238bceSAndroid Build Coastguard WorkerLicensed under the Apache License, Version 2.0 (the "License"); 8*35238bceSAndroid Build Coastguard Workeryou may not use this file except in compliance with the License. 9*35238bceSAndroid Build Coastguard WorkerYou may obtain a copy of the License at 10*35238bceSAndroid Build Coastguard Worker 11*35238bceSAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 12*35238bceSAndroid Build Coastguard Worker 13*35238bceSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software 14*35238bceSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS, 15*35238bceSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16*35238bceSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and 17*35238bceSAndroid Build Coastguard Workerlimitations under the License. 18*35238bceSAndroid Build Coastguard Worker------------------------------------------------------------------------- 19*35238bceSAndroid Build Coastguard Worker Basic Compute Shader Tests 20*35238bceSAndroid Build Coastguard Worker 21*35238bceSAndroid Build Coastguard WorkerTests: 22*35238bceSAndroid Build Coastguard Worker + dEQP-GLES31.functional.compute.basic.* 23*35238bceSAndroid Build Coastguard Worker 24*35238bceSAndroid Build Coastguard WorkerIncludes: 25*35238bceSAndroid Build Coastguard Worker + Empty compute shader 26*35238bceSAndroid Build Coastguard Worker + Single and multiple compute shader invocations (1 to 4k invocations) 27*35238bceSAndroid Build Coastguard Worker + Various work group sizes (1 to 30 items) 28*35238bceSAndroid Build Coastguard Worker + Reading from and writing to SSBO 29*35238bceSAndroid Build Coastguard Worker - variables with basic type 30*35238bceSAndroid Build Coastguard Worker - sized array 31*35238bceSAndroid Build Coastguard Worker - unsized array as a last member 32*35238bceSAndroid Build Coastguard Worker + Atomic counter (atomicCounterIncrement) 33*35238bceSAndroid Build Coastguard Worker + Image access 34*35238bceSAndroid Build Coastguard Worker - r32ui format 35*35238bceSAndroid Build Coastguard Worker - read, write 36*35238bceSAndroid Build Coastguard Worker - atomic operation (imageAtomicAdd) 37*35238bceSAndroid Build Coastguard Worker + Work-group barriers 38*35238bceSAndroid Build Coastguard Worker - SSBO access 39*35238bceSAndroid Build Coastguard Worker - shared variable access 40*35238bceSAndroid Build Coastguard Worker - image access (3plus mandates read or write only?) 41*35238bceSAndroid Build Coastguard Worker + API level barrier commands 42*35238bceSAndroid Build Coastguard Worker - SSBO access 43*35238bceSAndroid Build Coastguard Worker - image access 44*35238bceSAndroid Build Coastguard Worker + Program interface query (incidental coverage) 45*35238bceSAndroid Build Coastguard Worker 46*35238bceSAndroid Build Coastguard WorkerExcludes: 47*35238bceSAndroid Build Coastguard Worker + This excludes all but a couple of possible variants of 48*35238bceSAndroid Build Coastguard Worker - data types 49*35238bceSAndroid Build Coastguard Worker - SSBO layouts 50*35238bceSAndroid Build Coastguard Worker - image formats 51*35238bceSAndroid Build Coastguard Worker - built-in functions (atomics etc.) 52*35238bceSAndroid Build Coastguard Worker - ... 53*35238bceSAndroid Build Coastguard Worker 54*35238bceSAndroid Build Coastguard WorkerDescription: 55*35238bceSAndroid Build Coastguard Worker 56*35238bceSAndroid Build Coastguard WorkerThe objective of basic compute tests is to provide a simplest possible test 57*35238bceSAndroid Build Coastguard Workercase for each of the major compute-related features. The tests will not try to 58*35238bceSAndroid Build Coastguard Workertest all possible variants, such as data types. Separate targeted test sets 59*35238bceSAndroid Build Coastguard Workerwill be developed to exhaustively test the features later. 60*35238bceSAndroid Build Coastguard Worker 61*35238bceSAndroid Build Coastguard WorkerTests typically operate by first compiling one or more programs with just a 62*35238bceSAndroid Build Coastguard Workercompute shader. One or more (in API-level barrier tests) compute invocations 63*35238bceSAndroid Build Coastguard Workerare made, and results are read back using buffer mapping. Comparison algorithm 64*35238bceSAndroid Build Coastguard Workervaries by test case. 65