| Name |
| |
| NVX_blend_equation_advanced_multi_draw_buffers |
| |
| Name Strings |
| |
| GL_NVX_blend_equation_advanced_multi_draw_buffers |
| |
| Contact |
| |
| Kedarnath Thangudu, NVIDIA Corporation (kthangudu 'at' nvidia.com) |
| |
| Contributors |
| |
| Mark Kilgard, NVIDIA Corporation |
| |
| Status |
| |
| Shipping in Pascal GPUs, June 2016. |
| |
| Version |
| |
| Last Modified Date: July 15, 2016 |
| NVIDIA Revision: 2 |
| |
| Number |
| |
| OpenGL Extension #492 |
| OpenGL ES Extension #266 |
| |
| Dependencies |
| |
| This extension is written against NV_blend_equation_advanced as |
| applied to OpenGL 4.1 Specification (Compatibility Profile). |
| |
| This extension requires either NV_blend_equation_advanced or |
| KHR_blend_equation_advanced. |
| |
| Overview |
| |
| This extension adds support for using advanced blend equations |
| introduced with NV_blend_equation_advanced (and standardized |
| by KHR_blend_equation_advanced) in conjunction with multiple |
| draw buffers. The NV_blend_equation_advanced extension supports |
| advanced blending equations only when rending to a single color |
| buffer using fragment color zero and throws and INVALID_OPERATION |
| error when multiple draw buffers are used. This extension removes |
| this restriction. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| None |
| |
| Additions to Chapter 2 of the OpenGL 4.1 Specification (OpenGL Operation) |
| |
| None. |
| |
| Additions to Chapter 3 of the OpenGL 4.1 Specification (Rasterization) |
| |
| None. |
| |
| Additions to Chapter 4 of the OpenGL 4.1 Specification (Per-Fragment |
| Operations and the Frame Buffer) |
| |
| [[In the "Advanced Blend Equations" subsection added in |
| NV_blend_equation_advanced, delete the paragraph beginning "If any |
| non-NONE draw buffer uses a blend equation..." and replace it with the |
| following paragraph. Advanced blend equations are now allowed with |
| multiple draw buffers as long as they use they use identical blend |
| equations.]] |
| |
| If any non-NONE draw buffer uses a blend equation found in table X.2, X.3, |
| or X.4, the error INVALID_OPERATION is generated by [[Compatibility |
| Profile: Begin or any operation that implicitly calls Begin (such as |
| DrawElements)]] [[Core Profile: DrawArrays and the other drawing commands |
| defined in section 2.8.3]] if any other non-NONE draw buffer uses a |
| different blend equation. |
| |
| Additions to Chapter 5 of the OpenGL 4.1 Specification (Special Functions) |
| |
| None. |
| |
| Additions to Chapter 6 of the OpenGL 4.1 Specification (State and |
| State Requests) |
| |
| None. |
| |
| Additions to Appendix A of the OpenGL 4.1 Specification (Invariance) |
| |
| None. |
| |
| Additions to the AGL/GLX/WGL/EGL Specifications |
| |
| None. |
| |
| GLX Protocol |
| |
| None (since adds no API). |
| |
| Dependencies on OpenGL 4.1 (Core Profile) |
| |
| [[Delete the paragraph beginning "This extension throws an |
| INVALID_OPERATION..." and replace it with the following paragraph]] |
| |
| This extension throws an INVALID_OPERATION when Begin is called if advanced |
| blend equations are used and the blend equations for all the non-NONE draw |
| buffers are not identical. For the core profile of OpenGL 4.1 (and other |
| versions of OpenGL), there is no Begin command; instead, the error is |
| thrown by other rendering commands such as DrawArrays. The language in |
| this specification documenting the error has separate versions for the |
| core and compatibility profiles. |
| |
| Errors |
| |
| [[Delete the paragraph beginning "If any non-NONE draw buffer uses a blend |
| equation..." and replace with the following.]] |
| |
| If any non-NONE draw buffer uses a blend equation found in table X.2, X.3, |
| or X.4, the error INVALID_OPERATION is generated by Begin or any operation |
| that implicitly calls Begin (such as DrawElements) if any other non-NONE |
| draw buffer uses a different blend equation. |
| |
| New State |
| |
| None |
| |
| New Implementation Dependent State |
| |
| None. |
| |
| Issues |
| |
| 1) Why does this extension have no functions or tokens? |
| |
| RESOLVED: This extension only relaxes error conditions |
| specified by the KHR_blend_equation_advanced and |
| NV_blend_equation_advanced_extensions. |
| |
| 2) Does this extension support ES 2.x and ES 3.x? |
| |
| RESOLVED: Yes, if the extension is advertised in an ES 2.x or |
| 3.x context, the extension is supported. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- -------- --------- ----------------------------------------- |
| 1 kthangudu Internal revisions. |
| 2 7/16/16 mjk typo + no GLX protocol needed |