vulkan-3.6.11.1: Bindings to the Vulkan graphics API.

Vulkan.Extensions.VK_KHR_copy_commands2

Synopsis

# Documentation

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> CopyBufferInfo2KHR pCopyBufferInfo is a pointer to a CopyBufferInfo2KHR structure describing the copy parameters. -> 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, then srcBuffer must not be a protected buffer
• If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer
• If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pCopyBufferInfo must be a valid pointer to a valid CopyBufferInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

CommandBuffer, CopyBufferInfo2KHR

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> CopyImageInfo2KHR pCopyImageInfo is a pointer to a CopyImageInfo2KHR structure describing the copy parameters. -> 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, then srcImage must not be a protected image
• If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image
• If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pCopyImageInfo must be a valid pointer to a valid CopyImageInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

CommandBuffer, CopyImageInfo2KHR

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> BlitImageInfo2KHR pBlitImageInfo is a pointer to a BlitImageInfo2KHR structure describing the blit parameters. -> 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, then srcImage must not be a protected image
• If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image
• If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pBlitImageInfo must be a valid pointer to a valid BlitImageInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

BlitImageInfo2KHR, CommandBuffer

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> CopyBufferToImageInfo2KHR pCopyBufferToImageInfo is a pointer to a CopyBufferToImageInfo2KHR structure describing the copy parameters. -> 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, then srcBuffer must not be a protected buffer
• If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image
• If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pCopyBufferToImageInfo must be a valid pointer to a valid CopyBufferToImageInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

CommandBuffer, CopyBufferToImageInfo2KHR

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> CopyImageToBufferInfo2KHR pCopyImageToBufferInfo is a pointer to a cmdCopyImageToBuffer2KHR structure describing the copy parameters. -> 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, then srcImage must not be a protected image
• If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer
• If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pCopyImageToBufferInfo must be a valid pointer to a valid CopyImageToBufferInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

CommandBuffer, CopyImageToBufferInfo2KHR

Arguments

 :: forall io. MonadIO io => CommandBuffer commandBuffer is the command buffer into which the command will be recorded. -> ResolveImageInfo2KHR pResolveImageInfo is a pointer to a ResolveImageInfo2KHR structure describing the resolve parameters. -> 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, then srcImage must not be a protected image
• If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image
• If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image

## Valid Usage (Implicit)

• commandBuffer must be a valid CommandBuffer handle
• pResolveImageInfo must be a valid pointer to a valid ResolveImageInfo2KHR structure
• commandBuffer must be in the recording state
• The CommandPool that commandBuffer 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 that commandBuffer 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

CommandBuffer, ResolveImageInfo2KHR

VkBufferCopy2KHR - Structure specifying a buffer copy operation

## Valid Usage

• The size must be greater than 0

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_BUFFER_COPY_2_KHR
• pNext must be NULL

CopyBufferInfo2KHR, DeviceSize, StructureType

