| ------------------------------------------------------------------------- |
| 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. |
| ------------------------------------------------------------------------- |
| Title |
| |
| Tests: |
| + dEQP-GLES31.functional.fbo.no_attachments.* |
| + dEQP-GLES31.functional.fbo.completeness.no_attachments |
| |
| Includes: |
| + Framebuffer completeness |
| + Rendering |
| - Multiple sizes |
| - Multisampled |
| + Limits |
| |
| Excludes: |
| + Most usefull forms of output |
| - Atomic counter use (none guaranteed in fragment shader) |
| - Image read/write (no image units guaranteed in fragment shader) |
| + Fixed sample locations (no way to verify) |
| |
| Description: |
| |
| Framebuffer completenss is tested trivially |
| |
| Rendering is verified to happen with occlusion queries. This rather limited |
| method has been chosen since there is a general shortage of guaranteed valid |
| ways of outputting data from a fragment shader without a color/depth/stencil |
| buffer. Namely all relevant minimum maximums (atomic counters, atomic counter |
| buffers, shader storage blocks and image uniforms) are zero. |
| |
| Basic functioning of the framebuffer is tested by rendering a full buffer quad |
| and verifying its presence with an occlusion query. Size of the framebuffer |
| is verified by running a shader that discard all fragments that are not within |
| a given pixel's boundaries with several pixels placed around the edge of the |
| framebuffer and checking for that these fragments were (not) rendered with |
| an occlusion query. Each tested pixel has its own render call and occlusion |
| query. |
| |
| Basic functionality tests iterate a number of size & sampling parameters, |
| including the required maximum and implementation reported limits |
| |
| The completeness test verifies that a framebuffer with both widht and height |
| set is considered complete. |