HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas

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

VK_KHR_get_physical_device_properties2

or

Vulkan Version 1.1

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

No cross-references are available

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.

  • 4 types
  • Packagevulkan-3.27
  • Exports6
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_QCOM_multiview_per_view_render_areas.hs

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. If the application wishes to use a Device with any features described by PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Structure Chaining

Extends the structures

See Also

VK_QCOM_multiview_per_view_render_areas, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

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 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 one greater than the most significant bit set in 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

Structure Chaining

Extends the structures

See Also

VK_QCOM_multiview_per_view_render_areas, Rect2D, StructureType

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero