Contact
- 
Matthew Netsch [GitHub]mnetsch 
Other Extension Metadata
- Last Modified Date
- 
2023-01-10 
- IP Status
- 
No known IP claims. 
- Interactions and External Dependencies
- 
- 
This extension interacts with VK_KHR_dynamic_rendering
- 
This extension interacts with VK_QCOM_render_pass_transform
 
- 
- Contributors
- 
- 
Jeff Leger, Qualcomm 
- 
Jonathan Tinkham, Qualcomm 
- 
Jonathan Wicks, Qualcomm 
 
- 
Description
Certain use cases (e.g., side-by-side VR rendering) use multiview and render to distinct regions of the framebuffer for each view. On some implementations, there may be a performance benefit for providing per-view render areas to the implementation. Such per-view render areas can be used by the implementation to reduce the pixels that are affected by attachment load, store, and multisample resolve operations.
The extension enables a multiview render pass instance to define per-view render areas. For each view of a multiview render pass instance, only those pixels in the per-view render area are affected by load, store and resolve operations.
New Enum Constants
- 
VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME
- 
VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION
- 
Extending VkStructureType: - 
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
- 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
 
- 
Issues
1) Do the per-view renderAreas interact with
vkGetRenderAreaGranularity ?
RESOLVED: There is no change.
The granularity returned by vkGetRenderAreaGranularity also applies to
the per-view renderAreas.
2) How does this extension interact with
VK_QCOM_render_pass_transform?
RESOLVED: When VK_QCOM_render_pass_transform is enabled, the
application provides render area in non-rotated coordinates which is rotated
by the implementation to the rotated coordinate system.
When this extension is used in combination with
VK_QCOM_render_pass_transform, then the renderArea provided
in VkRenderingInfo::renderArea,
VkRenderPassBeginInfo::renderArea, or
VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea
is rotated by the implementation.
The per-view render areas are not rotated.
3) How does this extension interact with
VK_QCOM_multiview_per_view_viewports
RESOLVED: There is no direct interaction. The per-view viewports and the per-view renderAreas are orthogonal features.
4) When a per-view renderArea is specified, must multiview rendering
for each view of a multiview render pass be contained within the per-view
renderArea?
RESOLVED: Yes, and the VK_QCOM_multiview_per_view_viewports may
help here since it provides per-view scissors.
5) When per-view render areas are specified, what purpose if any do
VkRenderPassBeginInfo::renderArea and
VkRenderingInfo::renderArea serve?
RESOLVED: The per-view renderArea effectively overrides the
per-renderpass renderArea.
The per-view renderArea defines the regions of the attachments that
are effected by load, store, and multisample resolve operations.
A valid implementation could ignore the per-renderpass renderArea.
However, as an aid to the implementation, the application must set the
per-renderpass renderArea to an area that is at least as large as the
union of all the per-view render areas.
Pixels that are within the per-renderpass renderArea but not within
any per-view render area must not be affected by load, store, or multisample
resolve operations.
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.