I'm really not sure about this. It's possible to have multiple D3D swapchains at the same time for the same window, or D3D *and* Vulkan, and the last one to present being the one visible. All this will end up with multiple VkSurfaceKHR created for the same window and I believe we need to use multiple wl_surface? Are we really only returning SUBOPTIMAL and are the games really recreating VkSurfaceKHR when seeing that result? Wouldn't that only require to recreate the swapchain? Fwiw, if Wayland really returns SUBOPTIMAL right after a swapchain creation when it is first used, and if applications are known to recreate surfaces entirely, it seems to me that this whole issue is a severe problem with Wayland Vulkan WSI implementation, and that it needs to be fixed there, not in Wine. And swapchains being SUBOPTIMAL right on creation seems like a bad choice in the first place. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11342#note_145140