Paul Gofman (@gofman) commented about dlls/winex11.drv/vulkan.c:
return pvkGetSwapchainImagesKHR(device, swapchain, count, images); }
+static VkResult X11DRV_vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, + VkSemaphore semaphore, VkFence fence, uint32_t *image_index ) +{ + struct wine_vk_surface *surface; + struct x11drv_win_data *data; + + if (XFindContext( gdi_display, (XID)swapchain, vulkan_swapchain_context, (char **)&surface )) + return VK_ERROR_SURFACE_LOST_KHR; + + if ((data = get_win_data( surface->hwnd ))) + { + attach_client_window( data, surface->window );
Here we also probably need XSync(gdi_display...) unless doing that inside the function. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4533#note_54146