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