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