I can probably do this MR in win32u but I have the feeling that wrapping swapchains, even with compositing in mind, will be better in winevulkan anyway.
As winevulkan already links with win32u it'll be easier to export some functions from win32u for winevulkan to use them to implement compositing than the other way around if we need to access any other related structures such as the surface's device, physical device and so on.
I don't think we should see winevulkan unix side and win32u unix side as truly separate things, they both implement the kernel-side of some part of the window graphics stack, but unless we want to merge all of winevulkan unix side into win32u, they have to be split.
Imo the same thing would go with the opengl driver, as even if it is simpler -we don't wrap so many things- you can see for now every single GL function has to be exposed from the win32u driver to opengl. I think we could move that to be more contained in opengl32.so, with a smaller interface between opengl and win32u.