vulkano-rs / vulkano

Safe and rich Rust wrapper around the Vulkan API
Apache License 2.0
4.45k stars 435 forks source link

Pass timeout to acquire #2503

Closed hakolao closed 5 months ago

hakolao commented 5 months ago

It seems that (at least on windows), the timeout param is required. Min 2 Swapchain images is also.

https://github.com/hakolao/egui_winit_vulkano/issues/61

VUID-vkAcquireNextImageKHR-surface-07783(ERROR / SPEC): msgNum: -1391585802 - Validation Error: [ VUID-vkAcquireNextImageKHR-surface-07783 ] Object 0: handle = 0xcb1c7c000000001b, type = VK_OBJECT_TYPE_SWAPCHAIN_KHR; | 
MessageID = 0xad0e15f6 | vkAcquireNextImageKHR: Application has already previously acquired 1 image from swapchain. Only 1 is available to be acquired using a timeout of UINT64_MAX (given the swapchain has 2, and VkSurfaceCapabilitiesKHR::minImageCount is 2). 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://vulkan.lunarg.com/doc/view/1.3.243.0/windows/1.3-extensions/vkspec.html#VUID-vkAcquireNextImageKHR-surface-07783)
    Objects: 1
        [0] 0xcb1c7c000000001b, type: 1000001000, name: NULL

So thus changing the acquire api to let user to pass the timeout param.