[GH-ISSUE #865] [Linux AMD] Crash when minimizing/going into fullscreen #239

Closed
opened 2026-02-27 21:05:18 +03:00 by kerem · 0 comments
Owner

Originally created by @LNDF on GitHub (Sep 10, 2024).
Original GitHub issue: https://github.com/shadps4-emu/shadPS4/issues/865

On Linux with RADV (AMD open source drivers) vkAcquireNextImage returns VK_TIMEOUT. when minimizing/going into fullscreen and the emulator crashes.

Additionaly the following validation layer errors show up on the logs.

[Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR():  Application has already previously acquired 2 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783)
[Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR():  Application has already previously acquired 3 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783)
[Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR():  Application has already previously acquired 4 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783)
[Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkQueueSubmit-pWaitSemaphores-03238: Validation Error: [ VUID-vkQueueSubmit-pWaitSemaphores-03238 ] Object 0: handle = 0xf000000000f, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0xb50452b0 | vkQueueSubmit(): pSubmits[0].pWaitSemaphores[0] queue (VkQueue 0x55a184e476b0[]) is waiting on semaphore (VkSemaphore 0xf000000000f[]) that has no way to be signaled. The Vulkan spec states: All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkQueueSubmit-pWaitSemaphores-03238)
[Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkQueueSubmit-pCommandBuffers-00065: Validation Error: [ VUID-vkQueueSubmit-pCommandBuffers-00065 ] Object 0: handle = 0x160000000016, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; Object 2: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x71565eaf | vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x160000000016[]) is being signaled by VkQueue 0x55a184e476b0[], but it was previously signaled by VkQueue 0x55a184e476b0[] and has not since been waited on. The Vulkan spec states: Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkQueueSubmit-pCommandBuffers-00065)
Originally created by @LNDF on GitHub (Sep 10, 2024). Original GitHub issue: https://github.com/shadps4-emu/shadPS4/issues/865 On Linux with RADV (AMD open source drivers) vkAcquireNextImage returns VK_TIMEOUT. when minimizing/going into fullscreen and the emulator crashes. Additionaly the following validation layer errors show up on the logs. ``` [Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR(): Application has already previously acquired 2 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783) [Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR(): Application has already previously acquired 3 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783) [Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkAcquireNextImageKHR-surface-07783: Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xa000000000a, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | MessageID = 0xad0e15f6 | vkAcquireNextImageKHR(): Application has already previously acquired 4 images from swapchain. Only 2 are available to be acquired using a timeout of UINT64_MAX (given the swapchain has 4, and VkSurfaceCapabilitiesKHR::minImageCount is 3). The Vulkan spec states: If forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783) [Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkQueueSubmit-pWaitSemaphores-03238: Validation Error: [ VUID-vkQueueSubmit-pWaitSemaphores-03238 ] Object 0: handle = 0xf000000000f, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0xb50452b0 | vkQueueSubmit(): pSubmits[0].pWaitSemaphores[0] queue (VkQueue 0x55a184e476b0[]) is waiting on semaphore (VkSemaphore 0xf000000000f[]) that has no way to be signaled. The Vulkan spec states: All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkQueueSubmit-pWaitSemaphores-03238) [Render.Vulkan] <Error> vk_platform.cpp:DebugUtilsCallback:69: VUID-vkQueueSubmit-pCommandBuffers-00065: Validation Error: [ VUID-vkQueueSubmit-pCommandBuffers-00065 ] Object 0: handle = 0x160000000016, type = VK_OBJECT_TYPE_SEMAPHORE; Object 1: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; Object 2: handle = 0x55a184e476b0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x71565eaf | vkQueueSubmit(): pSubmits[0].pSignalSemaphores[0] (VkSemaphore 0x160000000016[]) is being signaled by VkQueue 0x55a184e476b0[], but it was previously signaled by VkQueue 0x55a184e476b0[] and has not since been waited on. The Vulkan spec states: Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkQueueSubmit-pCommandBuffers-00065) ```
kerem closed this issue 2026-02-27 21:05:18 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#239
No description provided.