1Name 2 3 NVX_blend_equation_advanced_multi_draw_buffers 4 5Name Strings 6 7 GL_NVX_blend_equation_advanced_multi_draw_buffers 8 9Contact 10 11 Kedarnath Thangudu, NVIDIA Corporation (kthangudu 'at' nvidia.com) 12 13Contributors 14 15 Mark Kilgard, NVIDIA Corporation 16 17Status 18 19 Shipping in Pascal GPUs, June 2016. 20 21Version 22 23 Last Modified Date: July 15, 2016 24 NVIDIA Revision: 2 25 26Number 27 28 OpenGL Extension #492 29 OpenGL ES Extension #266 30 31Dependencies 32 33 This extension is written against NV_blend_equation_advanced as 34 applied to OpenGL 4.1 Specification (Compatibility Profile). 35 36 This extension requires either NV_blend_equation_advanced or 37 KHR_blend_equation_advanced. 38 39Overview 40 41 This extension adds support for using advanced blend equations 42 introduced with NV_blend_equation_advanced (and standardized 43 by KHR_blend_equation_advanced) in conjunction with multiple 44 draw buffers. The NV_blend_equation_advanced extension supports 45 advanced blending equations only when rending to a single color 46 buffer using fragment color zero and throws and INVALID_OPERATION 47 error when multiple draw buffers are used. This extension removes 48 this restriction. 49 50New Procedures and Functions 51 52 None 53 54New Tokens 55 56 None 57 58Additions to Chapter 2 of the OpenGL 4.1 Specification (OpenGL Operation) 59 60 None. 61 62Additions to Chapter 3 of the OpenGL 4.1 Specification (Rasterization) 63 64 None. 65 66Additions to Chapter 4 of the OpenGL 4.1 Specification (Per-Fragment 67Operations and the Frame Buffer) 68 69 [[In the "Advanced Blend Equations" subsection added in 70 NV_blend_equation_advanced, delete the paragraph beginning "If any 71 non-NONE draw buffer uses a blend equation..." and replace it with the 72 following paragraph. Advanced blend equations are now allowed with 73 multiple draw buffers as long as they use they use identical blend 74 equations.]] 75 76 If any non-NONE draw buffer uses a blend equation found in table X.2, X.3, 77 or X.4, the error INVALID_OPERATION is generated by [[Compatibility 78 Profile: Begin or any operation that implicitly calls Begin (such as 79 DrawElements)]] [[Core Profile: DrawArrays and the other drawing commands 80 defined in section 2.8.3]] if any other non-NONE draw buffer uses a 81 different blend equation. 82 83Additions to Chapter 5 of the OpenGL 4.1 Specification (Special Functions) 84 85 None. 86 87Additions to Chapter 6 of the OpenGL 4.1 Specification (State and 88State Requests) 89 90 None. 91 92Additions to Appendix A of the OpenGL 4.1 Specification (Invariance) 93 94 None. 95 96Additions to the AGL/GLX/WGL/EGL Specifications 97 98 None. 99 100GLX Protocol 101 102 None (since adds no API). 103 104Dependencies on OpenGL 4.1 (Core Profile) 105 106 [[Delete the paragraph beginning "This extension throws an 107 INVALID_OPERATION..." and replace it with the following paragraph]] 108 109 This extension throws an INVALID_OPERATION when Begin is called if advanced 110 blend equations are used and the blend equations for all the non-NONE draw 111 buffers are not identical. For the core profile of OpenGL 4.1 (and other 112 versions of OpenGL), there is no Begin command; instead, the error is 113 thrown by other rendering commands such as DrawArrays. The language in 114 this specification documenting the error has separate versions for the 115 core and compatibility profiles. 116 117Errors 118 119 [[Delete the paragraph beginning "If any non-NONE draw buffer uses a blend 120 equation..." and replace with the following.]] 121 122 If any non-NONE draw buffer uses a blend equation found in table X.2, X.3, 123 or X.4, the error INVALID_OPERATION is generated by Begin or any operation 124 that implicitly calls Begin (such as DrawElements) if any other non-NONE 125 draw buffer uses a different blend equation. 126 127New State 128 129 None 130 131New Implementation Dependent State 132 133 None. 134 135Issues 136 137 1) Why does this extension have no functions or tokens? 138 139 RESOLVED: This extension only relaxes error conditions 140 specified by the KHR_blend_equation_advanced and 141 NV_blend_equation_advanced_extensions. 142 143 2) Does this extension support ES 2.x and ES 3.x? 144 145 RESOLVED: Yes, if the extension is advertised in an ES 2.x or 146 3.x context, the extension is supported. 147 148Revision History 149 150 Rev. Date Author Changes 151 ---- -------- --------- ----------------------------------------- 152 1 kthangudu Internal revisions. 153 2 7/16/16 mjk typo + no GLX protocol needed 154