include::meta/VK_EXT_shader_viewport_index_layer.txt[] *Last Modified Date*:: 2017-08-08 *Interactions and External Dependencies*:: - This extension requires the https://www.khronos.org/registry/spir-v/extensions/EXT/SPV_EXT_shader_viewport_index_layer.html[+SPV_EXT_shader_viewport_index_layer+] SPIR-V extension. - This extension requires the https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt[+GL_ARB_shader_viewport_layer_array+], https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt[+GL_AMD_vertex_shader_layer+], https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt[+GL_AMD_vertex_shader_viewport_index+], or https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[+GL_NV_viewport_array2+] extensions for GLSL source languages. - This extension requires the pname:multiViewport feature. - This extension interacts with the pname:tessellationShader feature. *Contributors*:: - Piers Daniell, NVIDIA - Jeff Bolz, NVIDIA - Jan-Harald Fredriksen, ARM - Daniel Rakos, AMD - Slawomir Grajeswki, Intel This extension adds support for the code:ShaderViewportIndexLayerEXT capability from the +SPV_EXT_shader_viewport_index_layer+ extension in Vulkan. 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:ShaderViewportIndexLayerEXT capability. When using GLSL source-based shading languages, the code:gl_ViewportIndex and code:gl_Layer built-in variables map to the SPIR-V code:ViewportIndex and code:Layer built-in decorations, respectively. Behaviour of these variables is extended as described in the +GL_ARB_shader_viewport_layer_array+ (or the precursor +GL_AMD_vertex_shader_layer+, +GL_AMD_vertex_shader_viewport_index+, and +GL_NV_viewport_array2 extensions+). ifdef::VK_NV_viewport_array2[] [NOTE] .Note ==== The code:ShaderViewportIndexLayerEXT capability is equivalent to the code:ShaderViewportIndexLayerNV capability added by `<>`. ==== endif::VK_NV_viewport_array2[] === 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 None. === New SPIR-V Capabilities * <> === Issues None yet! === Version History * Revision 1, 2017-08-08 (Daniel Koch) - Internal drafts