Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
contain*Info2KHR
structure parameter that includes sType
/pNext
members. Lower level structures that describe each region to be copied
are also extended with sType
/pNext
members.
New Commands
cmdCopyBuffer2KHR
cmdCopyBufferToImage2KHR
cmdCopyImage2KHR
cmdCopyImageToBuffer2KHR
cmdResolveImage2KHR
New Structures
BufferCopy2KHR
BufferImageCopy2KHR
CopyBufferInfo2KHR
CopyBufferToImageInfo2KHR
CopyImageInfo2KHR
CopyImageToBufferInfo2KHR
ImageBlit2KHR
ImageCopy2KHR
ImageResolve2KHR
ResolveImageInfo2KHR
New Enum Constants
KHR_COPY_COMMANDS_2_SPEC_VERSION
Extending
StructureType
:STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
STRUCTURE_TYPE_BUFFER_COPY_2_KHR
STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
STRUCTURE_TYPE_IMAGE_COPY_2_KHR
STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
STRUCTURE_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
:: 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
commandBuffer
is an unprotected command buffer, thendstBuffer
must not be a protected buffer - If
commandBuffer
is a protected command buffer, thendstBuffer
must not be an unprotected buffer
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pCopyBufferInfo
must be a valid pointer to a validCopyBufferInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was 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
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Transfer Graphics Compute | Transfer |
See Also
:: 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
commandBuffer
is an unprotected command buffer, thendstImage
must not be a protected image - If
commandBuffer
is a protected command buffer, thendstImage
must not be an unprotected image
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pCopyImageInfo
must be a valid pointer to a validCopyImageInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was 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
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Transfer Graphics Compute | Transfer |
See Also
:: 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
commandBuffer
is an unprotected command buffer, thendstImage
must not be a protected image - If
commandBuffer
is a protected command buffer, thendstImage
must not be an unprotected image
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pBlitImageInfo
must be a valid pointer to a validBlitImageInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Graphics | Transfer |
See Also
cmdCopyBufferToImage2KHR Source #
:: 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
commandBuffer
is an unprotected command buffer, thendstImage
must not be a protected image - If
commandBuffer
is a protected command buffer, thendstImage
must not be an unprotected image
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pCopyBufferToImageInfo
must be a valid pointer to a validCopyBufferToImageInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was 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
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Transfer Graphics Compute | Transfer |
See Also
cmdCopyImageToBuffer2KHR Source #
:: 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
commandBuffer
is an unprotected command buffer, thendstBuffer
must not be a protected buffer - If
commandBuffer
is a protected command buffer, thendstBuffer
must not be an unprotected buffer
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pCopyImageToBufferInfo
must be a valid pointer to a validCopyImageToBufferInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was 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
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Transfer Graphics Compute | Transfer |
See Also
:: 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
commandBuffer
is an unprotected command buffer, thendstImage
must not be a protected image - If
commandBuffer
is a protected command buffer, thendstImage
must not be an unprotected image
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pResolveImageInfo
must be a valid pointer to a validResolveImageInfo2KHR
structure -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a render pass instance
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Outside | Graphics | Transfer |
See Also
data BufferCopy2KHR Source #
VkBufferCopy2KHR - Structure specifying a buffer copy operation
Valid Usage
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_BUFFER_COPY_2_KHR
See Also
BufferCopy2KHR | |
|
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)
-
sType
must beSTRUCTURE_TYPE_IMAGE_COPY_2_KHR
-
pNext
must beNULL
-
srcSubresource
must be a validImageSubresourceLayers
structure -
dstSubresource
must be a validImageSubresourceLayers
structure
See Also
CopyImageInfo2KHR
, Extent3D
,
ImageSubresourceLayers
,
Offset3D
,
StructureType
ImageCopy2KHR | |
|
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)
-
sType
must beSTRUCTURE_TYPE_IMAGE_BLIT_2_KHR
-
pNext
must beNULL
or a pointer to a valid instance ofCopyCommandTransformInfoQCOM
- The
sType
value of each struct in thepNext
chain must be unique -
srcSubresource
must be a validImageSubresourceLayers
structure -
dstSubresource
must be a validImageSubresourceLayers
structure
See Also
BlitImageInfo2KHR
,
ImageSubresourceLayers
,
Offset3D
,
StructureType
ImageBlit2KHR | |
|
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
-
bufferImageHeight
must be0
, or greater than or equal to theheight
member ofimageExtent
- The
aspectMask
member ofimageSubresource
must only have a single bit set
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
-
pNext
must beNULL
or a pointer to a valid instance ofCopyCommandTransformInfoQCOM
- The
sType
value of each struct in thepNext
chain must be unique -
imageSubresource
must be a validImageSubresourceLayers
structure
See Also
CopyBufferToImageInfo2KHR
, CopyImageToBufferInfo2KHR
,
DeviceSize
,
Extent3D
,
ImageSubresourceLayers
,
Offset3D
,
StructureType
BufferImageCopy2KHR | |
|
Instances
data ImageResolve2KHR Source #
VkImageResolve2KHR - Structure specifying an image resolve operation
Valid Usage
- The
aspectMask
member ofsrcSubresource
anddstSubresource
must only containIMAGE_ASPECT_COLOR_BIT
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
-
pNext
must beNULL
-
srcSubresource
must be a validImageSubresourceLayers
structure -
dstSubresource
must be a validImageSubresourceLayers
structure
See Also
Extent3D
,
ImageSubresourceLayers
,
Offset3D
, ResolveImageInfo2KHR
,
StructureType
ImageResolve2KHR | |
|
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
dstOffset
member of each element ofpRegions
must be less than the size ofdstBuffer
- The
size
member of each element ofpRegions
must be less than or equal to the size ofsrcBuffer
minussrcOffset
- The
size
member of each element ofpRegions
must be less than or equal to the size ofdstBuffer
minusdstOffset
- The union of the source
regions, and the union of the destination regions, specified by the
elements of
pRegions
, must not overlap in memory -
srcBuffer
must have been created withBUFFER_USAGE_TRANSFER_SRC_BIT
usage flag - If
srcBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag - If
dstBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
-
pNext
must beNULL
-
srcBuffer
must be a validBuffer
handle -
dstBuffer
must be a validBuffer
handle -
pRegions
must be a valid pointer to an array ofregionCount
validBufferCopy2KHR
structures -
regionCount
must be greater than0
- Both of
dstBuffer
, andsrcBuffer
must have been created, allocated, or retrieved from the sameDevice
See Also
CopyBufferInfo2KHR | |
|
Instances
Show CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> CopyBufferInfo2KHR -> ShowS # show :: CopyBufferInfo2KHR -> String # showList :: [CopyBufferInfo2KHR] -> ShowS # | |
FromCStruct CopyBufferInfo2KHR Source # | |
ToCStruct CopyBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 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 |
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
srcImage
must containFORMAT_FEATURE_TRANSFER_SRC_BIT
-
srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flag - If
srcImage
is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a singleDeviceMemory
object -
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aDevice
-
srcImageLayout
must beIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
,IMAGE_LAYOUT_GENERAL
, orIMAGE_LAYOUT_SHARED_PRESENT_KHR
- The
format features
of
dstImage
must containFORMAT_FEATURE_TRANSFER_DST_BIT
-
dstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flag - If
dstImage
is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a singleDeviceMemory
object -
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aDevice
-
dstImageLayout
must beIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
,IMAGE_LAYOUT_GENERAL
, orIMAGE_LAYOUT_SHARED_PRESENT_KHR
- If the
Format
of each ofsrcImage
anddstImage
is not a multi-planar format, theFormat
of each ofsrcImage
anddstImage
must be compatible, as defined above - In a copy to or from a plane
of a
multi-planar image,
the
Format
of the image and plane must be compatible according to the description of compatible planes for the plane being copied - The sample count of
srcImage
anddstImage
must match - The
srcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whendstImage
was created - The
srcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whendstImage
was created - The
srcOffset
andextent
members of each element ofpRegions
must respect the image transfer granularity requirements ofcommandBuffer
’s command pool’s queue family, as described inQueueFamilyProperties
- The
dstOffset
andextent
members of each element ofpRegions
must respect the image transfer granularity requirements ofcommandBuffer
’s command pool’s queue family, as described inQueueFamilyProperties
-
dstImage
andsrcImage
must not have been created withflags
containingIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If neither
srcImage
nordstImage
has a multi-planar image format then for each element ofpRegions
,srcSubresource.aspectMask
anddstSubresource.aspectMask
must match - If
srcImage
has aFormat
with two planes then for each element ofpRegions
,srcSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
orIMAGE_ASPECT_PLANE_1_BIT
- If
srcImage
has aFormat
with three planes then for each element ofpRegions
,srcSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
,IMAGE_ASPECT_PLANE_1_BIT
, orIMAGE_ASPECT_PLANE_2_BIT
- If
dstImage
has aFormat
with two planes then for each element ofpRegions
,dstSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
orIMAGE_ASPECT_PLANE_1_BIT
- If
dstImage
has aFormat
with three planes then for each element ofpRegions
,dstSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
,IMAGE_ASPECT_PLANE_1_BIT
, orIMAGE_ASPECT_PLANE_2_BIT
- If
srcImage
has a multi-planar image format and thedstImage
does not have a multi-planar image format, then for each element ofpRegions
,dstSubresource.aspectMask
must beIMAGE_ASPECT_COLOR_BIT
- If
dstImage
has a multi-planar image format and thesrcImage
does not have a multi-planar image format, then for each element ofpRegions
,srcSubresource.aspectMask
must beIMAGE_ASPECT_COLOR_BIT
- If
srcImage
is of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,srcSubresource.baseArrayLayer
must be0
and andsrcSubresource.layerCount
must be1
- If
dstImage
is of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,dstSubresource.baseArrayLayer
must be0
and anddstSubresource.layerCount
must be1
- For each element of
pRegions
,srcSubresource.aspectMask
must specify aspects present insrcImage
- For each element of
pRegions
,dstSubresource.aspectMask
must specify aspects present indstImage
- For each element of
pRegions
,srcOffset.x
and (extent.width
+srcOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
- For each element of
pRegions
,srcOffset.y
and (extent.height
+srcOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset.y
must be0
andextent.height
must be1
- For each element of
pRegions
,srcOffset.z
and (extent.depth
+srcOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset.z
must be0
andextent.depth
must be1
- If
dstImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset.z
must be0
andextent.depth
must be1
- If
srcImage
is of typeIMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffset.z
must be0
- If
dstImage
is of typeIMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffset.z
must be0
- If
srcImage
anddstImage
are both of typeIMAGE_TYPE_2D
, then for each element ofpRegions
,extent.depth
must be1
- If
srcImage
is of typeIMAGE_TYPE_2D
, anddstImage
is of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,extent.depth
must equalsrcSubresource.layerCount
- If
dstImage
is of typeIMAGE_TYPE_2D
, andsrcImage
is of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,extent.depth
must equaldstSubresource.layerCount
- For each element of
pRegions
,dstOffset.x
and (extent.width
+dstOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
- For each element of
pRegions
,dstOffset.y
and (extent.height
+dstOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset.y
must be0
andextent.height
must be1
- For each element of
pRegions
,dstOffset.z
and (extent.depth
+dstOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
- If
srcImage
is a blocked image, then for each element ofpRegions
, all members ofsrcOffset
must be a multiple of the corresponding dimensions of the compressed texel block - If
srcImage
is a blocked image, then for each element ofpRegions
,extent.width
must be a multiple of the compressed texel block width or (extent.width
+srcOffset.x
) must equal the width of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is a blocked image, then for each element ofpRegions
,extent.height
must be a multiple of the compressed texel block height or (extent.height
+srcOffset.y
) must equal the height of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is a blocked image, then for each element ofpRegions
,extent.depth
must be a multiple of the compressed texel block depth or (extent.depth
+srcOffset.z
) must equal the depth of the specifiedsrcSubresource
ofsrcImage
- If
dstImage
is a blocked image, then for each element ofpRegions
, all members ofdstOffset
must be a multiple of the corresponding dimensions of the compressed texel block - If
dstImage
is a blocked image, then for each element ofpRegions
,extent.width
must be a multiple of the compressed texel block width or (extent.width
+dstOffset.x
) must equal the width of the specifieddstSubresource
ofdstImage
- If
dstImage
is a blocked image, then for each element ofpRegions
,extent.height
must be a multiple of the compressed texel block height or (extent.height
+dstOffset.y
) must equal the height of the specifieddstSubresource
ofdstImage
- If
dstImage
is a blocked image, then for each element ofpRegions
,extent.depth
must be a multiple of the compressed texel block depth or (extent.depth
+dstOffset.z
) must equal the depth of the specifieddstSubresource
ofdstImage
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
-
pNext
must beNULL
-
srcImage
must be a validImage
handle -
srcImageLayout
must be a validImageLayout
value -
dstImage
must be a validImage
handle -
dstImageLayout
must be a validImageLayout
value -
pRegions
must be a valid pointer to an array ofregionCount
validImageCopy2KHR
structures -
regionCount
must be greater than0
- Both of
dstImage
, andsrcImage
must have been created, allocated, or retrieved from the sameDevice
See Also
Image
, ImageCopy2KHR
,
ImageLayout
,
StructureType
, cmdCopyImage2KHR
CopyImageInfo2KHR | |
|
Instances
Show CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> CopyImageInfo2KHR -> ShowS # show :: CopyImageInfo2KHR -> String # showList :: [CopyImageInfo2KHR] -> ShowS # | |
FromCStruct CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 | |
ToCStruct CopyImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 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 |
data BlitImageInfo2KHR Source #
VkBlitImageInfo2KHR - Structure specifying parameters of blit image command
Valid Usage
- The source region
specified by each element of
pRegions
must be a region that is contained withinsrcImage
- The destination region
specified by each element of
pRegions
must 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
srcImage
must containFORMAT_FEATURE_BLIT_SRC_BIT
-
srcImage
must not use a format listed in ??? -
srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flag - If
srcImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aDevice
-
srcImageLayout
must beIMAGE_LAYOUT_SHARED_PRESENT_KHR
,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The
format features
of
dstImage
must containFORMAT_FEATURE_BLIT_DST_BIT
-
dstImage
must not use a format listed in ??? -
dstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flag - If
dstImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aDevice
-
dstImageLayout
must beIMAGE_LAYOUT_SHARED_PRESENT_KHR
,IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- If either of
srcImage
ordstImage
was created with a signed integerFormat
, the other must also have been created with a signed integerFormat
- If either of
srcImage
ordstImage
was created with an unsigned integerFormat
, the other must also have been created with an unsigned integerFormat
- If either of
srcImage
ordstImage
was created with a depth/stencil format, the other must have exactly the same format - If
srcImage
was created with a depth/stencil format,filter
must beFILTER_NEAREST
-
srcImage
must have been created with asamples
value ofSAMPLE_COUNT_1_BIT
-
dstImage
must have been created with asamples
value ofSAMPLE_COUNT_1_BIT
- If
filter
isFILTER_LINEAR
, then the format features ofsrcImage
must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
- If
filter
isFILTER_CUBIC_EXT
, then the format features ofsrcImage
must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
- If
filter
isFILTER_CUBIC_EXT
,srcImage
must be of typeIMAGE_TYPE_2D
- The
srcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whendstImage
was created - The
srcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whendstImage
was created -
dstImage
andsrcImage
must not have been created withflags
containingIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If either
srcImage
ordstImage
is of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,srcSubresource.baseArrayLayer
anddstSubresource.baseArrayLayer
must each be0
, andsrcSubresource.layerCount
anddstSubresource.layerCount
must each be1
. - For each element of
pRegions
,srcSubresource.aspectMask
must specify aspects present insrcImage
- For each element of
pRegions
,dstSubresource.aspectMask
must specify aspects present indstImage
- For each element of
pRegions
,srcOffset
[0].x andsrcOffset
[1].x must both be greater than or equal to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
- For each element of
pRegions
,srcOffset
[0].y andsrcOffset
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset
[0].y must be0
andsrcOffset
[1].y must be1
- For each element of
pRegions
,srcOffset
[0].z andsrcOffset
[1].z must both be greater than or equal to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffset
[0].z must be0
andsrcOffset
[1].z must be1
- For each element of
pRegions
,dstOffset
[0].x anddstOffset
[1].x must both be greater than or equal to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
- For each element of
pRegions
,dstOffset
[0].y anddstOffset
[1].y must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset
[0].y must be0
anddstOffset
[1].y must be1
- For each element of
pRegions
,dstOffset
[0].z anddstOffset
[1].z must both be greater than or equal to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffset
[0].z must be0
anddstOffset
[1].z must be1
- If any element of
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, thensrcImage
anddstImage
must not be a block-compressed image. - If any element of
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, then thesrcImage
must be of typeIMAGE_TYPE_2D
and must not be a multi-planar format.
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
-
pNext
must beNULL
-
srcImage
must be a validImage
handle -
srcImageLayout
must be a validImageLayout
value -
dstImage
must be a validImage
handle -
dstImageLayout
must be a validImageLayout
value -
pRegions
must be a valid pointer to an array ofregionCount
validImageBlit2KHR
structures -
filter
must be a validFilter
value -
regionCount
must be greater than0
- Both of
dstImage
, andsrcImage
must have been created, allocated, or retrieved from the sameDevice
See Also
Filter
, Image
,
ImageBlit2KHR
, ImageLayout
,
StructureType
, cmdBlitImage2KHR
BlitImageInfo2KHR | |
|
Instances
Show BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> BlitImageInfo2KHR -> ShowS # show :: BlitImageInfo2KHR -> String # showList :: [BlitImageInfo2KHR] -> ShowS # | |
FromCStruct BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 | |
ToCStruct BlitImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 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 |
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
pRegions
does not containCopyCommandTransformInfoQCOM
in itspNext
chain, it must be a region that is contained withindstImage
if thedstImage
’sFormat
is not a multi-planar format, and must be a region that is contained within the plane being copied to if thedstImage
’sFormat
is a multi-planar format
- If the image
region specified by each element of
pRegions
does containCopyCommandTransformInfoQCOM
in itspNext
chain, 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
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, then thedstImage
must not be a blocked image. - If any element of
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, then thedstImage
must be of typeIMAGE_TYPE_2D
and must not be a multi-planar format. -
srcBuffer
must 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 -
srcBuffer
must have been created withBUFFER_USAGE_TRANSFER_SRC_BIT
usage flag - The
format features
of
dstImage
must containFORMAT_FEATURE_TRANSFER_DST_BIT
- If
srcBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstImage
must have been created withIMAGE_USAGE_TRANSFER_DST_BIT
usage flag - If
dstImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
-
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aDevice
-
dstImageLayout
must beIMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
,IMAGE_LAYOUT_GENERAL
, orIMAGE_LAYOUT_SHARED_PRESENT_KHR
- The
imageSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whendstImage
was created - The
imageSubresource.baseArrayLayer
+imageSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whendstImage
was created - The
imageOffset
andimageExtent
members of each element ofpRegions
must respect the image transfer granularity requirements ofcommandBuffer
’s command pool’s queue family, as described inQueueFamilyProperties
-
dstImage
must not have been created withflags
containingIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If the queue
family used to create the
CommandPool
whichcommandBuffer
was allocated from does not supportQUEUE_GRAPHICS_BIT
orQUEUE_COMPUTE_BIT
, thebufferOffset
member of any element ofpRegions
must be a multiple of4
- If
dstImage
has a depth/stencil format, thebufferOffset
member of any element ofpRegions
must be a multiple of4
- If the queue
family used to create the
CommandPool
whichcommandBuffer
was allocated from does not supportQUEUE_GRAPHICS_BIT
, for each element ofpRegions
, theaspectMask
member ofimageSubresource
must not beIMAGE_ASPECT_DEPTH_BIT
orIMAGE_ASPECT_STENCIL_BIT
. - For each
element of
pRegions
not containingCopyCommandTransformInfoQCOM
in itspNext
chain, ,imageOffset.x
and (imageExtent.width
+imageOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifiedimageSubresource
ofdstImage
where this refers to the width of the plane of the image involved in the copy in the case of a multi-planar format - For each
element of
pRegions
not containingCopyCommandTransformInfoQCOM
in itspNext
chain, ,imageOffset.y
and (imageExtent.height +imageOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifiedimageSubresource
ofdstImage
where this refers to the height of the plane of the image involved in the copy in the case of a multi-planar format - If
dstImage
does not have either a depth/stencil or a multi-planar format, then for each element ofpRegions
,bufferOffset
must be a multiple of the format’s texel block size - If
dstImage
has a multi-planar format, then for each element ofpRegions
,bufferOffset
must be a multiple of the element size of the compatible format for the format and theaspectMask
of theimageSubresource
as defined in ??? - If
dstImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,imageOffset.y
must be0
andimageExtent.height
must be1
- For each
element of
pRegions
,imageOffset.z
and (imageExtent.depth +imageOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifiedimageSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,imageOffset.z
must be0
andimageExtent.depth
must be1
- If
dstImage
is a blocked image, for each element ofpRegions
,bufferRowLength
must be a multiple of the compressed texel block width - If
dstImage
is a blocked image, for each element ofpRegions
,bufferImageHeight
must be a multiple of the compressed texel block height - If
dstImage
is a blocked image, for each element ofpRegions
, all members ofimageOffset
must be a multiple of the corresponding dimensions of the compressed texel block - If
dstImage
is a blocked image, for each element ofpRegions
,bufferOffset
must be a multiple of the compressed texel block size in bytes - If
dstImage
is a blocked image, for each element ofpRegions
,imageExtent.width
must be a multiple of the compressed texel block width or (imageExtent.width
+imageOffset.x
) must equal the width of the specifiedimageSubresource
ofdstImage
- If
dstImage
is a blocked image, for each element ofpRegions
,imageExtent.height
must be a multiple of the compressed texel block height or (imageExtent.height
+imageOffset.y
) must equal the height of the specifiedimageSubresource
ofdstImage
- If
dstImage
is a blocked image, for each element ofpRegions
,imageExtent.depth
must be a multiple of the compressed texel block depth or (imageExtent.depth
+imageOffset.z
) must equal the depth of the specifiedimageSubresource
ofdstImage
- For each element
of
pRegions
,imageSubresource.aspectMask
must specify aspects present indstImage
- If
dstImage
has a multi-planar format, then for each element ofpRegions
,imageSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
,IMAGE_ASPECT_PLANE_1_BIT
, orIMAGE_ASPECT_PLANE_2_BIT
(withIMAGE_ASPECT_PLANE_2_BIT
valid only for image formats with three planes) - If
dstImage
is of typeIMAGE_TYPE_3D
, for each element ofpRegions
,imageSubresource.baseArrayLayer
must be0
andimageSubresource.layerCount
must be1
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
-
pNext
must beNULL
-
srcBuffer
must be a validBuffer
handle -
dstImage
must be a validImage
handle -
dstImageLayout
must be a validImageLayout
value -
pRegions
must be a valid pointer to an array ofregionCount
validBufferImageCopy2KHR
structures -
regionCount
must be greater than0
- Both of
dstImage
, andsrcBuffer
must have been created, allocated, or retrieved from the sameDevice
See Also
Buffer
, BufferImageCopy2KHR
,
Image
,
ImageLayout
,
StructureType
,
cmdCopyBufferToImage2KHR
CopyBufferToImageInfo2KHR | |
|
Instances
Show CopyBufferToImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> CopyBufferToImageInfo2KHR -> ShowS # show :: CopyBufferToImageInfo2KHR -> String # showList :: [CopyBufferToImageInfo2KHR] -> ShowS # | |
FromCStruct CopyBufferToImageInfo2KHR Source # | |
ToCStruct CopyBufferToImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 withCStruct :: CopyBufferToImageInfo2KHR -> (Ptr CopyBufferToImageInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr CopyBufferToImageInfo2KHR -> CopyBufferToImageInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr CopyBufferToImageInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr CopyBufferToImageInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero CopyBufferToImageInfo2KHR Source # | |
data CopyImageToBufferInfo2KHR Source #
VkCopyImageToBufferInfo2KHR - Structure specifying parameters of a image to buffer copy command
Valid Usage
- If the image
region specified by each element of
pRegions
does not containCopyCommandTransformInfoQCOM
in itspNext
chain, it must be a region that is contained withinsrcImage
if thesrcImage
’sFormat
is not a multi-planar format, and must be a region that is contained within the plane being copied if thesrcImage
’sFormat
is a multi-planar format
- If the image
region specified by each element of
pRegions
does containCopyCommandTransformInfoQCOM
in itspNext
chain, 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
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, then thesrcImage
must not be a blocked image - If any element of
pRegions
containsCopyCommandTransformInfoQCOM
in itspNext
chain, then thesrcImage
must be of typeIMAGE_TYPE_2D
, and must not be a multi-planar format. -
dstBuffer
must 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 -
srcImage
must have been created withIMAGE_USAGE_TRANSFER_SRC_BIT
usage flag - The
format features
of
srcImage
must containFORMAT_FEATURE_TRANSFER_SRC_BIT
- If
srcImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstBuffer
must have been created withBUFFER_USAGE_TRANSFER_DST_BIT
usage flag - If
dstBuffer
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
srcImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
-
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aDevice
-
srcImageLayout
must beIMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
,IMAGE_LAYOUT_GENERAL
, orIMAGE_LAYOUT_SHARED_PRESENT_KHR
- The
imageSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whensrcImage
was created - The
imageSubresource.baseArrayLayer
+imageSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whensrcImage
was created - The
imageOffset
andimageExtent
members of each element ofpRegions
must respect the image transfer granularity requirements ofcommandBuffer
’s command pool’s queue family, as described inQueueFamilyProperties
-
srcImage
must not have been created withflags
containingIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If the queue
family used to create the
CommandPool
whichcommandBuffer
was allocated from does not supportQUEUE_GRAPHICS_BIT
orQUEUE_COMPUTE_BIT
, thebufferOffset
member of any element ofpRegions
must be a multiple of4
- If
srcImage
has a depth/stencil format, thebufferOffset
member of any element ofpRegions
must be a multiple of4
- For each
element of
pRegions
not containingCopyCommandTransformInfoQCOM
in itspNext
chain, ,imageOffset.x
and (imageExtent.width
+imageOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifiedimageSubresource
ofsrcImage
where this refers to the width of the plane of the image involved in the copy in the case of a multi-planar format - For each
element of
pRegions
not containingCopyCommandTransformInfoQCOM
in itspNext
chain, ,imageOffset.y
and (imageExtent.height +imageOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifiedimageSubresource
ofsrcImage
where this refers to the height of the plane of the image involved in the copy in the case of a multi-planar format - If
{imageparam} does not have either a depth/stencil or a
multi-planar format,
then for each element of
pRegions
,bufferOffset
must be a multiple of the format’s texel block size - If
{imageparam} has a
multi-planar format,
then for each element of
pRegions
,bufferOffset
must be a multiple of the element size of the compatible format for the format and theaspectMask
of theimageSubresource
as defined in ??? - If {imageparam} is
of type
IMAGE_TYPE_1D
, then for each element ofpRegions
,imageOffset.y
must be0
andimageExtent.height
must be1
- For each
element of
pRegions
,imageOffset.z
and (imageExtent.depth +imageOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifiedimageSubresource
of {imageparam} - If {imageparam} is
of type
IMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,imageOffset.z
must be0
andimageExtent.depth
must be1
- If
{imageparam} is a
blocked image,
for each element of
pRegions
,bufferRowLength
must be a multiple of the compressed texel block width - If
{imageparam} is a
blocked image,
for each element of
pRegions
,bufferImageHeight
must be a multiple of the compressed texel block height - If {imageparam}
is a
blocked image,
for each element of
pRegions
, all members ofimageOffset
must be a multiple of the corresponding dimensions of the compressed texel block - If
{imageparam} is a
blocked image,
for each element of
pRegions
,bufferOffset
must be a multiple of the compressed texel block size in bytes - If {imageparam}
is a
blocked image,
for each element of
pRegions
,imageExtent.width
must be a multiple of the compressed texel block width or (imageExtent.width
+imageOffset.x
) must equal the width of the specifiedimageSubresource
of {imageparam} - If {imageparam}
is a
blocked image,
for each element of
pRegions
,imageExtent.height
must be a multiple of the compressed texel block height or (imageExtent.height
+imageOffset.y
) must equal the height of the specifiedimageSubresource
of {imageparam} - If {imageparam}
is a
blocked image,
for each element of
pRegions
,imageExtent.depth
must be a multiple of the compressed texel block depth or (imageExtent.depth
+imageOffset.z
) must equal the depth of the specifiedimageSubresource
of {imageparam} - For each element
of
pRegions
,imageSubresource.aspectMask
must specify aspects present in {imageparam} - If {imageparam}
has a
multi-planar format,
then for each element of
pRegions
,imageSubresource.aspectMask
must beIMAGE_ASPECT_PLANE_0_BIT
,IMAGE_ASPECT_PLANE_1_BIT
, orIMAGE_ASPECT_PLANE_2_BIT
(withIMAGE_ASPECT_PLANE_2_BIT
valid only for image formats with three planes) - If
{imageparam} is of type
IMAGE_TYPE_3D
, for each element ofpRegions
,imageSubresource.baseArrayLayer
must be0
andimageSubresource.layerCount
must be1
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
-
pNext
must beNULL
-
srcImage
must be a validImage
handle -
srcImageLayout
must be a validImageLayout
value -
dstBuffer
must be a validBuffer
handle -
pRegions
must be a valid pointer to an array ofregionCount
validBufferImageCopy2KHR
structures -
regionCount
must be greater than0
- Both of
dstBuffer
, andsrcImage
must have been created, allocated, or retrieved from the sameDevice
See Also
Buffer
, BufferImageCopy2KHR
,
Image
,
ImageLayout
,
StructureType
,
cmdCopyImageToBuffer2KHR
CopyImageToBufferInfo2KHR | |
|
Instances
Show CopyImageToBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> CopyImageToBufferInfo2KHR -> ShowS # show :: CopyImageToBufferInfo2KHR -> String # showList :: [CopyImageToBufferInfo2KHR] -> ShowS # | |
FromCStruct CopyImageToBufferInfo2KHR Source # | |
ToCStruct CopyImageToBufferInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 withCStruct :: CopyImageToBufferInfo2KHR -> (Ptr CopyImageToBufferInfo2KHR -> IO b) -> IO b Source # pokeCStruct :: Ptr CopyImageToBufferInfo2KHR -> CopyImageToBufferInfo2KHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr CopyImageToBufferInfo2KHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr CopyImageToBufferInfo2KHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero CopyImageToBufferInfo2KHR Source # | |
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
srcImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
srcImage
must have a sample count equal to any valid sample count value other thanSAMPLE_COUNT_1_BIT
- If
dstImage
is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object -
dstImage
must have a sample count equal toSAMPLE_COUNT_1_BIT
-
srcImageLayout
must specify the layout of the image subresources ofsrcImage
specified inpRegions
at the time this command is executed on aDevice
-
srcImageLayout
must beIMAGE_LAYOUT_SHARED_PRESENT_KHR
,IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
orIMAGE_LAYOUT_GENERAL
-
dstImageLayout
must specify the layout of the image subresources ofdstImage
specified inpRegions
at the time this command is executed on aDevice
-
dstImageLayout
must beIMAGE_LAYOUT_SHARED_PRESENT_KHR
,IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
orIMAGE_LAYOUT_GENERAL
- The
format features
of
dstImage
must containFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
-
srcImage
anddstImage
must have been created with the same image format - The
srcSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.mipLevel
member of each element ofpRegions
must be less than themipLevels
specified inImageCreateInfo
whendstImage
was created - The
srcSubresource.baseArrayLayer
+srcSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whensrcImage
was created - The
dstSubresource.baseArrayLayer
+dstSubresource.layerCount
of each element ofpRegions
must be less than or equal to thearrayLayers
specified inImageCreateInfo
whendstImage
was created -
dstImage
andsrcImage
must not have been created withflags
containingIMAGE_CREATE_SUBSAMPLED_BIT_EXT
- If either
srcImage
ordstImage
are of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,srcSubresource.baseArrayLayer
must be0
andsrcSubresource.layerCount
must be1
- If either
srcImage
ordstImage
are of typeIMAGE_TYPE_3D
, then for each element ofpRegions
,dstSubresource.baseArrayLayer
must be0
anddstSubresource.layerCount
must be1
- For each element of
pRegions
,srcOffset.x
and (extent.width
+srcOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifiedsrcSubresource
ofsrcImage
- For each element of
pRegions
,srcOffset.y
and (extent.height
+srcOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,srcOffset.y
must be0
andextent.height
must be1
- For each element of
pRegions
,srcOffset.z
and (extent.depth
+srcOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifiedsrcSubresource
ofsrcImage
- If
srcImage
is of typeIMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,srcOffset.z
must be0
andextent.depth
must be1
- For each element of
pRegions
,dstOffset.x
and (extent.width
+dstOffset.x
) must both be greater than or equal to0
and less than or equal to the width of the specifieddstSubresource
ofdstImage
- For each element of
pRegions
,dstOffset.y
and (extent.height
+dstOffset.y
) must both be greater than or equal to0
and less than or equal to the height of the specifieddstSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
, then for each element ofpRegions
,dstOffset.y
must be0
andextent.height
must be1
- For each element of
pRegions
,dstOffset.z
and (extent.depth
+dstOffset.z
) must both be greater than or equal to0
and less than or equal to the depth of the specifieddstSubresource
ofdstImage
- If
dstImage
is of typeIMAGE_TYPE_1D
orIMAGE_TYPE_2D
, then for each element ofpRegions
,dstOffset.z
must be0
andextent.depth
must be1
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
-
pNext
must beNULL
-
srcImage
must be a validImage
handle -
srcImageLayout
must be a validImageLayout
value -
dstImage
must be a validImage
handle -
dstImageLayout
must be a validImageLayout
value -
pRegions
must be a valid pointer to an array ofregionCount
validImageResolve2KHR
structures -
regionCount
must be greater than0
- Both of
dstImage
, andsrcImage
must have been created, allocated, or retrieved from the sameDevice
See Also
Image
,
ImageLayout
, ImageResolve2KHR
,
StructureType
, cmdResolveImage2KHR
ResolveImageInfo2KHR | |
|
Instances
Show ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 showsPrec :: Int -> ResolveImageInfo2KHR -> ShowS # show :: ResolveImageInfo2KHR -> String # showList :: [ResolveImageInfo2KHR] -> ShowS # | |
FromCStruct ResolveImageInfo2KHR Source # | |
ToCStruct ResolveImageInfo2KHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_copy_commands2 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 |
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 #