/ appendices / VK_EXT_shader_viewport_index_layer.txt
VK_EXT_shader_viewport_index_layer.txt
 1  include::meta/VK_EXT_shader_viewport_index_layer.txt[]
 2  
 3  *Last Modified Date*::
 4      2017-08-08
 5  *Interactions and External Dependencies*::
 6    - This extension requires the
 7      https://www.khronos.org/registry/spir-v/extensions/EXT/SPV_EXT_shader_viewport_index_layer.html[`SPV_EXT_shader_viewport_index_layer`]
 8      SPIR-V extension.
 9    - This extension requires the
10      https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt[`GL_ARB_shader_viewport_layer_array`],
11      https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt[`GL_AMD_vertex_shader_layer`],
12      https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt[`GL_AMD_vertex_shader_viewport_index`],
13      or
14      https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[`GL_NV_viewport_array2`]
15      extensions for GLSL source languages.
16    - This extension requires the pname:multiViewport feature.
17    - This extension interacts with the pname:tessellationShader feature.
18  *Contributors*::
19    - Piers Daniell, NVIDIA
20    - Jeff Bolz, NVIDIA
21    - Jan-Harald Fredriksen, ARM
22    - Daniel Rakos, AMD
23    - Slawomir Grajeswki, Intel
24  
25  This extension adds support for the code:ShaderViewportIndexLayerEXT
26  capability from the `SPV_EXT_shader_viewport_index_layer` extension in
27  Vulkan.
28  
29  This extension allows variables decorated with the code:Layer and
30  code:ViewportIndex built-ins to be exported from vertex or tessellation
31  shaders, using the code:ShaderViewportIndexLayerEXT capability.
32  
33  When using GLSL source-based shading languages, the code:gl_ViewportIndex
34  and code:gl_Layer built-in variables map to the SPIR-V code:ViewportIndex
35  and code:Layer built-in decorations, respectively.
36  Behaviour of these variables is extended as described in the
37  `GL_ARB_shader_viewport_layer_array` (or the precursor
38  `GL_AMD_vertex_shader_layer`, `GL_AMD_vertex_shader_viewport_index`, and
39  `GL_NV_viewport_array2` extensions).
40  
41  ifdef::VK_NV_viewport_array2[]
42  [NOTE]
43  .Note
44  ====
45  The code:ShaderViewportIndexLayerEXT capability is equivalent to the
46  code:ShaderViewportIndexLayerNV capability added by
47  `<<VK_NV_viewport_array2>>`.
48  ====
49  endif::VK_NV_viewport_array2[]
50  
51  === New Object Types
52  
53  None.
54  
55  === New Enum Constants
56  
57  None.
58  
59  === New Enums
60  
61  None.
62  
63  === New Structures
64  
65  None.
66  
67  === New Functions
68  
69  None.
70  
71  === New or Modified Built-In Variables
72  
73    * (modified) <<interfaces-builtin-variables-layer,code:Layer>>
74    * (modified)
75      <<interfaces-builtin-variables-viewportindex,code:ViewportIndex>>
76  
77  === New Variable Decoration
78  
79  None.
80  
81  === New SPIR-V Capabilities
82  
83    * <<spirvenv-capabilities-table-shader-viewport-index-layer,code:ShaderViewportIndexLayerEXT>>
84  
85  === Issues
86  
87  None yet!
88  
89  === Version History
90  
91    * Revision 1, 2017-08-08 (Daniel Koch)
92      - Internal drafts