vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

Description

Name

VK_QCOM_multiview_per_view_render_areas - device extension

VK_QCOM_multiview_per_view_render_areas

Name String
VK_QCOM_multiview_per_view_render_areas
Extension Type
Device extension
Registered Extension Number
511
Revision
1
Ratification Status
Not ratified
Extension and Version Dependencies; Contact

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 Structures

New Enum Constants

Issues

1) Do the per-view renderAreas interact with getRenderAreaGranularity ?

RESOLVED: There is no change. The granularity returned by getRenderAreaGranularity 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 RenderingInfo::renderArea, RenderPassBeginInfo::renderArea, or CommandBufferInheritanceRenderPassTransformInfoQCOM::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 RenderPassBeginInfo::renderArea and RenderingInfo::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.

Version History

  • Revision 1, 2023-01-10 (Jeff Leger)

See Also

MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM

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.

Synopsis

Documentation

data PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source #

VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM - Structure describing multiview per view render areas features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_QCOM_multiview_per_view_render_areas, Bool32, StructureType

Constructors

PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM 

Fields

Instances

Instances details
Storable PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

Show PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

Eq PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

FromCStruct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

ToCStruct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

Zero PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

data MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Source #

VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM - Set the multiview per view render areas for a render pass instance

Description

If perViewRenderAreaCount is not zero, then the elements of pPerViewRenderAreas override the value of RenderPassBeginInfo::renderArea or RenderingInfo::renderArea and define per-view render areas for the individual views of a multiview render pass. The render area for the view with view index i is specified by pPerViewRenderAreas[i].

The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the loadOp, storeOp, and resolveMode values of the render pass instance. When per-view render areas are defined, the value of RenderPassBeginInfo::renderArea or RenderingInfo::renderArea must be set to a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves.

If this structure is present and if perViewRenderAreaCount is not zero, then perViewRenderAreaCount must be at least least one greater than the most significant bit set in any any element of RenderPassMultiviewCreateInfo::pViewMasks. or RenderingInfo::viewMask

If this structure is not present or if perViewRenderAreaCount is zero, RenderPassBeginInfo::renderArea or RenderingInfo::renderArea is used for all views.

Valid Usage

  • The offset.x member of any element of pPerViewRenderAreas must be greater than or equal to 0
  • The offset.y member of any element of pPerViewRenderAreas must be greater than or equal to 0
  • The sum of the offset.x and extent.width members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferWidth
  • The sum of the offset.y and extent.height members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferHeight
  • If this structure is in the pNext chain of RenderPassBeginInfo and if the render pass object included an element in RenderPassMultiviewCreateInfo::pViewMasks that set bit n, then perViewRenderAreaCount must be at least equal to n+1.
  • If this structure is in the pNext chain of RenderingInfo and if RenderingInfo::viewMask set bit n, then perViewRenderAreaCount must be at least equal to n+1.

Valid Usage (Implicit)

  • If perViewRenderAreaCount is not 0, pPerViewRenderAreas must be a valid pointer to an array of perViewRenderAreaCount Rect2D structures

See Also

VK_QCOM_multiview_per_view_render_areas, Rect2D, StructureType

Constructors

MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM 

Fields

Instances

Instances details
Show MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

FromCStruct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

ToCStruct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

Zero MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

type QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_render_areas" Source #