Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.8, 6.9, 6.10, 6.11
-
None
-
eab1295c8 (dev), c01badcf6 (6.10)
Description
vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x140000000014) is being signaled by VkQueue 0x1dd34c87b50, but it may still be in use by VkSwapchainKHR 0x90000000009.
Here are the most recently acquired image indices: 2, 1, 0, 0, 1, [0], 1, 2.
(brackets mark the last use of VkSemaphore 0x140000000014 in a presentation operation)
Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x140000000014 may still be in use and cannot be safely reused with image index 2.
Vulkan insight: One solution is to assign each image its own semaphore. Here are some common methods to ensure that a semaphore passed to vkQueuePresentKHR is not in use and can be safely reused:
a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image.
b) Consider the VK_EXT_swapchain_maintenance1 extension. It allows using a VkFence with the presentation operation.
The Vulkan spec states: Each binary semaphore element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device (https://vulkan.lunarg.com/doc/view/1.4.313.2/windows/antora/spec/latest/chapters/cmdbuffers.html#VUID-vkQueueSubmit-pSignalSemaphores-00067)
Vulkan SDK 1.4.313.2 (not present with validation layers bundled with 1.4.304.0)
Attachments
For Gerrit Dashboard: QTBUG-137986 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
656323,1 | rhi: vulkan: Avoid VUID-vkQueueSubmit-pSignalSemaphores-00067 | 6.9 | qt/qtbase | Status: NEW | +2 | 0 |
655229,4 | rhi: vulkan: Avoid VUID-vkQueueSubmit-pSignalSemaphores-00067 | dev | qt/qtbase | Status: MERGED | +2 | 0 |
656202,2 | rhi: vulkan: Avoid VUID-vkQueueSubmit-pSignalSemaphores-00067 | 6.10 | qt/qtbase | Status: MERGED | +2 | 0 |