Portability Initiative Overview

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.

Tools and Libraries for Bringing Vulkan Applications to macOS and iOS

Tools and Libraries for Bringing Vulkan Applications to macOS and iOS

MoltenVK on Github: MoltenVK is a library which translates calls within the Vulkan graphics and compute API, to underlying calls to Apple's Metal API on both iOS and macOS.

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.

Vulkan Dota 2 on macOS

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.

Vulkan Dota 2 on macOS
“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 Portable Subset

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:

  • Triangle fans are not supported
  • Separate stencil reference masks are not supported
  • Vulkan Event functionality is currently not supported
  • Support for only a limited set of texture-specific swizzles
  • Allocation callbacks in object creation functions will be ignored

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.

Vulkan Portability Initiative Roadmap

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.

Vulkan Portability Initiative Roadmap