Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.5.0
-
None
Description
1) using QVulkanWindow class, there is an issue that this class creates the swapchain images by itself. We need ability set usage flags on those images during creation in order to enable Blit and Copy operations. In function 'void QVulkanWindowPrivate::recreateSwapChain()' there is setting of usage flags to VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT and VK_IMAGE_USAGE_TRANSFER_SRC_BIT, which allows copy/blit from. But it does not allow copy/blit to. It needs to include VK_IMAGE_USAGE_TRANSFER_DST_BIT flag
2) QVulkanWindow creates "double-buffered FIFO swapchain", but we want option to select 3 buffer Mailbox swapchain 'VK_PRESENT_MODE_MAILBOX_KHR'
3) in "void QVulkanWindowPrivate::recreateSwapChain()" at the beginning it calls "devFuncs->vkDeviceWaitIdle(dev);", but this does not work properly in multithreaded environment where multiple queues are doing work in different threads, please change to "devFuncs->vkQueueWaitIdle(graphicsQueue);"
do not use vkDeviceWaitIdle anywhere except very end of resource release