| include::meta/VK_NV_viewport_array2.txt[] |
| |
| *Last Modified Date*:: |
| 2017-02-15 |
| *Interactions and External Dependencies*:: |
| - This extension requires the |
| https://www.khronos.org/registry/spir-v/extensions/NV/SPV_NV_viewport_array2.html[+SPV_NV_viewport_array2+] |
| SPIR-V extension. |
| - This extension requires the |
| https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[+GL_NV_viewport_array2+] |
| extension for GLSL source languages. |
| - This extension requires the pname:geometryShader and pname:multiViewport |
| features. |
| - This extension interacts with the pname:tessellationShader feature. |
| *Contributors*:: |
| - Piers Daniell, NVIDIA |
| - Jeff Bolz, NVIDIA |
| |
| This extension adds support for the following SPIR-V extension in Vulkan: |
| |
| * +SPV_NV_viewport_array2+ |
| |
| which allows a single primitive to be broadcast to multiple viewports and/or |
| multiple layers. |
| A new shader built-in output code:ViewportMaskNV is provided, which allows a |
| single primitive to be output to multiple viewports simultaneously. |
| Also, a new SPIR-V decoration is added to control whether the effective |
| viewport index is added into the variable decorated with the code:Layer |
| built-in decoration. |
| These capabilities allow a single primitive to be output to multiple layers |
| simultaneously. |
| |
| This extension allows variables decorated with the code:Layer and |
| code:ViewportIndex built-ins to be exported from vertex or tessellation |
| shaders, using the code:ShaderViewportIndexLayerNV capability. |
| |
| This extension adds a new code:ViewportMaskNV built-in decoration that is |
| available for output variables in vertex, tessellation evaluation, and |
| geometry shaders, and a new code:ViewportRelativeNV decoration that can be |
| added on variables decorated with code:Layer when using the |
| code:ShaderViewportMaskNV capability. |
| |
| When using GLSL source-based shading languages, the code:gl_ViewportMask[] |
| built-in output variable and code:viewport_relative layout qualifier from |
| +GL_NV_viewport_array2+ map to the code:ViewportMaskNV and |
| code:ViewportRelativeNV decorations, respectively. |
| Behaviour is described in the +GL_NV_viewport_array2+ extension |
| specificiation. |
| |
| ifdef::VK_EXT_shader_viewport_index_layer[] |
| [NOTE] |
| .Note |
| ==== |
| The code:ShaderViewportIndexLayerNV capability is equivalent to the |
| code:ShaderViewportIndexLayerEXT capability added by |
| `<<VK_EXT_shader_viewport_index_layer>>`. |
| ==== |
| endif::VK_EXT_shader_viewport_index_layer[] |
| |
| |
| === New Object Types |
| |
| None. |
| |
| === New Enum Constants |
| |
| None. |
| |
| === New Enums |
| |
| None. |
| |
| === New Structures |
| |
| None. |
| |
| === New Functions |
| |
| None. |
| |
| === New or Modified Built-In Variables |
| |
| * (modified) <<interfaces-builtin-variables-layer,code:Layer>> |
| * (modified) |
| <<interfaces-builtin-variables-viewportindex,code:ViewportIndex>> |
| * <<interfaces-builtin-variables-viewportmask,code:ViewportMaskNV>> |
| |
| === New Variable Decoration |
| |
| * <<interfaces-builtin-variables-layer,code:ViewportRelativeNV in |
| code:Layer>> |
| |
| === New SPIR-V Capabilities |
| |
| * <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportIndexLayerNV>> |
| * <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportMaskNV>> |
| |
| === Issues |
| |
| None yet! |
| |
| === Version History |
| |
| * Revision 1, 2017-02-15 (Daniel Koch) |
| - Internal revisions |