NVX_blend_equation_advanced_multi_draw_buffers

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