The Vulkan® Portability Initiative is developing specifications, open-source libraries and tools, together with conformance tests, to define and evolve the subset of Vulkan capabilities that can be made universally available at native performance levels across all major platforms, including those not currently served by Vulkan native drivers.
As a first deliverable from the Vulkan Portability Initiative, Khronos members Valve, LunarG, and The Brenwill Workshop have released a collection of free and open source set of tools, SDKs, and runtime libraries to enable Vulkan development on macOS and deployment on macOS and iOS platforms. See the Press Release for the Vulkan macOS and iOS tools.
LunarG Vulkan SDK for macOS: LunarG offers the Vulkan SDK for macOS on LunarXchange, enabling developers to build, run, and debug their Vulkan applications on macOS.
“With MoltenVK, we've worked hard to bring a consistent Vulkan-based API to macOS and iOS while maintaining the performance improvements required by modern game developers," said Bill Hollings, President of The Brenwill Workshop.
To test and exercise the macOS tools, Valve has extended Dota 2 to use Vulkan and port that version to macOS. This port has achieved significantly higher performance than the native Apple OpenGL® drivers. Vulkan support for Dota 2 on macOS will be released in the coming months as a free update.
“We have been running substantial production loads through the Vulkan tools on Mac, including Dota 2 which is now running faster than the native OpenGL version,” said Pierre-Loup Griffais at Valve. “These efforts are aimed toward reducing development and porting costs for any developer supporting multiple platforms.”
The Vulkan Portability Initiative has been working to discover how to efficiently map Vulkan functionality to underlying native Metal and DX12 drivers at native performance levels. The good news is that very little functionality had to be removed from the portable subset:
Additionally, not all subset features will be removed on all platforms, and supported features will typically be increased over time as underlying platform capabilities increase.
The Khronos Vulkan Portability Initiative will continue to refine and define the universally portable subset, and continue to strengthen the infrastructure and tooling around bringing Vulkan capabilities to multiple Metal and DX12 platforms - our long-term goal is to enable portable Vulkan code to be executed on any platform that developers care about.