| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_copy_commands2
Description
Name
VK_KHR_copy_commands2 - device extension
VK_KHR_copy_commands2
- Name String
VK_KHR_copy_commands2
- Extension Type
- Device extension
- Registered Extension Number
- 338
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Contact
Other Extension Metadata
- Last Modified Date
- 2020-07-06
- Interactions and External Dependencies
- None
- Contributors
- Jeff Leger, Qualcomm
- Tobias Hector, AMD
- Jan-Harald Fredriksen, ARM
- Tom Olson, ARM
Description
This extension provides extensible versions of the Vulkan buffer and image copy commands. The new commands are functionally identical to the core commands, except that their copy parameters are specified using extensible structures that can be used to pass extension-specific information.
The following extensible copy commands are introduced with this
extension: cmdCopyBuffer2KHR, cmdCopyImage2KHR,
cmdCopyBufferToImage2KHR, cmdCopyImageToBuffer2KHR,
cmdBlitImage2KHR, and cmdResolveImage2KHR. Each command contains an
*Info2KHR structure parameter that includes sType/pNext members.
Lower level structures describing each region to be copied are also
extended with sType/pNext members.
New Commands
cmdCopyBuffer2KHRcmdCopyBufferToImage2KHRcmdCopyImage2KHRcmdCopyImageToBuffer2KHRcmdResolveImage2KHR
New Structures
BufferCopy2KHRBufferImageCopy2KHRCopyBufferInfo2KHRCopyBufferToImageInfo2KHRCopyImageInfo2KHRCopyImageToBufferInfo2KHRImageBlit2KHRImageCopy2KHRImageResolve2KHRResolveImageInfo2KHR
New Enum Constants
KHR_COPY_COMMANDS_2_SPEC_VERSIONExtending
StructureType:STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHRSTRUCTURE_TYPE_BUFFER_COPY_2_KHRSTRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHRSTRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHRSTRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHRSTRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHRSTRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHRSTRUCTURE_TYPE_IMAGE_BLIT_2_KHRSTRUCTURE_TYPE_IMAGE_COPY_2_KHRSTRUCTURE_TYPE_IMAGE_RESOLVE_2_KHRSTRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
Version History
Revision 1, 2020-07-06 (Jeff Leger)
- Internal revisions
See Also
BlitImageInfo2KHR, BufferCopy2KHR, BufferImageCopy2KHR,
CopyBufferInfo2KHR, CopyBufferToImageInfo2KHR, CopyImageInfo2KHR,
CopyImageToBufferInfo2KHR, ImageBlit2KHR, ImageCopy2KHR,
ImageResolve2KHR, ResolveImageInfo2KHR, cmdBlitImage2KHR,
cmdCopyBuffer2KHR, cmdCopyBufferToImage2KHR, cmdCopyImage2KHR,
cmdCopyImageToBuffer2KHR, cmdResolveImage2KHR
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
- cmdCopyBuffer2KHR :: forall io. MonadIO io => CommandBuffer -> CopyBufferInfo2KHR -> io ()
- cmdCopyImage2KHR :: forall io. MonadIO io => CommandBuffer -> CopyImageInfo2KHR -> io ()
- cmdBlitImage2KHR :: forall io. MonadIO io => CommandBuffer -> BlitImageInfo2KHR -> io ()
- cmdCopyBufferToImage2KHR :: forall io. MonadIO io => CommandBuffer -> CopyBufferToImageInfo2KHR -> io ()
- cmdCopyImageToBuffer2KHR :: forall io. MonadIO io => CommandBuffer -> CopyImageToBufferInfo2KHR -> io ()
- cmdResolveImage2KHR :: forall io. MonadIO io => CommandBuffer -> ResolveImageInfo2KHR -> io ()
- data BufferCopy2KHR = BufferCopy2KHR {}
- data ImageCopy2KHR = ImageCopy2KHR {}
- data ImageBlit2KHR (es :: [Type]) = ImageBlit2KHR {}
- data BufferImageCopy2KHR (es :: [Type]) = BufferImageCopy2KHR {}
- data ImageResolve2KHR = ImageResolve2KHR {}
- data CopyBufferInfo2KHR = CopyBufferInfo2KHR {}
- data CopyImageInfo2KHR = CopyImageInfo2KHR {}
- data BlitImageInfo2KHR = BlitImageInfo2KHR {}
- data CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR {}
- data CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR {}
- data ResolveImageInfo2KHR = ResolveImageInfo2KHR {}
- type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
- pattern KHR_COPY_COMMANDS_2_SPEC_VERSION :: forall a. Integral a => a
- type KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"
- pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> CopyBufferInfo2KHR |
|
| -> io () |
vkCmdCopyBuffer2KHR - Copy data between buffer regions
Description
This command is functionally identical to
cmdCopyBuffer, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcBuffermust not be a protected buffer
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstBuffermust not be a protected buffer - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstBuffermust not be an unprotected buffer
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pCopyBufferInfomust be a valid pointer to a validCopyBufferInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support transfer, graphics, or compute operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Transfer Graphics Compute |
See Also
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> CopyImageInfo2KHR |
|
| -> io () |
vkCmdCopyImage2KHR - Copy data between images
Description
This command is functionally identical to
cmdCopyImage, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcImagemust not be a protected image
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstImagemust not be a protected image - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstImagemust not be an unprotected image
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pCopyImageInfomust be a valid pointer to a validCopyImageInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support transfer, graphics, or compute operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Transfer Graphics Compute |
See Also
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> BlitImageInfo2KHR |
|
| -> io () |
vkCmdBlitImage2KHR - Copy regions of an image, potentially performing format conversion,
Description
This command is functionally identical to
cmdBlitImage, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcImagemust not be a protected image
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstImagemust not be a protected image - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstImagemust not be an unprotected image
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pBlitImageInfomust be a valid pointer to a validBlitImageInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Graphics |
See Also
cmdCopyBufferToImage2KHR Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> CopyBufferToImageInfo2KHR |
|
| -> io () |
vkCmdCopyBufferToImage2KHR - Copy data from a buffer into an image
Description
This command is functionally identical to
cmdCopyBufferToImage, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcBuffermust not be a protected buffer
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstImagemust not be a protected image - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstImagemust not be an unprotected image
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pCopyBufferToImageInfomust be a valid pointer to a validCopyBufferToImageInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support transfer, graphics, or compute operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Transfer Graphics Compute |
See Also
VK_KHR_copy_commands2,
CommandBuffer, CopyBufferToImageInfo2KHR
cmdCopyImageToBuffer2KHR Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> CopyImageToBufferInfo2KHR |
|
| -> io () |
vkCmdCopyImageToBuffer2KHR - Copy image data into a buffer
Description
This command is functionally identical to
cmdCopyImageToBuffer, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcImagemust not be a protected image
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstBuffermust not be a protected buffer - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstBuffermust not be an unprotected buffer
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pCopyImageToBufferInfomust be a valid pointer to a validCopyImageToBufferInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support transfer, graphics, or compute operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Transfer Graphics Compute |
See Also
VK_KHR_copy_commands2,
CommandBuffer, CopyImageToBufferInfo2KHR
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ResolveImageInfo2KHR |
|
| -> io () |
vkCmdResolveImage2KHR - Resolve regions of an image
Description
This command is functionally identical to
cmdResolveImage, but includes
extensible sub-structures that include sType and pNext parameters,
allowing them to be more easily extended.
Valid Usage
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,srcImagemust not be a protected image
- If
commandBufferis an unprotected command buffer and protectedNoFault is not supported,dstImagemust not be a protected image - If
commandBufferis a protected command buffer and protectedNoFault is not supported,dstImagemust not be an unprotected image
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pResolveImageInfomust be a valid pointer to a validResolveImageInfo2KHRstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Supported Queue Types |
|---|---|---|
| Primary Secondary | Outside | Graphics |
See Also
data BufferCopy2KHR Source #
VkBufferCopy2KHR - Structure specifying a buffer copy operation
Valid Usage
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_BUFFER_COPY_2_KHR
See Also
VK_KHR_copy_commands2,
CopyBufferInfo2KHR, DeviceSize,
StructureType
Constructors
| BufferCopy2KHR | |
Fields
| |
Instances
data ImageCopy2KHR Source #
VkImageCopy2KHR - Structure specifying an image copy operation
Valid Usage
- The number of slices of the
extent(for 3D) or layers of thesrcSubresource(for non-3D) must match the number of slices of theextent(for 3D) or layers of thedstSubresource(for non-3D)
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_COPY_2_KHR
-
pNextmust beNULL -
srcSubresourcemust be a validImageSubresourceLayersstructure -
dstSubresourcemust be a validImageSubresourceLayersstructure
See Also
VK_KHR_copy_commands2,
CopyImageInfo2KHR, Extent3D,
ImageSubresourceLayers,
Offset3D,
StructureType
Constructors
| ImageCopy2KHR | |
Fields
| |
Instances
data ImageBlit2KHR (es :: [Type]) Source #
VkImageBlit2KHR - Structure specifying an image blit operation
Description
For each element of the pRegions array, a blit operation is performed
for the specified source and destination regions.
Valid Usage
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_BLIT_2_KHR
-
pNextmust beNULLor a pointer to a valid instance ofCopyCommandTransformInfoQCOM - The
sTypevalue of each struct in thepNextchain must be unique -
srcSubresourcemust be a validImageSubresourceLayersstructure -
dstSubresourcemust be a validImageSubresourceLayersstructure
See Also
VK_KHR_copy_commands2,
BlitImageInfo2KHR,
ImageSubresourceLayers,
Offset3D,
StructureType
Constructors
| ImageBlit2KHR | |
Fields
| |
Instances
data BufferImageCopy2KHR (es :: [Type]) Source #
VkBufferImageCopy2KHR - Structure specifying a buffer image copy operation
Description
This structure is functionally identical to
BufferImageCopy, but adds sType
and pNext parameters, allowing it to be more easily extended.
Valid Usage
-
bufferImageHeightmust be0, or greater than or equal to theheightmember ofimageExtent - The
aspectMaskmember ofimageSubresourcemust only have a single bit set
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
-
pNextmust beNULLor a pointer to a valid instance ofCopyCommandTransformInfoQCOM - The
sTypevalue of each struct in thepNextchain must be unique -
imageSubresourcemust be a validImageSubresourceLayersstructure
See Also
VK_KHR_copy_commands2,
CopyBufferToImageInfo2KHR, CopyImageToBufferInfo2KHR,
DeviceSize,
Extent3D,
ImageSubresourceLayers,
Offset3D,
StructureType
Constructors
| BufferImageCopy2KHR | |
Fields
| |
Instances
data ImageResolve2KHR Source #
VkImageResolve2KHR - Structure specifying an image resolve operation
Valid Usage
- The
aspectMaskmember ofsrcSubresourceanddstSubresourcemust only containIMAGE_ASPECT_COLOR_BIT
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
-
pNextmust beNULL -
srcSubresourcemust be a validImageSubresourceLayersstructure -
dstSubresourcemust be a validImageSubresourceLayersstructure
See Also
VK_KHR_copy_commands2,
Extent3D,
ImageSubresourceLayers,
Offset3D, ResolveImageInfo2KHR,
StructureType
Constructors
| ImageResolve2KHR | |
Fields
| |
Instances
data CopyBufferInfo2KHR Source #
VkCopyBufferInfo2KHR - Structure specifying parameters of a buffer copy command
Description
Members defined by this structure with the same name as parameters in
cmdCopyBuffer have the identical
effect to those parameters; the child structure BufferCopy2KHR is a
variant of BufferCopy which
includes sType and pNext parameters, allowing it to be extended.
Valid Usage
- The
dstOffsetmember of each element ofpRegionsmust be less than the size ofdstBuffer - The
sizemember of each element ofpRegionsmust be less than or equal to the size ofsrcBufferminussrcOffset - The
sizemember of each element ofpRegionsmust be less than or equal to the size ofdstBufferminusdstOffset - The union of the source
regions, and the union of the destination regions, specified by the
elements of
pRegions, must not overlap in memory -
srcBuffermust have been created withBUFFER_USAGE_TRANSFER_SRC_BITusage flag - If
srcBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag - If
dstBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
-
pNextmust beNULL -
srcBuffermust be a validBufferhandle -
dstBuffermust be a validBufferhandle -
pRegionsmust be a valid pointer to an array ofregionCountvalidBufferCopy2KHRstructures -
regionCountmust be greater than0 - Both of
dstBuffer, andsrcBuffermust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Buffer, BufferCopy2KHR,
StructureType, cmdCopyBuffer2KHR
Constructors
| CopyBufferInfo2KHR | |
Fields
| |
Instances
| Show CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods showsPrec :: Int -> CopyBufferInfo2KHR -> ShowS # show :: CopyBufferInfo2KHR -> String # showList :: [CopyBufferInfo2KHR] -> ShowS # | |
| FromCStruct CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods peekCStruct :: Ptr CopyBufferInfo2KHR -> IO CopyBufferInfo2KHR Source # | |
| ToCStruct CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods withCStruct :: CopyBufferInfo2KHR -> (Ptr CopyBufferInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr CopyBufferInfo2KHR -> CopyBufferInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr CopyBufferInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr CopyBufferInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods | |
data CopyImageInfo2KHR Source #
VkCopyImageInfo2KHR - Structure specifying parameters of an image copy command
Valid Usage
- The union of all source
regions, and the union of all destination regions, specified by the
elements of
pRegions, must not overlap in memory
- The
format features
of
srcImagemust containFORMAT_FEATURE_TRANSFER_SRC_BIT -
srcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flag - If
srcImageis non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a singleDeviceMemoryobject -
srcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aDevice -
srcImageLayoutmust beIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,IMAGE_LAYOUT_GENERAL, orIMAGE_LAYOUT_SHARED_PRESENT_KHR - The
format features
of
dstImagemust containFORMAT_FEATURE_TRANSFER_DST_BIT -
dstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flag - If
dstImageis non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a singleDeviceMemoryobject -
dstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aDevice -
dstImageLayoutmust beIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,IMAGE_LAYOUT_GENERAL, orIMAGE_LAYOUT_SHARED_PRESENT_KHR - If the
Formatof each ofsrcImageanddstImageis not a multi-planar format, theFormatof each ofsrcImageanddstImagemust be compatible, as defined above - In a copy to or from a plane
of a
multi-planar image,
the
Formatof the image and plane must be compatible according to the description of compatible planes for the plane being copied - The sample count of
srcImageanddstImagemust match - The
srcSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhendstImagewas created - The
srcSubresource.baseArrayLayer+srcSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.baseArrayLayer+dstSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhendstImagewas created - The
srcOffsetandextentmembers of each element ofpRegionsmust respect the image transfer granularity requirements ofcommandBuffer’s command pool’s queue family, as described inQueueFamilyProperties - The
dstOffsetandextentmembers of each element ofpRegionsmust respect the image transfer granularity requirements ofcommandBuffer’s command pool’s queue family, as described inQueueFamilyProperties -
dstImageandsrcImagemust not have been created withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT - If neither
srcImagenordstImagehas a multi-planar image format then for each element ofpRegions,srcSubresource.aspectMaskanddstSubresource.aspectMaskmust match - If
srcImagehas aFormatwith two planes then for each element ofpRegions,srcSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BITorIMAGE_ASPECT_PLANE_1_BIT - If
srcImagehas aFormatwith three planes then for each element ofpRegions,srcSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, orIMAGE_ASPECT_PLANE_2_BIT - If
dstImagehas aFormatwith two planes then for each element ofpRegions,dstSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BITorIMAGE_ASPECT_PLANE_1_BIT - If
dstImagehas aFormatwith three planes then for each element ofpRegions,dstSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, orIMAGE_ASPECT_PLANE_2_BIT - If
srcImagehas a multi-planar image format and thedstImagedoes not have a multi-planar image format, then for each element ofpRegions,dstSubresource.aspectMaskmust beIMAGE_ASPECT_COLOR_BIT - If
dstImagehas a multi-planar image format and thesrcImagedoes not have a multi-planar image format, then for each element ofpRegions,srcSubresource.aspectMaskmust beIMAGE_ASPECT_COLOR_BIT - If
srcImageis of typeIMAGE_TYPE_3D, then for each element ofpRegions,srcSubresource.baseArrayLayermust be0andsrcSubresource.layerCountmust be1 - If
dstImageis of typeIMAGE_TYPE_3D, then for each element ofpRegions,dstSubresource.baseArrayLayermust be0anddstSubresource.layerCountmust be1 - For each element of
pRegions,srcSubresource.aspectMaskmust specify aspects present insrcImage - For each element of
pRegions,dstSubresource.aspectMaskmust specify aspects present indstImage - For each element of
pRegions,srcOffset.xand (extent.width+srcOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifiedsrcSubresourceofsrcImage - For each element of
pRegions,srcOffset.yand (extent.height+srcOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,srcOffset.ymust be0andextent.heightmust be1 - For each element of
pRegions,srcOffset.zand (extent.depth+srcOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,srcOffset.zmust be0andextent.depthmust be1 - If
dstImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,dstOffset.zmust be0andextent.depthmust be1 - If
srcImageis of typeIMAGE_TYPE_2D, then for each element ofpRegions,srcOffset.zmust be0 - If
dstImageis of typeIMAGE_TYPE_2D, then for each element ofpRegions,dstOffset.zmust be0 - If
srcImageanddstImageare both of typeIMAGE_TYPE_2D, then for each element ofpRegions,extent.depthmust be1 - If
srcImageis of typeIMAGE_TYPE_2D, anddstImageis of typeIMAGE_TYPE_3D, then for each element ofpRegions,extent.depthmust equalsrcSubresource.layerCount - If
dstImageis of typeIMAGE_TYPE_2D, andsrcImageis of typeIMAGE_TYPE_3D, then for each element ofpRegions,extent.depthmust equaldstSubresource.layerCount - For each element of
pRegions,dstOffset.xand (extent.width+dstOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifieddstSubresourceofdstImage - For each element of
pRegions,dstOffset.yand (extent.height+dstOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifieddstSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,dstOffset.ymust be0andextent.heightmust be1 - For each element of
pRegions,dstOffset.zand (extent.depth+dstOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifieddstSubresourceofdstImage - If
srcImageis a blocked image, then for each element ofpRegions, all members ofsrcOffsetmust be a multiple of the corresponding dimensions of the compressed texel block - If
srcImageis a blocked image, then for each element ofpRegions,extent.widthmust be a multiple of the compressed texel block width or (extent.width+srcOffset.x) must equal the width of the specifiedsrcSubresourceofsrcImage - If
srcImageis a blocked image, then for each element ofpRegions,extent.heightmust be a multiple of the compressed texel block height or (extent.height+srcOffset.y) must equal the height of the specifiedsrcSubresourceofsrcImage - If
srcImageis a blocked image, then for each element ofpRegions,extent.depthmust be a multiple of the compressed texel block depth or (extent.depth+srcOffset.z) must equal the depth of the specifiedsrcSubresourceofsrcImage - If
dstImageis a blocked image, then for each element ofpRegions, all members ofdstOffsetmust be a multiple of the corresponding dimensions of the compressed texel block - If
dstImageis a blocked image, then for each element ofpRegions,extent.widthmust be a multiple of the compressed texel block width or (extent.width+dstOffset.x) must equal the width of the specifieddstSubresourceofdstImage - If
dstImageis a blocked image, then for each element ofpRegions,extent.heightmust be a multiple of the compressed texel block height or (extent.height+dstOffset.y) must equal the height of the specifieddstSubresourceofdstImage - If
dstImageis a blocked image, then for each element ofpRegions,extent.depthmust be a multiple of the compressed texel block depth or (extent.depth+dstOffset.z) must equal the depth of the specifieddstSubresourceofdstImage
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
-
pNextmust beNULL -
srcImagemust be a validImagehandle -
srcImageLayoutmust be a validImageLayoutvalue -
dstImagemust be a validImagehandle -
dstImageLayoutmust be a validImageLayoutvalue -
pRegionsmust be a valid pointer to an array ofregionCountvalidImageCopy2KHRstructures -
regionCountmust be greater than0 - Both of
dstImage, andsrcImagemust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Image, ImageCopy2KHR,
ImageLayout,
StructureType, cmdCopyImage2KHR
Constructors
| CopyImageInfo2KHR | |
Fields
| |
Instances
| Show CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods showsPrec :: Int -> CopyImageInfo2KHR -> ShowS # show :: CopyImageInfo2KHR -> String # showList :: [CopyImageInfo2KHR] -> ShowS # | |
| FromCStruct CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods peekCStruct :: Ptr CopyImageInfo2KHR -> IO CopyImageInfo2KHR Source # | |
| ToCStruct CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods withCStruct :: CopyImageInfo2KHR -> (Ptr CopyImageInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr CopyImageInfo2KHR -> CopyImageInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr CopyImageInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr CopyImageInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods | |
data BlitImageInfo2KHR Source #
VkBlitImageInfo2KHR - Structure specifying parameters of blit image command
Valid Usage
- The source region
specified by each element of
pRegionsmust be a region that is contained withinsrcImage
- The destination region
specified by each element of
pRegionsmust be a region that is contained withindstImage - The union of all
destination regions, specified by the elements of
pRegions, must not overlap in memory with any texel that may be sampled during the blit operation - The
format features
of
srcImagemust containFORMAT_FEATURE_BLIT_SRC_BIT -
srcImagemust not use a format that requires a sampler Y’CBCR conversion -
srcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flag - If
srcImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
srcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aDevice -
srcImageLayoutmust beIMAGE_LAYOUT_SHARED_PRESENT_KHR,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERAL - The
format features
of
dstImagemust containFORMAT_FEATURE_BLIT_DST_BIT -
dstImagemust not use a format that requires a sampler Y’CBCR conversion -
dstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flag - If
dstImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aDevice -
dstImageLayoutmust beIMAGE_LAYOUT_SHARED_PRESENT_KHR,IMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL - If either of
srcImageordstImagewas created with a signed integerFormat, the other must also have been created with a signed integerFormat - If either of
srcImageordstImagewas created with an unsigned integerFormat, the other must also have been created with an unsigned integerFormat - If either of
srcImageordstImagewas created with a depth/stencil format, the other must have exactly the same format - If
srcImagewas created with a depth/stencil format,filtermust beFILTER_NEAREST -
srcImagemust have been created with asamplesvalue ofSAMPLE_COUNT_1_BIT -
dstImagemust have been created with asamplesvalue ofSAMPLE_COUNT_1_BIT - If
filterisFILTER_LINEAR, then the format features ofsrcImagemust containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - If
filterisFILTER_CUBIC_EXT, then the format features ofsrcImagemust containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT - If
filterisFILTER_CUBIC_EXT,srcImagemust be of typeIMAGE_TYPE_2D - The
srcSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhendstImagewas created - The
srcSubresource.baseArrayLayer+srcSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.baseArrayLayer+dstSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhendstImagewas created -
dstImageandsrcImagemust not have been created withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT - If either
srcImageordstImageis of typeIMAGE_TYPE_3D, then for each element ofpRegions,srcSubresource.baseArrayLayeranddstSubresource.baseArrayLayermust each be0, andsrcSubresource.layerCountanddstSubresource.layerCountmust each be1 - For each element of
pRegions,srcSubresource.aspectMaskmust specify aspects present insrcImage - For each element of
pRegions,dstSubresource.aspectMaskmust specify aspects present indstImage - For each element of
pRegions,srcOffsets[0].x andsrcOffsets[1].x must both be greater than or equal to0and less than or equal to the width of the specifiedsrcSubresourceofsrcImage - For each element of
pRegions,srcOffsets[0].y andsrcOffsets[1].y must both be greater than or equal to0and less than or equal to the height of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,srcOffsets[0].y must be0andsrcOffsets[1].y must be1 - For each element of
pRegions,srcOffsets[0].z andsrcOffsets[1].z must both be greater than or equal to0and less than or equal to the depth of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,srcOffsets[0].z must be0andsrcOffsets[1].z must be1 - For each element of
pRegions,dstOffsets[0].x anddstOffsets[1].x must both be greater than or equal to0and less than or equal to the width of the specifieddstSubresourceofdstImage - For each element of
pRegions,dstOffsets[0].y anddstOffsets[1].y must both be greater than or equal to0and less than or equal to the height of the specifieddstSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,dstOffsets[0].y must be0anddstOffsets[1].y must be1 - For each element of
pRegions,dstOffsets[0].z anddstOffsets[1].z must both be greater than or equal to0and less than or equal to the depth of the specifieddstSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,dstOffsets[0].z must be0anddstOffsets[1].z must be1 - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImageanddstImagemust not be block-compressed images - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImagemust be of typeIMAGE_TYPE_2D - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImagemust not have a multi-planar format
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
-
pNextmust beNULL -
srcImagemust be a validImagehandle -
srcImageLayoutmust be a validImageLayoutvalue -
dstImagemust be a validImagehandle -
dstImageLayoutmust be a validImageLayoutvalue -
pRegionsmust be a valid pointer to an array ofregionCountvalidImageBlit2KHRstructures -
filtermust be a validFiltervalue -
regionCountmust be greater than0 - Both of
dstImage, andsrcImagemust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Filter, Image,
ImageBlit2KHR, ImageLayout,
StructureType, cmdBlitImage2KHR
Constructors
| BlitImageInfo2KHR | |
Fields
| |
Instances
| Show BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods showsPrec :: Int -> BlitImageInfo2KHR -> ShowS # show :: BlitImageInfo2KHR -> String # showList :: [BlitImageInfo2KHR] -> ShowS # | |
| FromCStruct BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods peekCStruct :: Ptr BlitImageInfo2KHR -> IO BlitImageInfo2KHR Source # | |
| ToCStruct BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods withCStruct :: BlitImageInfo2KHR -> (Ptr BlitImageInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr BlitImageInfo2KHR -> BlitImageInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr BlitImageInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr BlitImageInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods | |
data CopyBufferToImageInfo2KHR Source #
VkCopyBufferToImageInfo2KHR - Structure specifying parameters of a buffer to image copy command
Valid Usage
- If the image
region specified by each element of
pRegionsdoes not containCopyCommandTransformInfoQCOMin itspNextchain, it must be a region that is contained within the specifiedimageSubresourceofdstImage
- If the image
region specified by each element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, the rotated destination region as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing must be contained withindstImage - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thendstImagemust not be a blocked image - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thendstImagemust be of typeIMAGE_TYPE_2D - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thendstImagemust not have a multi-planar format -
srcBuffermust be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element ofpRegions - The union of all
source regions, and the union of all destination regions, specified
by the elements of
pRegions, must not overlap in memory -
srcBuffermust have been created withBUFFER_USAGE_TRANSFER_SRC_BITusage flag - The
format features
of
dstImagemust containFORMAT_FEATURE_TRANSFER_DST_BIT - If
srcBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstImagemust have been created withIMAGE_USAGE_TRANSFER_DST_BITusage flag - If
dstImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstImagemust have a sample count equal toSAMPLE_COUNT_1_BIT -
dstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aDevice -
dstImageLayoutmust beIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,IMAGE_LAYOUT_GENERAL, orIMAGE_LAYOUT_SHARED_PRESENT_KHR - The
imageSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhendstImagewas created - The
imageSubresource.baseArrayLayer+imageSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhendstImagewas created - The
imageOffsetandimageExtentmembers of each element ofpRegionsmust respect the image transfer granularity requirements ofcommandBuffer’s command pool’s queue family, as described inQueueFamilyProperties -
dstImagemust not have been created withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT - If the queue
family used to create the
CommandPoolwhichcommandBufferwas allocated from does not supportQUEUE_GRAPHICS_BIT, for each element ofpRegions, theaspectMaskmember ofimageSubresourcemust not beIMAGE_ASPECT_DEPTH_BITorIMAGE_ASPECT_STENCIL_BIT - For each element
of
pRegionsnot containingCopyCommandTransformInfoQCOMin itspNextchain,imageOffset.xand (imageExtent.width+imageOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifiedimageSubresourceofdstImage - For each element
of
pRegionsnot containingCopyCommandTransformInfoQCOMin itspNextchain,imageOffset.yand (imageExtent.height+imageOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifiedimageSubresourceofdstImage - If
dstImagedoes not have either a depth/stencil or a multi-planar format, then for each element ofpRegions,bufferOffsetmust be a multiple of the format’s texel block size - If
dstImagehas a multi-planar format, then for each element ofpRegions,bufferOffsetmust be a multiple of the element size of the compatible format for the format and theaspectMaskof theimageSubresourceas defined in ??? - If
dstImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,imageOffset.ymust be0andimageExtent.heightmust be1 - For each
element of
pRegions,imageOffset.zand (imageExtent.depth+imageOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifiedimageSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,imageOffset.zmust be0andimageExtent.depthmust be1 - If
dstImageis a blocked image, for each element ofpRegions,bufferRowLengthmust be a multiple of the compressed texel block width - If
dstImageis a blocked image, for each element ofpRegions,bufferImageHeightmust be a multiple of the compressed texel block height - If
dstImageis a blocked image, for each element ofpRegions, all members ofimageOffsetmust be a multiple of the corresponding dimensions of the compressed texel block - If
dstImageis a blocked image, for each element ofpRegions,bufferOffsetmust be a multiple of the compressed texel block size in bytes - If
dstImageis a blocked image, for each element ofpRegions,imageExtent.widthmust be a multiple of the compressed texel block width or (imageExtent.width+imageOffset.x) must equal the width of the specifiedimageSubresourceofdstImage - If
dstImageis a blocked image, for each element ofpRegions,imageExtent.heightmust be a multiple of the compressed texel block height or (imageExtent.height+imageOffset.y) must equal the height of the specifiedimageSubresourceofdstImage - If
dstImageis a blocked image, for each element ofpRegions,imageExtent.depthmust be a multiple of the compressed texel block depth or (imageExtent.depth+imageOffset.z) must equal the depth of the specifiedimageSubresourceofdstImage - For each element
of
pRegions,imageSubresource.aspectMaskmust specify aspects present indstImage - If
dstImagehas a multi-planar format, then for each element ofpRegions,imageSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, orIMAGE_ASPECT_PLANE_2_BIT(withIMAGE_ASPECT_PLANE_2_BITvalid only for image formats with three planes) - If
dstImageis of typeIMAGE_TYPE_3D, for each element ofpRegions,imageSubresource.baseArrayLayermust be0andimageSubresource.layerCountmust be1 - If
dstImageis not a blocked image, for each element ofpRegions,bufferRowLengthmultiplied by the texel block size ofdstImagemust be less than or equal to 231-1 - If
dstImageis a blocked image, for each element ofpRegions,bufferRowLengthdivided by the compressed texel block width and then multiplied by the texel block size ofdstImagemust be less than or equal to 231-1 - If the queue
family used to create the
CommandPoolwhichcommandBufferwas allocated from does not supportQUEUE_GRAPHICS_BITorQUEUE_COMPUTE_BIT, thebufferOffsetmember of any element ofpRegionsmust be a multiple of4 - If
dstImagehas a depth/stencil format, thebufferOffsetmember of any element ofpRegionsmust be a multiple of4
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
-
pNextmust beNULL -
srcBuffermust be a validBufferhandle -
dstImagemust be a validImagehandle -
dstImageLayoutmust be a validImageLayoutvalue -
pRegionsmust be a valid pointer to an array ofregionCountvalidBufferImageCopy2KHRstructures -
regionCountmust be greater than0 - Both of
dstImage, andsrcBuffermust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Buffer, BufferImageCopy2KHR,
Image,
ImageLayout,
StructureType,
cmdCopyBufferToImage2KHR
Constructors
| CopyBufferToImageInfo2KHR | |
Fields
| |
Instances
data CopyImageToBufferInfo2KHR Source #
VkCopyImageToBufferInfo2KHR - Structure specifying parameters of an image to buffer copy command
Valid Usage
- If the image
region specified by each element of
pRegionsdoes not containCopyCommandTransformInfoQCOMin itspNextchain, it must be contained within the specifiedimageSubresourceofsrcImage
- If the image
region specified by each element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, the rotated source region as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing must be contained withinsrcImage - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImagemust not be a blocked image - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImagemust be of typeIMAGE_TYPE_2D - If any element of
pRegionscontainsCopyCommandTransformInfoQCOMin itspNextchain, thensrcImagemust not have a multi-planar format -
dstBuffermust be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element ofpRegions - The union of all
source regions, and the union of all destination regions, specified
by the elements of
pRegions, must not overlap in memory -
srcImagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BITusage flag - The
format features
of
srcImagemust containFORMAT_FEATURE_TRANSFER_SRC_BIT - If
srcImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstBuffermust have been created withBUFFER_USAGE_TRANSFER_DST_BITusage flag - If
dstBufferis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
srcImagemust have a sample count equal toSAMPLE_COUNT_1_BIT -
srcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aDevice -
srcImageLayoutmust beIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,IMAGE_LAYOUT_GENERAL, orIMAGE_LAYOUT_SHARED_PRESENT_KHR - The
imageSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhensrcImagewas created - The
imageSubresource.baseArrayLayer+imageSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhensrcImagewas created - The
imageOffsetandimageExtentmembers of each element ofpRegionsmust respect the image transfer granularity requirements ofcommandBuffer’s command pool’s queue family, as described inQueueFamilyProperties -
srcImagemust not have been created withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT - For each
element of
pRegionsnot containingCopyCommandTransformInfoQCOMin itspNextchain,imageOffset.xand (imageExtent.width+imageOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifiedimageSubresourceofsrcImage - For each
element of
pRegionsnot containingCopyCommandTransformInfoQCOMin itspNextchain,imageOffset.yand (imageExtent.height+imageOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifiedimageSubresourceofsrcImage - If
{imageparam} does not have either a depth/stencil or a
multi-planar format,
then for each element of
pRegions,bufferOffsetmust be a multiple of the format’s texel block size - If
{imageparam} has a
multi-planar format,
then for each element of
pRegions,bufferOffsetmust be a multiple of the element size of the compatible format for the format and theaspectMaskof theimageSubresourceas defined in ??? - If {imageparam} is
of type
IMAGE_TYPE_1D, then for each element ofpRegions,imageOffset.ymust be0andimageExtent.heightmust be1 - For each
element of
pRegions,imageOffset.zand (imageExtent.depth+imageOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifiedimageSubresourceof {imageparam} - If {imageparam} is
of type
IMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,imageOffset.zmust be0andimageExtent.depthmust be1 - If
{imageparam} is a
blocked image,
for each element of
pRegions,bufferRowLengthmust be a multiple of the compressed texel block width - If
{imageparam} is a
blocked image,
for each element of
pRegions,bufferImageHeightmust be a multiple of the compressed texel block height - If {imageparam}
is a
blocked image,
for each element of
pRegions, all members ofimageOffsetmust be a multiple of the corresponding dimensions of the compressed texel block - If
{imageparam} is a
blocked image,
for each element of
pRegions,bufferOffsetmust be a multiple of the compressed texel block size in bytes - If {imageparam}
is a
blocked image,
for each element of
pRegions,imageExtent.widthmust be a multiple of the compressed texel block width or (imageExtent.width+imageOffset.x) must equal the width of the specifiedimageSubresourceof {imageparam} - If {imageparam}
is a
blocked image,
for each element of
pRegions,imageExtent.heightmust be a multiple of the compressed texel block height or (imageExtent.height+imageOffset.y) must equal the height of the specifiedimageSubresourceof {imageparam} - If {imageparam}
is a
blocked image,
for each element of
pRegions,imageExtent.depthmust be a multiple of the compressed texel block depth or (imageExtent.depth+imageOffset.z) must equal the depth of the specifiedimageSubresourceof {imageparam} - For each element
of
pRegions,imageSubresource.aspectMaskmust specify aspects present in {imageparam} - If {imageparam}
has a
multi-planar format,
then for each element of
pRegions,imageSubresource.aspectMaskmust beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, orIMAGE_ASPECT_PLANE_2_BIT(withIMAGE_ASPECT_PLANE_2_BITvalid only for image formats with three planes) - If
{imageparam} is of type
IMAGE_TYPE_3D, for each element ofpRegions,imageSubresource.baseArrayLayermust be0andimageSubresource.layerCountmust be1 - If {imageparam} is
not a
blocked image,
for each element of
pRegions,bufferRowLengthmultiplied by the texel block size of {imageparam} must be less than or equal to 231-1 - If {imageparam} is
a
blocked image,
for each element of
pRegions,bufferRowLengthdivided by the compressed texel block width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1 - If the queue
family used to create the
CommandPoolwhichcommandBufferwas allocated from does not supportQUEUE_GRAPHICS_BITorQUEUE_COMPUTE_BIT, thebufferOffsetmember of any element ofpRegionsmust be a multiple of4 - If {imageparam}
has a depth/stencil format, the
bufferOffsetmember of any element ofpRegionsmust be a multiple of4
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
-
pNextmust beNULL -
srcImagemust be a validImagehandle -
srcImageLayoutmust be a validImageLayoutvalue -
dstBuffermust be a validBufferhandle -
pRegionsmust be a valid pointer to an array ofregionCountvalidBufferImageCopy2KHRstructures -
regionCountmust be greater than0 - Both of
dstBuffer, andsrcImagemust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Buffer, BufferImageCopy2KHR,
Image,
ImageLayout,
StructureType,
cmdCopyImageToBuffer2KHR
Constructors
| CopyImageToBufferInfo2KHR | |
Fields
| |
Instances
data ResolveImageInfo2KHR Source #
VkResolveImageInfo2KHR - Structure specifying parameters of resolve image command
Valid Usage
- The union of all source
regions, and the union of all destination regions, specified by the
elements of
pRegions, must not overlap in memory
- If
srcImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
srcImagemust have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BIT - If
dstImageis non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject -
dstImagemust have a sample count equal toSAMPLE_COUNT_1_BIT -
srcImageLayoutmust specify the layout of the image subresources ofsrcImagespecified inpRegionsat the time this command is executed on aDevice -
srcImageLayoutmust beIMAGE_LAYOUT_SHARED_PRESENT_KHR,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALorIMAGE_LAYOUT_GENERAL -
dstImageLayoutmust specify the layout of the image subresources ofdstImagespecified inpRegionsat the time this command is executed on aDevice -
dstImageLayoutmust beIMAGE_LAYOUT_SHARED_PRESENT_KHR,IMAGE_LAYOUT_TRANSFER_DST_OPTIMALorIMAGE_LAYOUT_GENERAL - The
format features
of
dstImagemust containFORMAT_FEATURE_COLOR_ATTACHMENT_BIT -
srcImageanddstImagemust have been created with the same image format - The
srcSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.mipLevelmember of each element ofpRegionsmust be less than themipLevelsspecified inImageCreateInfowhendstImagewas created - The
srcSubresource.baseArrayLayer+srcSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhensrcImagewas created - The
dstSubresource.baseArrayLayer+dstSubresource.layerCountof each element ofpRegionsmust be less than or equal to thearrayLayersspecified inImageCreateInfowhendstImagewas created -
dstImageandsrcImagemust not have been created withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT - If either
srcImageordstImageare of typeIMAGE_TYPE_3D, then for each element ofpRegions,srcSubresource.baseArrayLayermust be0andsrcSubresource.layerCountmust be1 - If either
srcImageordstImageare of typeIMAGE_TYPE_3D, then for each element ofpRegions,dstSubresource.baseArrayLayermust be0anddstSubresource.layerCountmust be1 - For each element of
pRegions,srcOffset.xand (extent.width+srcOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifiedsrcSubresourceofsrcImage - For each element of
pRegions,srcOffset.yand (extent.height+srcOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,srcOffset.ymust be0andextent.heightmust be1 - For each element of
pRegions,srcOffset.zand (extent.depth+srcOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifiedsrcSubresourceofsrcImage - If
srcImageis of typeIMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,srcOffset.zmust be0andextent.depthmust be1 - For each element of
pRegions,dstOffset.xand (extent.width+dstOffset.x) must both be greater than or equal to0and less than or equal to the width of the specifieddstSubresourceofdstImage - For each element of
pRegions,dstOffset.yand (extent.height+dstOffset.y) must both be greater than or equal to0and less than or equal to the height of the specifieddstSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1D, then for each element ofpRegions,dstOffset.ymust be0andextent.heightmust be1 - For each element of
pRegions,dstOffset.zand (extent.depth+dstOffset.z) must both be greater than or equal to0and less than or equal to the depth of the specifieddstSubresourceofdstImage - If
dstImageis of typeIMAGE_TYPE_1DorIMAGE_TYPE_2D, then for each element ofpRegions,dstOffset.zmust be0andextent.depthmust be1
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
-
pNextmust beNULL -
srcImagemust be a validImagehandle -
srcImageLayoutmust be a validImageLayoutvalue -
dstImagemust be a validImagehandle -
dstImageLayoutmust be a validImageLayoutvalue -
pRegionsmust be a valid pointer to an array ofregionCountvalidImageResolve2KHRstructures -
regionCountmust be greater than0 - Both of
dstImage, andsrcImagemust have been created, allocated, or retrieved from the sameDevice
See Also
VK_KHR_copy_commands2,
Image,
ImageLayout, ImageResolve2KHR,
StructureType, cmdResolveImage2KHR
Constructors
| ResolveImageInfo2KHR | |
Fields
| |
Instances
| Show ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods showsPrec :: Int -> ResolveImageInfo2KHR -> ShowS # show :: ResolveImageInfo2KHR -> String # showList :: [ResolveImageInfo2KHR] -> ShowS # | |
| FromCStruct ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods peekCStruct :: Ptr ResolveImageInfo2KHR -> IO ResolveImageInfo2KHR Source # | |
| ToCStruct ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods withCStruct :: ResolveImageInfo2KHR -> (Ptr ResolveImageInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr ResolveImageInfo2KHR -> ResolveImageInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr ResolveImageInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr ResolveImageInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods | |
type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1 Source #
pattern KHR_COPY_COMMANDS_2_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2" Source #
pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #