vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_copy_commands2

Description

Name

VK_KHR_copy_commands2 - device extension

VK_KHR_copy_commands2

Name String
VK_KHR_copy_commands2
Extension Type
Device extension
Registered Extension Number
338
Revision
1
Extension and Version Dependencies
  • Requires Vulkan 1.0
Contact

Other Extension Metadata

Last Modified Date
2020-07-06
Interactions and External Dependencies
  • None
Contributors
  • Jeff Leger, Qualcomm
  • Tobias Hector, AMD
  • Jan-Harald Fredriksen, ARM
  • Tom Olson, ARM

Description

This extension provides extensible versions of the Vulkan buffer and image copy commands. The new commands are functionally identical to the core commands, except that their copy parameters are specified using extensible structures that can be used to pass extension-specific information.

The following extensible copy commands are introduced with this extension: cmdCopyBuffer2KHR, cmdCopyImage2KHR, cmdCopyBufferToImage2KHR, cmdCopyImageToBuffer2KHR, cmdBlitImage2KHR, and cmdResolveImage2KHR. Each command 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

New Structures

New Enum Constants

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

Documentation

cmdCopyBuffer2KHR Source #

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)

  • 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

See Also

CommandBuffer, CopyBufferInfo2KHR

cmdCopyImage2KHR Source #

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)

  • 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

See Also

CommandBuffer, CopyImageInfo2KHR

cmdBlitImage2KHR Source #

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)

  • 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

See Also

BlitImageInfo2KHR, CommandBuffer

cmdCopyBufferToImage2KHR Source #

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)

  • 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

See Also

CommandBuffer, CopyBufferToImageInfo2KHR

cmdCopyImageToBuffer2KHR Source #

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)

  • 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

See Also

CommandBuffer, CopyImageToBufferInfo2KHR

cmdResolveImage2KHR Source #

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)

  • 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

See Also

CommandBuffer, ResolveImageInfo2KHR

data BufferCopy2KHR Source #

VkBufferCopy2KHR - Structure specifying a buffer copy operation

Valid Usage

  • The size must be greater than 0

Valid Usage (Implicit)

  • pNext must be NULL

See Also

CopyBufferInfo2KHR, DeviceSize, StructureType

Constructors

BufferCopy2KHR 

Fields

Instances

Instances details
Eq BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Show BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Storable BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

FromCStruct BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

ToCStruct BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Zero BufferCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

data ImageCopy2KHR Source #

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)

See Also

CopyImageInfo2KHR, Extent3D, ImageSubresourceLayers, Offset3D, StructureType

Constructors

ImageCopy2KHR 

Fields

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

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

Valid Usage (Implicit)

See Also

BlitImageInfo2KHR, ImageSubresourceLayers, Offset3D, StructureType

Constructors

ImageBlit2KHR 

Fields

Instances

Instances details
Extensible ImageBlit2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Methods

extensibleType :: StructureType Source #

getNext :: forall (es :: [Type]). ImageBlit2KHR es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [Type]). ImageBlit2KHR ds -> Chain es -> ImageBlit2KHR es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b Source #

