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
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

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)