1Name 2 3 EXT_multiview_texture_multisample 4 5Name Strings 6 7 GL_EXT_multiview_texture_multisample 8 9Contact 10 11 Robert Menzel, NVIDIA Corporation (rmenzel 'at' nvidia.com) 12 13Contributors 14 15 Pat Brown, NVIDIA Corporation 16 James Helferty, NVIDIA Corporation 17 Kedarnath Thangudu, NVIDIA Corporation 18 19Status 20 21 Complete. 22 23Version 24 25 Last Modified Date: May 13, 2019 26 Author Revision: 1 27 28Number 29 30 OpenGL Extension #537 31 OpenGL ES Extension #318 32 33Dependencies 34 35 OpenGL 4.0 or OpenGL ES 3.2 are required. 36 37 This extension is written against the OpenGL 4.6 specification 38 (Core Profile) (February 2, 2019) and OpenGL ES 3.2 specification 39 (February 2, 2019). 40 41 OVR_multiview is required. 42 43Overview 44 45 OVR_multiview introduced multiview rendering to OpenGL and OpenGL ES. 46 47 This extension removes one of the limitations of the OVR_multiview 48 extension by allowing the use of multisample textures during multiview rendering. 49 50 This is one of two extensions that allow multisampling when using 51 OVR_multiview. Each supports one of the two different approaches to 52 multisampling in OpenGL and OpenGL ES: 53 54 Core OpenGL and OpenGL ES 3.1+ have explicit support for multisample 55 texture types, such as TEXTURE_2D_MULTISAMPLE. Applications can access 56 the values of individual samples and can explicitly "resolve" the 57 samples of each pixel down to a single color. 58 59 The extension EXT_multisampled_render_to_texture provides support for 60 multisampled rendering to non-multisample texture types, such as 61 TEXTURE_2D. The individual samples for each pixel are maintained 62 internally by the implementation and can not be accessed directly 63 by applications. These samples are eventually resolved implicitly to 64 a single color for each pixel. 65 66 This extension supports the first multisampling style with multiview 67 rendering; the OVR_multiview_multisampled_render_to_texture extension 68 supports the second style. Note that support for one of these multiview 69 extensions does not imply support for the other. 70 71 72New Tokens 73 74 None. 75 76 77New Procedures and Functions 78 79 None. 80 81 82Modifications to Chapter 9 of the OpenGL ES 3.2 Specification as well as 83Chapter 9 of the OpenGL 4.6 Specification (Framebuffers and Framebuffer 84Objects) 85 86Modifications to all sections added and/or modified by OVR_multiview 87 88 Where OVR_multiview references a "two-dimensional array texture", replace 89 this with "two-dimensional array texture or two-dimensional multisample 90 array texture" to explicitly allow rendering to multisampled textures. 91 92 The following is an explicit list of these changes: 93 94 In subsection 9.2.2.2 (introduced by OVR_multiview) replace 95 "Finally, multiple layers of two-dimensional array textures can be 96 attached to an attachment point." 97 with 98 "Finally, multiple layers of two-dimensional array textures or 99 two-dimensional multisample array textures can be 100 attached to an attachment point." 101 102 In the additions to section 9.2.3 (Framebuffer Object Queries) replace 103 "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR and the value 104 of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array texture..." 105 with 106 "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR and the value 107 of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array texture 108 or a two-dimensional multisample array texture..." 109 110 Also replace 111 "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR and the 112 value of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array 113 texture..." 114 with 115 "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR and the 116 value of FRAMEBUFFER_ATTACHMENT_OBJECT_NAME is a two-dimensional array 117 texture or a two-dimensional multisample array texture..." 118 119 In the addition to the end of section 9.2.8 (Attaching Textures to a Framebuffer) 120 replace 121 "Multiple layers of a two-dimensional array texture can be 122 attached as one of the logical buffers of a framebuffer object with the 123 commands" 124 with 125 "Multiple layers of a two-dimensional array texture or a two-dimensional 126 multisample array texture can be 127 attached as one of the logical buffers of a framebuffer object with the 128 commands" 129 130 Later in that section under "Errors" replace 131 "An INVALID_VALUE error is generated if: 132 - <texture> is a two-dimensional array texture and <baseViewIndex> + 133 <numViews> is larger than the value of MAX_ARRAY_TEXTURE_LAYERS." 134 with 135 "An INVALID_VALUE error is generated if: 136 - <texture> is a two-dimensional array texture or a two-dimensional 137 multisample array texture and <baseViewIndex> + 138 <numViews> is larger than the value of MAX_ARRAY_TEXTURE_LAYERS." 139 140 Also replace 141 "An INVALID_OPERATION error is generated if texture is non-zero and is not 142 the name of a two-dimensional array texture." 143 with 144 "An INVALID_OPERATION error is generated if texture is non-zero and is not 145 the name of a two-dimensional array texture or a two-dimensional 146 multisample array texture." 147 148 149Issues 150 151 (1) This extension is based on an OVR extension, why call it EXT? 152 153 While started as a single vendor extension, OVR_multiview and OVR_multiview2 154 are already supported by multiple vendors. This new extension also has the 155 support from multiple vendors to be specified as EXT. 156 157 (2) Can this extension be used together with 158 OVR_multiview_multisampled_render_to_texture if both are supported? 159 160 The two extensions can be used together in the same application, but not in 161 the same framebuffer. OVR_multiview_multisampled_render_to_texture is based 162 on EXT_multisampled_render_to_texture, which explicitly does not permit a 163 single framebuffer to contain explicit multisample texture types (from 164 OpenGL ES 3.1 and core OpenGL) and "multisampled" bindings of non-multisample 165 texture types. 166 167Revision History 168 169 Rev. Date Author Changes 170 ---- -------- -------- ----------------------------------------- 171 1 05/13/19 rmenzel Initial version. 172