Is it possible to draw texture (if it is with correct width, height and pixel format) directly to frame buffer without using vertices and shaders in Vulkan?
Vulkan - draw texture directly without vertices and shaders
You can do a vkCmdCopyImage
to copy from your vkImage
to a swapchain's vkImage
provided the vkSurface
supports being a TRANSFER_DST
as by the supportedUsageFlags
field from the result of vkGetPhysicalDeviceSurfaceCapabilitiesKHR
.
Otherwise you need to do a fullscreen render and grab the color data from the input image as a sampled texture or input attachment.
You can also use
vkCmdBlitImage
if you want scaling, filtering or format conversions as well. vkCmdCopyImage
just straight up takes a copy of the memory, which isn't always useful. –
Postrider But note that this requires the source format to support the
VK_FORMAT_FEATURE_BLIT_SRC_BIT
and the destination format to support the VK_FORMAT_FEATURE_BLIT_DST_BIT
. This may not always be the case, so if you're going to use a blit, check these first. –
Blinker © 2022 - 2024 — McMap. All rights reserved.
vkCmdCopy*
commands are what you want. Most small samples show how to draw with indices and vertices, not direct texture copies. I have asked questions, which had sections in the documentation that could answer them, but I did not find them. – Buchner