Class QCOMRenderPassTransform

java.lang.Object
org.lwjgl.vulkan.QCOMRenderPassTransform

public final class QCOMRenderPassTransform extends Object
This extension provides a mechanism for applications to enable driver support for render pass transform.

Mobile devices can be rotated and mobile applications need to render properly when a device is held in a landscape or portrait orientation. When the current orientation differs from the device’s native orientation, a rotation is required so that the “up” direction of the rendered scene matches the current orientation.

If the Display Processing Unit (DPU) does not natively support rotation, the Vulkan presentation engine can handle this rotation in a separate composition pass. Alternatively, the application can render frames “pre-rotated” to avoid this extra pass. The latter is preferred to reduce power consumption and achieve the best performance because it avoids tasking the GPU with extra work to perform the copy/rotate operation.

Unlike OpenGL ES, the burden of pre-rotation in Vulkan falls on the application. To implement pre-rotation, applications render into swapchain images matching the device native aspect ratio of the display and “pre-rotate” the rendering content to match the device’s current orientation. The burden is more than adjusting the Model View Projection (MVP) matrix in the vertex shader to account for rotation and aspect ratio. The coordinate systems of scissors, viewports, derivatives and several shader built-ins may need to be adapted to produce the correct result.

It is difficult for some game engines to manage this burden; many chose to simply accept the performance/power overhead of performing rotation in the presentation engine.

This extension allows applications to achieve the performance benefits of pre-rotated rendering by moving much of the above-mentioned burden to the graphics driver. The following is unchanged with this extension:

The following is changed with this extension:

Name String
VK_QCOM_render_pass_transform
Extension Type
Device extension
Registered Extension Number
283
Revision
4
Contact
Other Extension Metadata
Last Modified Date
2023-12-13
Interactions and External Dependencies
Contributors
  • Jeff Leger, Qualcomm Technologies, Inc.
  • Brandon Light, Qualcomm Technologies, Inc.
  • Matthew Netsch, Qualcomm Technologies, Inc.
  • Arpit Agarwal, Qualcomm Technologies, Inc.