| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_QCOM_rotated_copy_commands
Description
Name
VK_QCOM_rotated_copy_commands - device extension
VK_QCOM_rotated_copy_commands
- Name String
VK_QCOM_rotated_copy_commands
- Extension Type
- Device extension
- Registered Extension Number
- 334
- Revision
- 2
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_copy_commands2 or Vulkan Version 1.3
- Contact
Other Extension Metadata
- Last Modified Date
- 2023-12-13
- Interactions and External Dependencies
- This extension interacts with
VK_KHR_swapchain - This extension interacts with
VK_KHR_surface
- This extension interacts with
- Contributors
- Jeff Leger, Qualcomm Technologies, Inc.
- Matthew Netsch, Qualcomm Technologies, Inc.
Description
This extension extends adds an optional rotation transform to copy
commands cmdBlitImage2KHR,
cmdCopyImageToBuffer2KHR and
cmdCopyBufferToImage2KHR. 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 commands
cmdBlitImage2KHR,
cmdCopyImageToBuffer2KHR, and
cmdCopyBufferToImage2KHR
Issues
1) What is an appropriate name for the added extension structure? The
style guide says “Structures which extend other structures through the
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.
New Structures
New Enum Constants
Version History
- Revision 1, 2020-09-19 (Jeff Leger)
Revision 2, 2023-12-13 (Matthew Netsch)
- Relax dependency on VK_KHR_swapchain
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.
Synopsis
- data CopyCommandTransformInfoQCOM = CopyCommandTransformInfoQCOM {}
- type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 2
- pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: Integral a => a
- type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"
- pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME :: (Eq a, IsString a) => a
- newtype SurfaceTransformFlagBitsKHR where
- SurfaceTransformFlagBitsKHR Flags
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_IDENTITY_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_INHERIT_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_180_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_270_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_90_BIT_KHR :: SurfaceTransformFlagBitsKHR
- type SurfaceTransformFlagsKHR = SurfaceTransformFlagBitsKHR
Documentation
data CopyCommandTransformInfoQCOM Source #
VkCopyCommandTransformInfoQCOM - Structure describing transform parameters of rotated copy command
Description
Including this structure in the pNext chain of
BufferImageCopy2
defines a rotation to be performed when copying between an image and a
buffer. Including this structure in the pNext chain of
BlitImageInfo2
defines a rotation to be performed when blitting between two images. If
this structure is not specified in either case, the implementation
behaves as if it was specified with a transform equal to
SURFACE_TRANSFORM_IDENTITY_BIT_KHR.
Specifying a transform for a copy between an image and a buffer rotates the region accessed in the image around the offset. Specifying a transform for a blit performs a similar transform as described in Image Blits with Scaling and Rotation.
Rotations other than
SURFACE_TRANSFORM_IDENTITY_BIT_KHR
can only be specified for single-plane 2D images with a 1x1x1
texel block extent.
Valid Usage (Implicit)
See Also
VK_QCOM_rotated_copy_commands,
StructureType,
SurfaceTransformFlagBitsKHR
Constructors
| CopyCommandTransformInfoQCOM | |
Fields
| |
Instances
pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: Integral a => a Source #
type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands" Source #
pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
newtype SurfaceTransformFlagBitsKHR Source #
VkSurfaceTransformFlagBitsKHR - Presentation transforms supported on a device
Description
SURFACE_TRANSFORM_IDENTITY_BIT_KHRspecifies that image content is presented without being transformed.
SURFACE_TRANSFORM_ROTATE_90_BIT_KHRspecifies that image content is rotated 90 degrees clockwise.SURFACE_TRANSFORM_ROTATE_180_BIT_KHRspecifies that image content is rotated 180 degrees clockwise.SURFACE_TRANSFORM_ROTATE_270_BIT_KHRspecifies that image content is rotated 270 degrees clockwise.SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHRspecifies that image content is mirrored horizontally.SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHRspecifies that image content is mirrored horizontally, then rotated 90 degrees clockwise.SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHRspecifies that image content is mirrored horizontally, then rotated 180 degrees clockwise.SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHRspecifies that image content is mirrored horizontally, then rotated 270 degrees clockwise.SURFACE_TRANSFORM_INHERIT_BIT_KHRspecifies that the presentation transform is not specified, and is instead determined by platform-specific considerations and mechanisms outside Vulkan.
See Also
VK_KHR_surface,
CommandBufferInheritanceRenderPassTransformInfoQCOM,
CopyCommandTransformInfoQCOM,
DisplaySurfaceCreateInfoKHR,
RenderPassTransformBeginInfoQCOM,
SurfaceCapabilities2EXT,
SurfaceCapabilitiesKHR, SurfaceTransformFlagsKHR,
SwapchainCreateInfoKHR
Constructors
| SurfaceTransformFlagBitsKHR Flags |
Bundled Patterns