Skip to content

zink, kopper: kopper support for MacOS Metal WSI.

Duncan Hopkins requested to merge duncan.hopkins/mesa:dlh/zink_moltenvk_wsi into main

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.

Merge request reports

Loading