| ------------------------------------------------------------------------- |
| drawElements Quality Program Test Specification |
| ----------------------------------------------- |
| |
| Copyright 2014 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ------------------------------------------------------------------------- |
| Basic Compute Shader Tests |
| |
| Tests: |
| + dEQP-GLES31.functional.compute.basic.* |
| |
| Includes: |
| + Empty compute shader |
| + Single and multiple compute shader invocations (1 to 4k invocations) |
| + Various work group sizes (1 to 30 items) |
| + Reading from and writing to SSBO |
| - variables with basic type |
| - sized array |
| - unsized array as a last member |
| + Atomic counter (atomicCounterIncrement) |
| + Image access |
| - r32ui format |
| - read, write |
| - atomic operation (imageAtomicAdd) |
| + Work-group barriers |
| - SSBO access |
| - shared variable access |
| - image access (3plus mandates read or write only?) |
| + API level barrier commands |
| - SSBO access |
| - image access |
| + Program interface query (incidental coverage) |
| |
| Excludes: |
| + This excludes all but a couple of possible variants of |
| - data types |
| - SSBO layouts |
| - image formats |
| - built-in functions (atomics etc.) |
| - ... |
| |
| Description: |
| |
| The objective of basic compute tests is to provide a simplest possible test |
| case for each of the major compute-related features. The tests will not try to |
| test all possible variants, such as data types. Separate targeted test sets |
| will be developed to exhaustively test the features later. |
| |
| Tests typically operate by first compiling one or more programs with just a |
| compute shader. One or more (in API-level barrier tests) compute invocations |
| are made, and results are read back using buffer mapping. Comparison algorithm |
| varies by test case. |