| // Copyright (c) 2020 Qualcomm Technologies, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_QCOM_rotated_copy_commands.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2020-09-18 |
| *Interactions and External Dependencies*:: |
| - None |
| *Contributors*:: |
| - Jeff Leger, Qualcomm Technologies, Inc. |
| |
| === Description |
| |
| This extension extends adds an optional rotation transform to copy commands |
| flink:vkCmdBlitImage2KHR, flink:vkCmdCopyImageToBuffer2KHR and |
| flink:vkCmdCopyBufferToImage2KHR. |
| When copying between two resources, where one resource contains rotated |
| content and the other does not, a rotated copy may be desired. |
| This extension may be used in combination with VK_QCOM_render_pass_transform |
| which adds rotated render passes. |
| |
| This extension adds an extension structure to the following commands: |
| vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and |
| vkCmdCopyBufferToImage2KHR |
| |
| |
| === Issues |
| |
| 1) What is an appropriate name for the added extension structure? The style |
| guide says "`Structures which extend other structures through the |
| pname:pNext chain should reflect the name of the base structure they |
| extend.`", but in this case a single extension structure is used to extend |
| three base structures (vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and |
| vkCmdCopyBufferToImage2KHR). |
| Creating three identical structures with unique names seemed undesirable. |
| |
| *RESOLVED*: Deviate from the style guide for extension structure naming. |
| |
| |
| 2) Should this extension add a rotation capability to vkCmdCopyImage2KHR? |
| |
| *RESOLVED*: No. |
| Use of rotated vkCmdBlitImage2KHR can fully address this use-case. |
| |
| 3) Should this extension add a rotation capability to vkCmdResolveImage2KHR? |
| |
| *RESOLVED* No. |
| Use of vkCmdResolveImage2KHR is very slow and extremely bandwidth intensive |
| on Qualcomm's GPU architecture and use of pResolveAttachments in |
| vkRenderPass is the strongly preferred approach. |
| Therefore, we choose not to introduce a rotation capability to |
| vkCmdResolveImage2KHR. |
| |
| include::{generated}/interfaces/VK_QCOM_rotated_copy_commands.txt[] |
| |
| === Version History |
| |
| * Revision 1, 2020-09-19 (Jeff Leger) |