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 *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 <>. ==== 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) <> * (modified) <> * <> === New Variable Decoration * <> === New SPIR-V Capabilities * <> * <> === Issues None yet! === Version History * Revision 1, 2017-02-15 (Daniel Koch) - Internal revisions