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 Title 20 21Tests: 22 + dEQP-GLES31.functional.fbo.no_attachments.* 23 + dEQP-GLES31.functional.fbo.completeness.no_attachments 24 25Includes: 26 + Framebuffer completeness 27 + Rendering 28 - Multiple sizes 29 - Multisampled 30 + Limits 31 32Excludes: 33 + Most usefull forms of output 34 - Atomic counter use (none guaranteed in fragment shader) 35 - Image read/write (no image units guaranteed in fragment shader) 36 + Fixed sample locations (no way to verify) 37 38Description: 39 40Framebuffer completenss is tested trivially 41 42Rendering is verified to happen with occlusion queries. This rather limited 43method has been chosen since there is a general shortage of guaranteed valid 44ways of outputting data from a fragment shader without a color/depth/stencil 45buffer. Namely all relevant minimum maximums (atomic counters, atomic counter 46buffers, shader storage blocks and image uniforms) are zero. 47 48Basic functioning of the framebuffer is tested by rendering a full buffer quad 49and verifying its presence with an occlusion query. Size of the framebuffer 50is verified by running a shader that discard all fragments that are not within 51a given pixel's boundaries with several pixels placed around the edge of the 52framebuffer and checking for that these fragments were (not) rendered with 53an occlusion query. Each tested pixel has its own render call and occlusion 54query. 55 56Basic functionality tests iterate a number of size & sampling parameters, 57including the required maximum and implementation reported limits 58 59The completeness test verifies that a framebuffer with both widht and height 60set is considered complete. 61