This is some preparatory work for vulkan child window and other features which currently live in Proton. I think this could be upstream already, and it will make rebasing patches on top of it simpler. To get vulkan child window upstream we'd probably still need to rework it a bit and maybe try to move the wait and blit to `vkQueuePresent` somehow.
The idea here is also that although Vulkan spec does not allow multiple active swapchains for the same window, Windows tends to allow it especially with D3D, and we also need to support the case where multiple APIs are use to draw onto the same window surface (as we implement D3D on top of GL/Vk for instance).
-- v3: winex11: Rename X11DRV_FLUSH_GL_DRAWABLE to X11DRV_PRESENT_DRAWABLE. winex11: Put detached client windows surfaces offscreen. winex11: Re-attach vulkan surfaces when images are acquired. winevulkan: Add vkAcquireNextImage(2)KHR driver entries. winex11: Resize detached vulkan surfaces when window is resized. winex11: Detach the vulkan surfaces when their HWND is destroyed. winex11: Detach vulkan client windows before destroying them. winex11: Introduce a new detach_client_window helper. winex11: Add traces to vulkan surface grab / release.