VK_EXT_shader_viewport_index_layer

Other Extension Metadata

Last Modified Date

2017-08-08

Interactions and External Dependencies
Contributors
  • Piers Daniell, NVIDIA
  • Jeff Bolz, NVIDIA
  • Jan-Harald Fredriksen, ARM
  • Daniel Rakos, AMD
  • Slawomir Grajeswki, Intel

Description

This extension adds support for the ShaderViewportIndexLayerEXT capability from the SPV_EXT_shader_viewport_index_layer extension in Vulkan.

This extension allows variables decorated with the Layer and ViewportIndex built-ins to be exported from vertex or tessellation shaders, using the ShaderViewportIndexLayerEXT capability.

When using GLSL source-based shading languages, the gl_ViewportIndex and gl_Layer built-in variables map to the SPIR-V ViewportIndex and Layer built-in decorations, respectively. Behavior 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).

The ShaderViewportIndexLayerEXT capability is equivalent to the ShaderViewportIndexLayerNV capability added by VK_NV_viewport_array2.

Promotion to Vulkan 1.2

All functionality in this extension is included in core Vulkan 1.2.

The single ShaderViewportIndexLayerEXT capability from the SPV_EXT_shader_viewport_index_layer extension is replaced by the ShaderViewportIndex and ShaderLayer capabilities from SPIR-V 1.5 which are enabled by the shaderOutputViewportIndex and shaderOutputLayer features, respectively. Additionally, if Vulkan 1.2 is supported but this extension is not, these capabilities are optional.

Enabling both features is equivalent to enabling the VK_EXT_shader_viewport_index_layer extension.

New Enum Constants

  • VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME
  • VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION

New or Modified Built-In Variables

New SPIR-V Capabilities

Version History

  • Revision 1, 2017-08-08 (Daniel Koch)
    • Internal drafts