Function Prototype

vkCmdBlitImage2

Copy regions of an image, potentially performing format conversion,

To copy regions of a source image into a destination image, potentially performing format conversion, arbitrary scaling, and filtering, call:

void vkCmdBlitImage2(
    VkCommandBuffer commandBuffer,
    const VkBlitImageInfo2* pBlitImageInfo);
void vkCmdBlitImage2KHR(
    VkCommandBuffer commandBuffer,
    const VkBlitImageInfo2* pBlitImageInfo);
  • commandBuffer is the command buffer into which the command will be recorded.
  • pBlitImageInfo is a pointer to a VkBlitImageInfo2 structure describing the blit parameters.

This command is functionally identical to vkCmdBlitImage, but includes extensible sub-structures that include sType and pNext parameters, allowing them to be more easily extended.

Valid Usage

VUID-vkCmdBlitImage2-commandBuffer-01834

If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image

VUID-vkCmdBlitImage2-commandBuffer-01835

If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image

VUID-vkCmdBlitImage2-commandBuffer-01836

If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image

Valid Usage (Implicit)

VUID-vkCmdBlitImage2-pBlitImageInfo-parameter

pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure

VUID-vkCmdBlitImage2-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_GRAPHICS_BIT operations

VUID-vkCmdBlitImage2-renderpass

This command must only be called outside of a render pass instance

VUID-vkCmdBlitImage2-suspended

This command must not be called between suspended render pass instances

VUID-vkCmdBlitImage2-videocoding

This command must only be called outside of a video coding scope

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized