| ------------------------------------------------------------------------- |
| drawElements Quality Program Test Specification |
| ----------------------------------------------- |
| |
| Copyright 2015 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. |
| ------------------------------------------------------------------------- |
| GL_EXT_draw_buffers_indexed tests. |
| |
| Tests: |
| + dEQP-GLES31.functional.draw_buffers_indexed.* |
| |
| Includes: |
| + Blend equations, blend functions, blend enable and color masks. |
| + Setting common state first and then per draw buffer state. |
| + Setting per draw buffer state first and then common state. |
| + Overriding per draw buffer state with common state. |
| + Overriding common state with per draw buffer state. |
| + Random tests for different states and renderbuffer formats. |
| |
| Excludes: |
| + Query tests. |
| + Exhaustive blend state combinations. |
| + Exhaustive tests for all renderbuffer formats. |
| |
| Description: |
| |
| Each test cases begins by creating framebuffer object and required renderbuffer |
| objects. Depending on test case it sets some common blend state with original |
| non-indexed functions, then some draw buffer specific state with indexed |
| functions and finally tries to set some common blend state again with original |
| functions. Different test cases set different state before and after setting per |
| draw buffer state. Results are verified by rendering single quad using the |
| framebuffer object and reading back each renderbuffer, which are then compared |
| to reference. |
| |
| pre_common -group uses two RGBA8 renderbuffers. It first sets some common state |
| and changes that same state for second draw buffer using indexed functions. |
| |
| post_common -group is similar to pre_common -group except it first sets the draw |
| buffer specific state for second renderbuffer and then overrides it by using |
| non-indexed functions. |
| |
| min_max_random -group uses specification minimum maximum number of draw buffers |
| and randomizes renderbuffer formats, pre- and post-common state and per draw |
| buffer state. |
| |
| max_random -group works as min_max_random -group, but uses the implementation |
| maximum number of draw buffers. |