Show (Chain es) => Show (ImageBlit2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

(Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

(Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

es ~ ('[] :: [Type]) => Zero (ImageBlit2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Methods

zero :: ImageBlit2KHR es Source #

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

  • 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)

See Also

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

Constructors

BufferImageCopy2KHR 

Fields

  • next :: Chain es

    pNext is NULL or a pointer to a structure extending this structure.

  • bufferOffset :: DeviceSize

    bufferOffset is the offset in bytes from the start of the buffer object where the image data is copied from or to.

  • bufferRowLength :: Word32

    bufferRowLength 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 :: ImageSubresourceLayers

    imageSubresource is a ImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.

  • imageOffset :: Offset3D

    imageOffset selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data.

  • imageExtent :: Extent3D

    imageExtent is the size in texels of the image to copy in width, height and depth.

Instances

Instances details
Extensible BufferImageCopy2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Methods

extensibleType :: StructureType Source #

getNext :: forall (es :: [Type]). BufferImageCopy2KHR es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [Type]). BufferImageCopy2KHR ds -> Chain es -> BufferImageCopy2KHR es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b Source #

Show (Chain es) => Show (BufferImageCopy2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

(Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

(Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

es ~ ('[] :: [Type]) => Zero (BufferImageCopy2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

data ImageResolve2KHR Source #

VkImageResolve2KHR - Structure specifying an image resolve operation

Valid Usage

  • The layerCount member of srcSubresource and dstSubresource must match

Valid Usage (Implicit)

See Also

Extent3D, ImageSubresourceLayers, Offset3D, ResolveImageInfo2KHR, StructureType

Constructors

ImageResolve2KHR 

Fields

Instances

Instances details
Show ImageResolve2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Storable ImageResolve2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

FromCStruct ImageResolve2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

ToCStruct ImageResolve2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

Zero ImageResolve2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_copy_commands2

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 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)

  • 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

See Also

Buffer, BufferCopy2KHR, StructureType, cmdCopyBuffer2KHR

Constructors

CopyBufferInfo2KHR 

Fields

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 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)

  • 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

See Also

Image, ImageCopy2KHR, ImageLayout, StructureType, cmdCopyImage2KHR

Constructors

CopyImageInfo2KHR 

Fields

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 within srcImage
  • The destination region specified by each element of pRegions must be a region that is contained within dstImage
  • 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 contain FORMAT_FEATURE_BLIT_SRC_BIT
  • srcImage must not use a format listed in ???
  • srcImage must have been created with IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
  • If srcImage is non-sparse then it 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_SHARED_PRESENT_KHR, IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or IMAGE_LAYOUT_GENERAL
  • The format features of dstImage must contain FORMAT_FEATURE_BLIT_DST_BIT
  • dstImage must not use a format listed in ???
  • 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
  • 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
  • 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
  • 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
  • If either of srcImage or dstImage 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 be FILTER_NEAREST
  • srcImage must have been created with a samples value of SAMPLE_COUNT_1_BIT
  • dstImage must have been created with a samples value of SAMPLE_COUNT_1_BIT
  • If filter is FILTER_LINEAR, then the format features of srcImage must contain FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
  • If filter is FILTER_CUBIC_EXT, then the format features of srcImage must contain FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
  • If filter is FILTER_CUBIC_EXT, srcImage must be of type IMAGE_TYPE_2D
  • 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 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.
  • 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[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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be a block-compressed image.
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type IMAGE_TYPE_2D and must not be a multi-planar format.

Valid Usage (Implicit)

  • 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

See Also

Filter, Image, ImageBlit2KHR, ImageLayout, StructureType, cmdBlitImage2KHR

Constructors

BlitImageInfo2KHR 

Fields

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 contain CopyCommandTransformInfoQCOM in its pNext chain, it 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
  • If the image region specified by each element of pRegions does contain CopyCommandTransformInfoQCOM in its pNext 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 within dstImage.
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must not be a blocked image.
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must be of type IMAGE_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 of pRegions
  • 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.
  • For each element of pRegions not containing CopyCommandTransformInfoQCOM in its pNext chain, , 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 not containing CopyCommandTransformInfoQCOM in its pNext chain, , 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 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 ???
  • 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)

  • 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

See Also

Buffer, BufferImageCopy2KHR, Image, ImageLayout, StructureType, cmdCopyBufferToImage2KHR

Constructors

CopyBufferToImageInfo2KHR 

Fields

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 contain CopyCommandTransformInfoQCOM in its pNext chain, it 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
  • If the image region specified by each element of pRegions does contain CopyCommandTransformInfoQCOM in its pNext 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 within srcImage.
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must not be a blocked image
  • If any element of pRegions contains CopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type IMAGE_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 of pRegions
  • 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
  • For each element of pRegions not containing CopyCommandTransformInfoQCOM in its pNext chain, , 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 srcImage 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 containing CopyCommandTransformInfoQCOM in its pNext chain, , 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 srcImage 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 the aspectMask of the imageSubresource as defined in ???
  • 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)

  • 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

See Also

Buffer, BufferImageCopy2KHR, Image, ImageLayout, StructureType, cmdCopyImageToBuffer2KHR

Constructors

CopyImageToBufferInfo2KHR 

Fields

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 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)

  • 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

See Also

Image, ImageLayout, ImageResolve2KHR, StructureType, cmdResolveImage2KHR

Constructors

ResolveImageInfo2KHR 

Fields

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 #