• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include::meta/VK_NV_viewport_array2.txt[]
2
3*Last Modified Date*::
4    2017-02-15
5*Interactions and External Dependencies*::
6  - This extension requires the
7    https://www.khronos.org/registry/spir-v/extensions/NV/SPV_NV_viewport_array2.html[+SPV_NV_viewport_array2+]
8    SPIR-V extension.
9  - This extension requires the
10    https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[+GL_NV_viewport_array2+]
11    extension for GLSL source languages.
12  - This extension requires the pname:geometryShader and pname:multiViewport
13    features.
14  - This extension interacts with the pname:tessellationShader feature.
15*Contributors*::
16  - Piers Daniell, NVIDIA
17  - Jeff Bolz, NVIDIA
18
19This extension adds support for the following SPIR-V extension in Vulkan:
20
21  * +SPV_NV_viewport_array2+
22
23which allows a single primitive to be broadcast to multiple viewports and/or
24multiple layers.
25A new shader built-in output code:ViewportMaskNV is provided, which allows a
26single primitive to be output to multiple viewports simultaneously.
27Also, a new SPIR-V decoration is added to control whether the effective
28viewport index is added into the variable decorated with the code:Layer
29built-in decoration.
30These capabilities allow a single primitive to be output to multiple layers
31simultaneously.
32
33This extension allows variables decorated with the code:Layer and
34code:ViewportIndex built-ins to be exported from vertex or tessellation
35shaders, using the code:ShaderViewportIndexLayerNV capability.
36
37This extension adds a new code:ViewportMaskNV built-in decoration that is
38available for output variables in vertex, tessellation evaluation, and
39geometry shaders, and a new code:ViewportRelativeNV decoration that can be
40added on variables decorated with code:Layer when using the
41code:ShaderViewportMaskNV capability.
42
43When using GLSL source-based shading languages, the code:gl_ViewportMask[]
44built-in output variable and code:viewport_relative layout qualifier from
45+GL_NV_viewport_array2+ map to the code:ViewportMaskNV and
46code:ViewportRelativeNV decorations, respectively.
47Behaviour is described in the +GL_NV_viewport_array2+ extension
48specificiation.
49
50ifdef::VK_EXT_shader_viewport_index_layer[]
51[NOTE]
52.Note
53====
54The code:ShaderViewportIndexLayerNV capability is equivalent to the
55code:ShaderViewportIndexLayerEXT capability added by
56`<<VK_EXT_shader_viewport_index_layer>>`.
57====
58endif::VK_EXT_shader_viewport_index_layer[]
59
60
61=== New Object Types
62
63None.
64
65=== New Enum Constants
66
67None.
68
69=== New Enums
70
71None.
72
73=== New Structures
74
75None.
76
77=== New Functions
78
79None.
80
81=== New or Modified Built-In Variables
82
83  * (modified) <<interfaces-builtin-variables-layer,code:Layer>>
84  * (modified)
85    <<interfaces-builtin-variables-viewportindex,code:ViewportIndex>>
86  * <<interfaces-builtin-variables-viewportmask,code:ViewportMaskNV>>
87
88=== New Variable Decoration
89
90  * <<interfaces-builtin-variables-layer,code:ViewportRelativeNV in
91    code:Layer>>
92
93=== New SPIR-V Capabilities
94
95  * <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportIndexLayerNV>>
96  * <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportMaskNV>>
97
98=== Issues
99
100None yet!
101
102=== Version History
103
104  * Revision 1, 2017-02-15 (Daniel Koch)
105    - Internal revisions
106