Constructors

 BufferCopy2KHR FieldssrcOffset :: DeviceSizesrcOffset is the starting offset in bytes from the start of srcBuffer.dstOffset :: DeviceSizedstOffset is the starting offset in bytes from the start of dstBuffer.size :: DeviceSizesize is the number of bytes to copy.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [BufferCopy2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodspokeByteOff :: Ptr b -> Int -> BufferCopy2KHR -> IO () # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithCStruct :: BufferCopy2KHR -> (Ptr BufferCopy2KHR -> IO b) -> IO b Source #withZeroCStruct :: (Ptr BufferCopy2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

VkImageCopy2KHR - Structure specifying an image copy operation

## Valid Usage

• The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_IMAGE_COPY_2_KHR
• pNext must be NULL
• srcSubresource must be a valid ImageSubresourceLayers structure
• dstSubresource must be a valid ImageSubresourceLayers structure

CopyImageInfo2KHR, Extent3D, ImageSubresourceLayers, Offset3D, StructureType

Constructors

 ImageCopy2KHR FieldssrcSubresource :: ImageSubresourceLayerssrcSubresource and dstSubresource are ImageSubresourceLayers structures specifying the image subresources of the images used for the source and destination image data, respectively.srcOffset :: Offset3DsrcOffset and dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.dstSubresource :: ImageSubresourceLayers dstOffset :: Offset3D extent :: Extent3Dextent is the size in texels of the image to copy in width, height and depth.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [ImageCopy2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithCStruct :: ImageCopy2KHR -> (Ptr ImageCopy2KHR -> IO b) -> IO b Source #withZeroCStruct :: (Ptr ImageCopy2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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

• The aspectMask member of srcSubresource and dstSubresource must match
• The layerCount member of srcSubresource and dstSubresource must match

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
• pNext must be NULL
• srcSubresource must be a valid ImageSubresourceLayers structure
• dstSubresource must be a valid ImageSubresourceLayers structure

BlitImageInfo2KHR, ImageSubresourceLayers, Offset3D, StructureType

Constructors

 ImageBlit2KHR FieldssrcSubresource :: ImageSubresourceLayerssrcSubresource is the subresource to blit from.srcOffsets :: (Offset3D, Offset3D)srcOffsets is a pointer to an array of two Offset3D structures specifying the bounds of the source region within srcSubresource.dstSubresource :: ImageSubresourceLayersdstSubresource is the subresource to blit into.dstOffsets :: (Offset3D, Offset3D)dstOffsets is a pointer to an array of two Offset3D structures specifying the bounds of the destination region within dstSubresource.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [ImageBlit2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithCStruct :: ImageBlit2KHR -> (Ptr ImageBlit2KHR -> IO b) -> IO b Source #withZeroCStruct :: (Ptr ImageBlit2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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

• bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
• bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
• The aspectMask member of imageSubresource must only have a single bit set

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
• pNext must be NULL
• imageSubresource must be a valid ImageSubresourceLayers structure

CopyBufferToImageInfo2KHR, CopyImageToBufferInfo2KHR, DeviceSize, Extent3D, ImageSubresourceLayers, Offset3D, StructureType

Constructors

 BufferImageCopy2KHR FieldsbufferOffset :: DeviceSizebufferOffset is the offset in bytes from the start of the buffer object where the image data is copied from or to.bufferRowLength :: Word32bufferRowLength and bufferImageHeight specify in texels a subregion of a larger two- or three-dimensional image in buffer memory, and control the addressing calculations. If either of these values is zero, that aspect of the buffer memory is considered to be tightly packed according to the imageExtent.bufferImageHeight :: Word32 imageSubresource :: ImageSubresourceLayersimageSubresource is a ImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.imageOffset :: Offset3DimageOffset selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data.imageExtent :: Extent3DimageExtent is the size in texels of the image to copy in width, height and depth.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithZeroCStruct :: (Ptr BufferImageCopy2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

VkImageResolve2KHR - Structure specifying an image resolve operation

## Valid Usage

• The aspectMask member of srcSubresource and dstSubresource must only contain IMAGE_ASPECT_COLOR_BIT
• The layerCount member of srcSubresource and dstSubresource must match

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
• pNext must be NULL
• srcSubresource must be a valid ImageSubresourceLayers structure
• dstSubresource must be a valid ImageSubresourceLayers structure

Extent3D, ImageSubresourceLayers, Offset3D, ResolveImageInfo2KHR, StructureType

Constructors

 ImageResolve2KHR FieldssrcSubresource :: ImageSubresourceLayerssrcSubresource and dstSubresource are ImageSubresourceLayers structures specifying the image subresources of the images used for the source and destination image data, respectively. Resolve of depth/stencil images is not supported.srcOffset :: Offset3DsrcOffset and dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.dstSubresource :: ImageSubresourceLayers dstOffset :: Offset3D extent :: Extent3Dextent is the size in texels of the source image to resolve in width, height and depth.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [ImageResolve2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithZeroCStruct :: (Ptr ImageResolve2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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 srcOffset member of each element of pRegions must be less than the size of srcBuffer
• The dstOffset member of each element of pRegions must be less than the size of dstBuffer
• The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
• The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
• 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 with BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
• If srcBuffer is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• dstBuffer must have been created with BUFFER_USAGE_TRANSFER_DST_BIT usage flag
• If dstBuffer is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
• pNext must be NULL
• srcBuffer must be a valid Buffer handle
• dstBuffer must be a valid Buffer handle
• pRegions must be a valid pointer to an array of regionCount valid BufferCopy2KHR structures
• regionCount must be greater than 0
• Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same Device

Buffer, BufferCopy2KHR, StructureType, cmdCopyBuffer2KHR

Constructors

 CopyBufferInfo2KHR FieldssrcBuffer :: BuffersrcBuffer is the source buffer.dstBuffer :: BufferdstBuffer is the destination buffer.regions :: Vector BufferCopy2KHRpRegions is a pointer to an array of BufferCopy2KHR structures specifying the regions to copy.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [CopyBufferInfo2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithZeroCStruct :: (Ptr CopyBufferInfo2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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 contain FORMAT_FEATURE_TRANSFER_SRC_BIT
• srcImage must have been created with IMAGE_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 single DeviceMemory object
• srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a Device
• srcImageLayout must be IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, IMAGE_LAYOUT_GENERAL, or IMAGE_LAYOUT_SHARED_PRESENT_KHR
• The format features of dstImage must contain FORMAT_FEATURE_TRANSFER_DST_BIT
• dstImage must have been created with IMAGE_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 single DeviceMemory object
• dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a Device
• dstImageLayout must be IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, IMAGE_LAYOUT_GENERAL, or IMAGE_LAYOUT_SHARED_PRESENT_KHR
• If the Format of each of srcImage and dstImage is not a multi-planar format, the Format of each of srcImage and dstImage 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 and dstImage must match
• The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when srcImage was created
• The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when dstImage was created
• The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when srcImage was created
• The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when dstImage was created
• The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in QueueFamilyProperties
• The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in QueueFamilyProperties
• dstImage and srcImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXT
• If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match
• If srcImage has a Format with two planes then for each element of pRegions, srcSubresource.aspectMask must be IMAGE_ASPECT_PLANE_0_BIT or IMAGE_ASPECT_PLANE_1_BIT
• If srcImage has a Format with three planes then for each element of pRegions, srcSubresource.aspectMask must be IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT, or IMAGE_ASPECT_PLANE_2_BIT
• If dstImage has a Format with two planes then for each element of pRegions, dstSubresource.aspectMask must be IMAGE_ASPECT_PLANE_0_BIT or IMAGE_ASPECT_PLANE_1_BIT
• If dstImage has a Format with three planes then for each element of pRegions, dstSubresource.aspectMask must be IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT, or IMAGE_ASPECT_PLANE_2_BIT
• If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be IMAGE_ASPECT_COLOR_BIT
• If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be IMAGE_ASPECT_COLOR_BIT
• If srcImage is of type IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and and srcSubresource.layerCount must be 1
• If dstImage is of type IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and and dstSubresource.layerCount must be 1
• For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
• For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
• For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
• For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
• If srcImage is of type IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
• For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
• If srcImage is of type IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
• If dstImage is of type IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
• If srcImage is of type IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
• If dstImage is of type IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
• If srcImage and dstImage are both of type IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
• If srcImage is of type IMAGE_TYPE_2D, and dstImage is of type IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount
• If dstImage is of type IMAGE_TYPE_2D, and srcImage is of type IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount
• For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
• For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
• If dstImage is of type IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
• For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
• If srcImage is a blocked image, then for each element of pRegions, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block
• If srcImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the width of the specified srcSubresource of srcImage
• If srcImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the height of the specified srcSubresource of srcImage
• If srcImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the depth of the specified srcSubresource of srcImage
• If dstImage is a blocked image, then for each element of pRegions, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block
• If dstImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the width of the specified dstSubresource of dstImage
• If dstImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the height of the specified dstSubresource of dstImage
• If dstImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the depth of the specified dstSubresource of dstImage

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
• pNext must be NULL
• srcImage must be a valid Image handle
• srcImageLayout must be a valid ImageLayout value
• dstImage must be a valid Image handle
• dstImageLayout must be a valid ImageLayout value
• pRegions must be a valid pointer to an array of regionCount valid ImageCopy2KHR structures
• regionCount must be greater than 0
• Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same Device

Image, ImageCopy2KHR, ImageLayout, StructureType, cmdCopyImage2KHR

Constructors

 CopyImageInfo2KHR FieldssrcImage :: ImagesrcImage is the source image.srcImageLayout :: ImageLayoutsrcImageLayout is the current layout of the source image subresource.dstImage :: ImagedstImage is the destination image.dstImageLayout :: ImageLayoutdstImageLayout is the current layout of the destination image subresource.regions :: Vector ImageCopy2KHRpRegions is a pointer to an array of ImageCopy2KHR structures specifying the regions to copy.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [CopyImageInfo2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithZeroCStruct :: (Ptr CopyImageInfo2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

VkBlitImageInfo2KHR - Structure specifying parameters of blit image command

## Valid Usage

• [[VUID-{refpage}-pRegions-00215]] The source region specified by each element of pRegions must be a region that is contained within srcImage
• [[VUID-{refpage}-pRegions-00216]] The destination region specified by each element of pRegions must be a region that is contained within dstImage
• [[VUID-{refpage}-pRegions-00217]] 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
• [[VUID-{refpage}-srcImage-01999]] The format features of srcImage must contain FORMAT_FEATURE_BLIT_SRC_BIT
• [[VUID-{refpage}-srcImage-01561]] srcImage must not use a format listed in ???
• [[VUID-{refpage}-srcImage-00219]] srcImage must have been created with IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
• [[VUID-{refpage}-srcImage-00220]] If srcImage is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• [[VUID-{refpage}-srcImageLayout-00221]] srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a Device
• [[VUID-{refpage}-srcImageLayout-01398]] srcImageLayout must be IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or IMAGE_LAYOUT_GENERAL
• [[VUID-{refpage}-dstImage-02000]] The format features of dstImage must contain FORMAT_FEATURE_BLIT_DST_BIT
• [[VUID-{refpage}-dstImage-01562]] dstImage must not use a format listed in ???
• [[VUID-{refpage}-dstImage-00224]] dstImage must have been created with IMAGE_USAGE_TRANSFER_DST_BIT usage flag
• [[VUID-{refpage}-dstImage-00225]] If dstImage is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• [[VUID-{refpage}-dstImageLayout-00226]] dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a Device
• [[VUID-{refpage}-dstImageLayout-01399]] dstImageLayout must be IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or IMAGE_LAYOUT_GENERAL
• [[VUID-{refpage}-srcImage-00229]] If either of srcImage or dstImage was created with a signed integer Format, the other must also have been created with a signed integer Format
• [[VUID-{refpage}-srcImage-00230]] If either of srcImage or dstImage was created with an unsigned integer Format, the other must also have been created with an unsigned integer Format
• [[VUID-{refpage}-srcImage-00231]] If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
• [[VUID-{refpage}-srcImage-00232]] If srcImage was created with a depth/stencil format, filter must be FILTER_NEAREST
• [[VUID-{refpage}-srcImage-00233]] srcImage must have been created with a samples value of SAMPLE_COUNT_1_BIT
• [[VUID-{refpage}-dstImage-00234]] dstImage must have been created with a samples value of SAMPLE_COUNT_1_BIT
• [[VUID-{refpage}-filter-02001]] If filter is FILTER_LINEAR, then the format features of srcImage must contain FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
• [[VUID-{refpage}-filter-02002]] If filter is FILTER_CUBIC_EXT, then the format features of srcImage must contain FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
• [[VUID-{refpage}-filter-00237]] If filter is FILTER_CUBIC_EXT, srcImage must be of type IMAGE_TYPE_2D
• [[VUID-{refpage}-srcSubresource-01705]] The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when srcImage was created
• [[VUID-{refpage}-dstSubresource-01706]] The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when dstImage was created
• [[VUID-{refpage}-srcSubresource-01707]] The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when srcImage was created
• [[VUID-{refpage}-dstSubresource-01708]] The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when dstImage was created
• [[VUID-{refpage}-dstImage-02545]] dstImage and srcImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXT
• [[VUID-{refpage}-srcImage-00240]] If either srcImage or dstImage is of type IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1.
• [[VUID-{refpage}-aspectMask-00241]] For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
• [[VUID-{refpage}-aspectMask-00242]] For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
• [[VUID-{refpage}-srcOffset-00243]] For each element of pRegions, srcOffset[0].x and srcOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
• [[VUID-{refpage}-srcOffset-00244]] For each element of pRegions, srcOffset[0].y and srcOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
• [[VUID-{refpage}-srcImage-00245]] If srcImage is of type IMAGE_TYPE_1D, then for each element of pRegions, srcOffset[0].y must be 0 and srcOffset[1].y must be 1
• [[VUID-{refpage}-srcOffset-00246]] For each element of pRegions, srcOffset[0].z and srcOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
• [[VUID-{refpage}-srcImage-00247]] If srcImage is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, srcOffset[0].z must be 0 and srcOffset[1].z must be 1
• [[VUID-{refpage}-dstOffset-00248]] For each element of pRegions, dstOffset[0].x and dstOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
• [[VUID-{refpage}-dstOffset-00249]] For each element of pRegions, dstOffset[0].y and dstOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
• [[VUID-{refpage}-dstImage-00250]] If dstImage is of type IMAGE_TYPE_1D, then for each element of pRegions, dstOffset[0].y must be 0 and dstOffset[1].y must be 1
• [[VUID-{refpage}-dstOffset-00251]] For each element of pRegions, dstOffset[0].z and dstOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
• [[VUID-{refpage}-dstImage-00252]] If dstImage is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, dstOffset[0].z must be 0 and dstOffset[1].z must be 1

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
• pNext must be NULL
• srcImage must be a valid Image handle
• srcImageLayout must be a valid ImageLayout value
• dstImage must be a valid Image handle
• dstImageLayout must be a valid ImageLayout value
• pRegions must be a valid pointer to an array of regionCount valid ImageBlit2KHR structures
• filter must be a valid Filter value
• regionCount must be greater than 0
• Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same Device

Filter, Image, ImageBlit2KHR, ImageLayout, StructureType, cmdBlitImage2KHR

Constructors

 BlitImageInfo2KHR FieldssrcImage :: ImagesrcImage is the source image.srcImageLayout :: ImageLayoutsrcImageLayout is the layout of the source image subresources for the blit.dstImage :: ImagedstImage is the destination image.dstImageLayout :: ImageLayoutdstImageLayout is the layout of the destination image subresources for the blit.regions :: Vector ImageBlit2KHRpRegions is a pointer to an array of ImageBlit2KHR structures specifying the regions to blit.filter' :: Filterfilter is a Filter specifying the filter to apply if the blits require scaling.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodsshowList :: [BlitImageInfo2KHR] -> ShowS # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 MethodswithZeroCStruct :: (Ptr BlitImageInfo2KHR -> IO b) -> IO b Source # Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

VkCopyBufferToImageInfo2KHR - Structure specifying parameters of a buffer to image copy command

## Valid Usage

• srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
• The image region specified by each element of pRegions must be a region that is contained within dstImage if the dstImage’s Format is not a multi-planar format, and must be a region that is contained within the plane being copied to if the dstImage’s Format is a multi-planar format
• 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 with BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
• The format features of dstImage must contain FORMAT_FEATURE_TRANSFER_DST_BIT
• If srcBuffer is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• dstImage must have been created with IMAGE_USAGE_TRANSFER_DST_BIT usage flag
• If dstImage is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• dstImage must have a sample count equal to SAMPLE_COUNT_1_BIT
• dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a Device
• dstImageLayout must be IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, IMAGE_LAYOUT_GENERAL, or IMAGE_LAYOUT_SHARED_PRESENT_KHR
• The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when dstImage was created
• The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when dstImage was created
• The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in QueueFamilyProperties
• dstImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXT
• If the queue family used to create the CommandPool which commandBuffer was allocated from does not support QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
• If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
• If the queue family used to create the CommandPool which commandBuffer was allocated from does not support QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be IMAGE_ASPECT_DEPTH_BIT or IMAGE_ASPECT_STENCIL_BIT.
• If dstImage 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 dstImage 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 the aspectMask of the imageSubresource as defined in ???
• For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage 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, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage 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 is of type IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
• For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage
• If dstImage is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
• If dstImage is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width
• If dstImage is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height
• If dstImage is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block
• If dstImage is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes
• If dstImage 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 specified imageSubresource of dstImage
• If dstImage 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 specified imageSubresource of dstImage
• If dstImage 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 specified imageSubresource of dstImage
• For each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
• If dstImage has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT, or IMAGE_ASPECT_PLANE_2_BIT (with IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)
• If dstImage is of type IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
• pNext must be NULL
• srcBuffer must be a valid Buffer handle
• dstImage must be a valid Image handle
• dstImageLayout must be a valid ImageLayout value
• pRegions must be a valid pointer to an array of regionCount valid BufferImageCopy2KHR structures
• regionCount must be greater than 0
• Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same Device

Buffer, BufferImageCopy2KHR, Image, ImageLayout, StructureType, cmdCopyBufferToImage2KHR

Constructors

 CopyBufferToImageInfo2KHR FieldssrcBuffer :: BuffersrcBuffer is the source buffer.dstImage :: ImagedstImage is the destination image.dstImageLayout :: ImageLayoutdstImageLayout is the layout of the destination image subresources for the copy.regions :: Vector BufferImageCopy2KHRpRegions is a pointer to an array of BufferImageCopy2KHR structures specifying the regions to copy.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

VkCopyImageToBufferInfo2KHR - Structure specifying parameters of a image to buffer copy command

## Valid Usage

• dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
• The image region specified by each element of pRegions must be a region that is contained within srcImage if the srcImage’s Format is not a multi-planar format, and must be a region that is contained within the plane being copied if the srcImage’s Format is a multi-planar format
• 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 with IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
• The format features of srcImage must contain FORMAT_FEATURE_TRANSFER_SRC_BIT
• If srcImage is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• dstBuffer must have been created with BUFFER_USAGE_TRANSFER_DST_BIT usage flag
• If dstBuffer is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• srcImage must have a sample count equal to SAMPLE_COUNT_1_BIT
• srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a Device
• srcImageLayout must be IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, IMAGE_LAYOUT_GENERAL, or IMAGE_LAYOUT_SHARED_PRESENT_KHR
• The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when srcImage was created
• The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when srcImage was created
• The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in QueueFamilyProperties
• srcImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXT
• If the queue family used to create the CommandPool which commandBuffer was allocated from does not support QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
• If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
• 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 the aspectMask of the imageSubresource as defined in ???
• For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of {imageparam} 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, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of {imageparam} 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} is of type IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
• For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam}
• If {imageparam} is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
• 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 of imageOffset 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 specified imageSubresource 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 specified imageSubresource 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 specified imageSubresource 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 be IMAGE_ASPECT_PLANE_0_BIT, IMAGE_ASPECT_PLANE_1_BIT, or IMAGE_ASPECT_PLANE_2_BIT (with IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)
• If {imageparam} is of type IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
• pNext must be NULL
• srcImage must be a valid Image handle
• srcImageLayout must be a valid ImageLayout value
• dstBuffer must be a valid Buffer handle
• pRegions must be a valid pointer to an array of regionCount valid BufferImageCopy2KHR structures
• regionCount must be greater than 0
• Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same Device

Buffer, BufferImageCopy2KHR, Image, ImageLayout, StructureType, cmdCopyImageToBuffer2KHR

Constructors

 CopyImageToBufferInfo2KHR FieldssrcImage :: ImagesrcImage is the source image.srcImageLayout :: ImageLayoutsrcImageLayout is the layout of the source image subresources for the copy.dstBuffer :: BufferdstBuffer is the destination buffer.regions :: Vector BufferImageCopy2KHRpRegions is a pointer to an array of BufferImageCopy2KHR structures specifying the regions to copy.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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 single DeviceMemory object
• srcImage must have a sample count equal to any valid sample count value other than SAMPLE_COUNT_1_BIT
• If dstImage is non-sparse then it must be bound completely and contiguously to a single DeviceMemory object
• dstImage must have a sample count equal to SAMPLE_COUNT_1_BIT
• srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a Device
• srcImageLayout must be IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or IMAGE_LAYOUT_GENERAL
• dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a Device
• dstImageLayout must be IMAGE_LAYOUT_SHARED_PRESENT_KHR, IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or IMAGE_LAYOUT_GENERAL
• The format features of dstImage must contain FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
• srcImage and dstImage must have been created with the same image format
• The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when srcImage was created
• The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in ImageCreateInfo when dstImage was created
• The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when srcImage was created
• The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in ImageCreateInfo when dstImage was created
• dstImage and srcImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXT
• If either srcImage or dstImage are of type IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
• If either srcImage or dstImage are of type IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
• For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
• For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
• If srcImage is of type IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
• For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
• If srcImage is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
• For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
• For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
• If dstImage is of type IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
• For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
• If dstImage is of type IMAGE_TYPE_1D or IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1

## Valid Usage (Implicit)

• sType must be STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
• pNext must be NULL
• srcImage must be a valid Image handle
• srcImageLayout must be a valid ImageLayout value
• dstImage must be a valid Image handle
• dstImageLayout must be a valid ImageLayout value
• pRegions must be a valid pointer to an array of regionCount valid ImageResolve2KHR structures
• regionCount must be greater than 0
• Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same Device

Image, ImageLayout, ImageResolve2KHR, StructureType, cmdResolveImage2KHR

Constructors

 ResolveImageInfo2KHR FieldssrcImage :: ImagesrcImage is the source image.srcImageLayout :: ImageLayoutsrcImageLayout is the layout of the source image subresources for the resolve.dstImage :: ImagedstImage is the destination image.dstImageLayout :: ImageLayoutdstImageLayout is the layout of the destination image subresources for the resolve.regions :: Vector ImageResolve2KHRpRegions is a pointer to an array of ImageResolve2KHR structures specifying the regions to resolve.

#### Instances

Instances details
 Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods Source # Instance detailsDefined in Vulkan.Extensions.VK_KHR_copy_commands2 Methods

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 #