Vulkan-Docs/doc/specs/vulkan/appendices/VK_NV_viewport_array2.txt

106 lines
3.2 KiB
Plaintext
Raw Normal View History

Change log for February 27, 2017 Vulkan 1.0.42 spec update: * Bump API patch number and header version number to 42 for this update (the first anniversary edition). Github Issues: * Changed asciidoctor macros so cross-page links in the standalone reference pages function properly (public issue 462). Internal Issues: * Clarified host visibility discussion for slink:VkMemoryType, flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the <<synchronization-framebuffer-regions,Framebuffer Region Dependencies>> section, removing duplicated information and adding a central definition in the access types section (internal issue 552). * Change description of slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to return an array of values, not structures (internal issue 699). New Extensions: * Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing the experimental status of `KHX` extensions. * Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for release at GDC: ** VK_KHR_descriptor_update_template ** VK_KHR_push_descriptor ** VK_KHX_device_group ** VK_KHX_device_group_creation ** VK_KHX_external_memory ** VK_KHX_external_memory_capabilities ** VK_KHX_external_memory_fd ** VK_KHX_external_memory_win32 ** VK_KHX_external_semaphore ** VK_KHX_external_semaphore_capabilities ** VK_KHX_external_semaphore_fd ** VK_KHX_external_semaphore_win32 ** VK_KHX_multiview ** VK_KHX_win32_keyed_mutex ** VK_EXT_discard_rectangles ** VK_MVK_ios_surface ** VK_MVK_macos_surface ** VK_NVX_multiview_per_view_attributes ** VK_NV_clip_space_w_scaling ** VK_NV_geometry_shader_passthrough ** VK_NV_sample_mask_override_coverage ** VK_NV_viewport_array2 ** VK_NV_viewport_swizzle * Add new GLSL vendor extensions to support new builtin variables: ** GL_EXT_device_group ** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
[[VK_NV_viewport_array2]]
== VK_NV_viewport_array2
*Name String*::
VK_NV_viewport_array2
*Extension Type*::
Device extension
*Registered Extension Number*::
97
*Status*::
Complete
*Last Modified Data*::
2017-02-15
*Revision*::
1
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- This extension requires Vulkan 1.0.
- 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.opengl.org/registry/specs/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
*Contact*::
- Daniel Koch (dkoch 'at' nvidia.com)
*Overview*::
+
--
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.
--
=== New Object Types
None.
=== New Enum Constants
None.
=== New Enums
None.
=== New Structures
None.
=== New Functions
None.
=== New or Modified Built-In Variables
* (modified) <<interfaces-builtin-variables-layer,code:Layer>>
* (modified)
<<interfaces-builtin-variables-viewportindex,code:ViewportIndex>>
* <<interfaces-builtin-variables-viewportmask,code:ViewportMaskNV>>
=== New Variable Decoration
* <<interfaces-builtin-variables-layer,code:ViewportRelativeNV in
code:Layer>>
=== New SPIR-V Capabilities
* <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportIndexLayerNV>>
* <<spirvenv-capabilities-table-viewportarray2,code:ShaderViewportMaskNV>>
=== Issues
None yet!
=== Version History
* Revision 1, 2017-02-15 (Daniel Koch)
- Internal revisions