Vulkan Is Now Available On macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac
Two years and a few days since the Vulkan 1.0 release is now marked by a new significant milestone for this cross-platform graphics/compute API... It's not a new Vulkan release today, but Vulkan is now available on Apple's iOS and macOS platforms! Here are the details with the embargo just expiring on Vulkan now on macOS/iOS but still without the official support from Apple.
Apple sadly still isn't supporting Vulkan officially, but The Khronos Group is now able to get behind Vulkan on macOS/iOS. Up to now there's been the MoltenVK library to run Vulkan on iOS/OSX operating systems. That library has been proprietary and commercially licensed while developed by Brenwill Workshop Ltd. Now, thanks to an arrangement with Valve, MoltenVK is being open-sourced under the Apache 2.0 license and will be available to all. The Khronos Group in our briefing didn't elaborate or purport to know the specifics of how this came about, just that Valve is to thank for their negotiations with Brenwill... I would presume a lucrative financial arrangement from Valve is to thank for that small company now opening up their code for mapping Vulkan on top of Metal. That code will continue to be open-source moving forward and thus a cataclysmic shift now that Vulkan is easily available for macOS, complementing Vulkan's existing support for Windows, Linux and Android. MoltenVK is basically a library that Apple programs can now build against that allows the use of Vulkan APIs while is then mapped to Apple's low-level Metal graphics API.
Also playing a big role in this Vulkan to Apple platforms is LunarG who has ported their Vulkan SDK to macOS. Most functionality should be working today for this macOS Vulkan SDK, but support for a few remaining features/functions will be taken care of over the coming weeks. The MoltenVK library also relies upon the open-source SPIR-V cross-compiler for turning Vulkan/SPIR-V shaders into compatible native code formats for execution with the Metal API.
Given Valve's heavy involvement in getting Vulkan to macOS, it's no surprise they effectively have a launch title... Dota 2 will be able to use Vulkan on macOS! Valve has found extremely promising performance results for Dota 2 on Vulkan rather than OpenGL, as shown below. Valve hasn't yet communicated when that Vulkan-ized macOS Dota 2 build will go public, but hopefully soon. This is a big performance win for macOS gamers. Valve will be making an announcement of their own this morning.
In terms of what is supported by Vulkan on macOS, almost all functionality! The missing pieces are just triangle fans, separate stencil reference masks, Vulkan event functionality, only a limited set of texture-specific swizzles are supported, and allocation callbacks for object creation functions are not currently supported.
The Khronos Group members working on Vulkan are also still involved in getting the API running on top of Direct3D 12 too, but today is just about the Vulkan 1.0 for Mac news. It will certainly be interesting to see what comes of this and how the adoption goes now that macOS developers can freely and easily make use of Vulkan there now too. This is hopefully good news too if game studios begin making use of Vulkan on Mac and thereby increasing support for this graphics API and Linux stands to benefit too. Wine should also be another important benefactor of this work with now being able to leverage Vulkan on macOS as part of bringing Direct3D 12 over Vulkan, etc. Interesting times ahead and let's not forget about GDC happening next month!
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.