vkCopyImageToImageEXT does not check whether the device memory associated with srcImage or dstImage is currently in use before performing the copy. The application must guarantee that any previously submitted command that writes to the copy regions has completed before the host performs the copy.
srcImage and dstImage must have been created with identical image creation parameterssrcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource MemorysrcImage is accessed, and srcImage was not created with separate stencil usage, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usagesrcImage is accessed, and srcImage was created with separate stencil usage, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsagesrcImage are accessed, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usageflags contains HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the srcOffset member of each element of pRegions must be 0flags contains HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresourcesrcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory objectsrcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was createdsrcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions , if srcSubresource.layerCount is not REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was createdsrcImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXTpRegions must be contained within the specified srcSubresource of srcImagepRegions, 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 srcImagepRegions, 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 srcImagesrcImage is of type IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1pRegions, 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 srcImagesrcImage 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 1pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImagepRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImagepRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImagepRegions, if the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImagepRegions, if the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImagepRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of srcImagepRegions, srcSubresource.aspectMask must specify aspects present in srcImagesrcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bitsrcImage is of type IMAGE_TYPE_3D, for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource MemorydstImage is accessed, and dstImage was not created with separate stencil usage, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usagedstImage is accessed, and dstImage was created with separate stencil usage, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsagedstImage are accessed, the image must have been created with IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usageflags contains HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the dstOffset member of each element of pRegions must be 0flags contains HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresourcedstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory objectdstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was createddstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions , if dstSubresource.layerCount is not REMAINING_ARRAY_LAYERS and maintenance5 is not enabled, must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was createddstImage must not have been created with flags containing IMAGE_CREATE_SUBSAMPLED_BIT_EXTpRegions must be contained within the specified dstSubresource of dstImagepRegions, 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 dstImagepRegions, 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 dstImagedstImage is of type IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1pRegions, 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 dstImagedstImage 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 1pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImagepRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImagepRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImagepRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImagepRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImagepRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImagepRegions, dstSubresource.aspectMask must specify aspects present in dstImagedstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bitdstImage is of type IMAGE_TYPE_3D, for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1srcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegionsdstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegionssrcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayoutsdstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayoutssType must be STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXTpNext must be NULLflags must be a valid combination of VkHostImageCopyFlagBitsEXT valuessrcImage must be a valid VkImage handlesrcImageLayout must be a valid VkImageLayout valuedstImage must be a valid VkImage handledstImageLayout must be a valid VkImageLayout valuepRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structuresregionCount must be greater than 0dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDeviceVkImageCopy2, CopyImageToImageEXT
struct VkCopyImageToImageInfoEXT {
VkStructureType sType;
void const * pNext;
VkHostImageCopyFlagsEXT flags;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
VkImageCopy2 const * pRegions;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkCopyImageToImageInfoEXT.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | DSTIMAGE
The struct member offsets. |
| public static final int | DSTIMAGELAYOUT
The struct member offsets. |
| public static final int | FLAGS
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PREGIONS
The struct member offsets. |
| public static final int | REGIONCOUNT
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | SRCIMAGE
The struct member offsets. |
| public static final int | SRCIMAGELAYOUT
The struct member offsets. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkCopyImageToImageInfoEXT(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkCopyImageToImageInfoEXT | |
| public static VkCopyImageToImageInfoEXT. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkCopyImageToImageInfoEXT | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkCopyImageToImageInfoEXT. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| protected VkCopyImageToImageInfoEXT | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkCopyImageToImageInfoEXT | |
| public static VkCopyImageToImageInfoEXT | create(long address)
Returns a new |
| public static VkCopyImageToImageInfoEXT. | create(int
the buffer capacity capacity)Returns a new |
| public static VkCopyImageToImageInfoEXT. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkCopyImageToImageInfoEXT | |
| public static VkCopyImageToImageInfoEXT. | |
| public long | |
| public VkCopyImageToImageInfoEXT | |
| public int | |
| public VkCopyImageToImageInfoEXT | |
| public int | |
| public VkCopyImageToImageInfoEXT | |
| public static VkCopyImageToImageInfoEXT | |
| public static VkCopyImageToImageInfoEXT. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkCopyImageToImageInfoEXT | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkCopyImageToImageInfoEXT. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static long | |
| public static void | |
| public static VkImageCopy2. | |
| public static void | |
| public static int | |
| public static void | nregionCount(long struct, int value)
Sets the specified value to the |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public long | |
| public VkCopyImageToImageInfoEXT | |
| public VkImageCopy2. | |
| public VkCopyImageToImageInfoEXT | pRegions(VkImageCopy2.
Sets the address of the specified |
| public int | |
| public VkCopyImageToImageInfoEXT | set(int sType, long pNext, int flags, long srcImage, int srcImageLayout, long dstImage, int dstImageLayout, VkImageCopy2.
Initializes this struct with the specified values. |
| public VkCopyImageToImageInfoEXT | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public long | |
| public VkCopyImageToImageInfoEXT | |
| public int | |
| public VkCopyImageToImageInfoEXT | |
| public int | |
| public VkCopyImageToImageInfoEXT | |
| public VkCopyImageToImageInfoEXT | |
| public static void |