You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Latest Vulkan SDK results in validation errors related to vkQueueSubmit() and vkAcquireNextImageKHR() #486
I was able to run Mogwai with Vulkan without any problems using Vulkan SDK version 1.3.268.0. However, after I updated the Vulkan version to 1.4.335.0, I started receiving two errors which were repeating during execution:
(Error) GFX Error: Validation: error 0: vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x3c000000003c) is being signaled by VkQueue 0x1ae001098b0, but it may still be in use by VkSwapchainKHR 0x960000000096. Most recently acquired image indices: [0]. (Brackets mark the last use of VkSemaphore 0x3c000000003c in a presentation operation.) Swapchain image 0 was presented but was not re-acquired, so VkSemaphore 0x3c000000003c may still be in use. Vulkan insight: See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html for details on swapchain semaphore reuse. Examples of possible approaches: a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image. b) Consider the VK_KHR_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://docs.vulkan.org/spec/latest/chapters/cmdbuffers.html#VUID-vkQueueSubmit-pSignalSemaphores-00067)
and
(Error) GFX Error: Validation: error 0: vkAcquireNextImageKHR(): Semaphore must not have any pending operations. The Vulkan spec states: If semaphore is not VK_NULL_HANDLE, it must not have any uncompleted signal or wait operations pending (https://docs.vulkan.org/spec/latest/chapters/VK_KHR_surface/wsi.html#VUID-vkAcquireNextImageKHR-semaphore-01779)
I receive the same errors on the same computer when booting into linux, and also when running Falcor on a different computer with linux using the same Vulkan SDK version.
I believe the issue lies in slang-gfx. When I compile and run the slang example projects from this fork which corresponds to the slang version 2024.1.34 currently in use by Falcor, then I receive the same Vulkan errors. If I instead compile and run the example projects from version 2026.1, then the errors are gone thanks to the newest slang example projects making use of slang-rhi instead of slang-gfx.
When investigating my second error message, it seems to stem from the Vulkan implementation of gfx::ISwapchain in slang-gfx only making use of one single semaphore when acquiring the next image, which I believe is incorrect. When I experiment with the slang-gfx source code, then the error disappears if I create at least one semaphore per frame in flight. This discrepancy may point to a faulty Vulkan implementation in slang-gfx.
A possible solution could therefore be to update the slang version for Falcor, and replace the slang-gfx backend with slang-rhi.
Activity
SiTronXD commentedon Jan 19, 2026
I believe the issue lies in slang-gfx. When I compile and run the slang example projects from this fork which corresponds to the slang version 2024.1.34 currently in use by Falcor, then I receive the same Vulkan errors. If I instead compile and run the example projects from version 2026.1, then the errors are gone thanks to the newest slang example projects making use of slang-rhi instead of slang-gfx.
When investigating my second error message, it seems to stem from the Vulkan implementation of gfx::ISwapchain in slang-gfx only making use of one single semaphore when acquiring the next image, which I believe is incorrect. When I experiment with the slang-gfx source code, then the error disappears if I create at least one semaphore per frame in flight. This discrepancy may point to a faulty Vulkan implementation in slang-gfx.
A possible solution could therefore be to update the slang version for Falcor, and replace the slang-gfx backend with slang-rhi.