| ------------------------------------------------------------------------- |
| 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. |
| ------------------------------------------------------------------------- |
| Blend Equation Advanced (GL_KHR_blend_equation_advanced) |
| |
| Tests: |
| + dEQP-GLES31.functional.blend_equation_advanced.* |
| |
| Includes: |
| + Validation of all advanced blending modes |
| + Rendering into default framebuffer |
| + Rendering into sRGB FBO |
| + Rendering into MSAA FBO |
| + glBlendBarrierKHR() usage |
| + Validation of coherent blending (if supported) |
| |
| Excludes (will be added later): |
| + Use of blend_support_all qualifier |
| + Interaction with other per-fragment operations |
| + Non-premultiplied / invalid color inputs |
| + Negative tests |
| |
| Description: |
| |
| Advanced blending tests render two or more overlapping quads. First quad is |
| rendered without blending, while subsequent quads have the advanced blend mode |
| enabled. Results are always verified against a reference implementation. In |
| modes other than HSL, bilinear comparison is used. in HSL modes fuzzy |
| comparison is used as minor precision differences can cause relatively large |
| deviations in rendered images. |
| |
| In basic, srgb, and msaa tests, only two quads are rendered. In barrier tests |
| multiple quads are rendered, one quad per draw call. A blend barrier call is |
| made between each overlapping quad with advanced blending enabled. In coherent |
| and coherent_msaa tests all quads that have blending enabled are rendered in a |
| single draw call. |