Vulkan Portability Initiative

The Vulkan® Portability Initiative enables implementations of Vulkan that are layered over other 3D APIs to be consistently queried, tested and supported by the Vulkan SDK. The goal of the Vulkan Portability Initiative is to enable multiple layered Vulkan implementations over a range of underlying APIs to bring performant Vulkan to diverse platforms that may not support native Vulkan drivers.
Vulkan Portability Initiative is a multi-pronged project to encourage and standardize the implementation of layered Vulkan implementationsVulkan Portability Initiative is a multi-pronged project to encourage and standardize the implementation of layered Vulkan implementations

Deliverables from the Vulkan Portability Initiative will include:

A Vulkan Portability Extension that enables an application using a layered Vulkan implementation to query what functionality is missing. Although layered Vulkan implementations can be quite complete when running over another modern API, it is not always possible to layer all of the Vulkan API at close-to-native performance levels.

Vulkan Conformance Test Suite enhancements that enable a layered Vulkan implementation to use the standard Vulkan tests to ensure that all present functionality is conformant. Layered Vulkan implementations that pass Vulkan Conformance for all present functionality are enabled to use the Vulkan Portability trademark and logo.

Extended Vulkan SDK DevSim/Validation layers to enable a developer to easily check whether they are using functionality available in a targeted layered Vulkan implementation.

 

Bringing Vulkan to macOS and iOS

Some of the first layered implementations of Vulkan are implemented over the Metal API to bring highly-performant Vulkan to Apple platforms.

Khronos members Valve and The Brenwill Workshop have made the MoltenVK layered implementation of Vulkan over Metal freely available in open source. LunarG has ported and released the Vulkan SDK on macOS. Together these enable Vulkan application development on macOS and deployment on macOS and iOS platforms. See the Press Release for the Vulkan macOS and iOS tools.

In addition the gfx-rs open source project has an implementation of Vulkan over multiple APIs, including Apple’s Metal: https://github.com/gfx-rs/gfx.

Libraries and tools for bringing Vulkan applications to macOS and iOS are shipping todayLibraries and tools for bringing Vulkan applications to macOS and iOS are shipping today

MoltenVK is highly performant and supports almost all mandatory Vulkan 1.0 functionality, with Triangle Fans and separate stencil reference masks being the only exceptions. MoltenVK is responsive to developer priorities while continually adding support for optional features and extensions including BC texture compressed formats, fragment shader atomics and tessellation. MoltenVK will support the Vulkan Portability Extension when it is finalized and is working to pass the Vulkan Conformance Test suite to be officially Vulkan Portability conformant.

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.

 

Vulkan Applications Shipping on macOS

Layered implementations of Vulkan such as MoltenVK are already being used in multiple shipping applications on macOS at high levels of performance.

To test and exercise MoltenVK, Valve has extended Dota 2 to use Vulkan and port that version to macOS. This port achieved significantly higher performance than the native Apple OpenGL® drivers.

Following Dota 2 there are an increasing number of games and applications that are now shipping in production on macOS using the MoltenVK library.

Vulkan Applications shipping on macOS using MoltenVKVulkan Applications shipping on macOS using MoltenVK

Industry Quotes

“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.”

“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. These efforts are aimed toward reducing development and porting costs for any developer supporting multiple platforms.”

Pierre-Loup Griffais
Valve
devilish