Is it recommended to use vkCmdCopyImage to copy to the swapchain image instead of a shader?

I have a background image that has the same size and format as my swapchain image.
Currently, I’m using a simple direct copy shader pass to copy the background image to the swapchain image.

I’m wondering if there’s any faster or more efficient way to do this. I considered using vkCmdCopyImage, but it seems the render pass can’t have both VK_IMAGE_LAYOUT_PRESENT_SRC_KHR and VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL as the final layout for the swapchain image.

What’s the recommended approach for this case?

Most vendors recommend you draw the image onto the final output using a fullscreen triangle.

1 Like