zink, kopper: kopper support for MacOS Metal WSI.
zink, kopper: kopper support for MacOS Metal WSI.
Vulkan/MoltenVK on MacOS only supports VK_EXT_metal_surface (which is missing from kopper) and not VK_KHR_xcb_surface (which is needed to use the xquartz resource handles).
Most of the changes add general support for Metal WSI. The one bit that is a problem, and is an intentional hack until a better solution is found, is the MacOS CALayer* pLayer required by VkMetalSurfaceCreateInfoEXT. The gitlab.freedesktop.org:mesa/demos.git was recently updated with code to also support MacOS Metal, by manually creating a floating MacOS Window and CALayer, it allows VkMetalSurfaceCreateInfoEXT to work. A similar thing has been done here: creates a floating window, even though we have a parent window handle, as there is no obvious way to get MacOS level handles (NSView, NSWindow, etc.) needed to nest a Metal supporting CALayer inside the xquartz supplied window. This does result in both an xquartz windows and a kopper/WSI window being active at the same time, but allows for WSI display of Zink/kopper rendered pixels.