VK_QCOM_multiview_per_view_viewports
Other Extension Metadata
Last Modified Date
2022-11-22
IP Status
No known IP claims.
Interactions and External Dependencies
- This extension interacts with VK_KHR_dynamic_rendering
- This extension interacts with VK_EXT_extended_dynamic_state
Contributors
- Jeff Leger, Qualcomm
- Jonathan Tinkham, Qualcomm
- Jonathan Wicks, Qualcomm
Description
Certain use cases for multiview have a need for specifying a separate viewport and scissor for each view, without using shader-based viewport indexing as introduced with VK_EXT_shader_viewport_index_layer.
This extension adds a new way to control ViewportIndex with multiview.
When the multiviewPerViewViewports
feature is enabled and if the last
pre-rasterization shader entry point’s interface does not use the
ViewportIndex
built-in decoration, then each view of a multiview render
pass instance will use a viewport and scissor index equal to the
ViewIndex
.
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enum Constants
VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME
VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
Issues
1) Is it possible to enable/disable the
multiviewPerViewViewports
feature for individual render pass instances?
RESOLVED: No, when the multiviewPerViewViewports feature is enabled during vkCreateDevice, then all created render pass instances (including dynamic render passes from VK_KHR_dynamic_rendering) and all created VkPipelines will have the feature enabled. This approach was chosen because it simplifies application code and there is no known use case to enable/disable the feature for individual render passes or pipelines.
2) When this extension is used, is the value of ViewportIndex
implicitly written by the last pre-rasterization shader stage and can the
value of ViewportIndex
be read in the fragment shader?
RESOLVED: No, use of the extension does not add an implicit write to
ViewportIndex
in any shader stage, and additionally, the value of
ViewportIndex
in the fragment shader is undefined.
Version History
- Revision 1, 2022-11-22 (Jeff Leger)