Retiring Swapchain with Vulkan on Linux causes swapchain image acquisition timeout

Passing an existing valid swapchain to the oldSwapchain parameter of VkSwapchainCreateInfoKHR causes a timeout with vkAcquireNextImageKHR.

Here is an example self contained program. Resizing the surface is the most common case of needing to recreate the swapchain, so resizing triggers the swapchain resize in this example. Comment out the linked line and the program works perfectly fine with Linux. Compiling and running the same program listed here on Windows works fine without commenting this line.

From outside observation it looks like internally the driver uses the remaining swapchain images in the previous swapchain before switching to the newly created one. However, it doesn’t seem to actually switch to the new swapchain and therefore times out acquiring the next swapchain image for the new swapchain. I guess this is the case because it acquires a couple more swapchain images before it hits the timeout.

nvidia-bug-report.log.gz (409.2 KB)

Bumping since this may have been lost.