Vulkan® Portability™ fights platform fragmentation by encouraging layered implementations of Vulkan functionality over Metal, DX12 and other APIs. Vulkan Portability enables Vulkan applications to be reliably deployed across diverse platforms through standardized queries for available layered API functionality and ensuring all provided functionality is conformance tested.

Vulkan Portability Extension Ships!

Provisional version of Vulkan Portability Extension 1.0 is released and shipping today in both MoltenVK and gfx-portability.

Read the Blog

Vulkan Portability Philosophy and Timeline

Layered libraries can provide almost complete Vulkan functionality when running over other modern 3D APIs. However, there are almost always some parts of Vulkan that cannot be supported at close-to-native performance levels, depending on the underlying API. A Vulkan Portability implementation ships with a Portability Extension to provide a consistent way to query what API functionality is provided by a specific layered implementation.

Vulkan Portability enables layered Vulkan functionality to be consistently queried, tested and supported by the Vulkan SDK

Vulkan Portability conformance tests enable a layered implementation to use the standard Vulkan test suite to ensure that all functionality reported to be present by the Vulkan Portability Extension is conformant. Vulkan Portability implementations that pass the conformance process are enabled to use the Vulkan Portability trademark and logo.

Enhanced Vulkan SDK DevSim/Validation layers use the Vulkan Portability Extension to enable a developer to easily ensure that they are using the functionality subset provided by a particular Vulkan Portability implementation.

“One of Vulkan’s most important goals is to enable developers to ship applications with maximized reach and minimized effort. Layered API implementations have proven to be reliable and performant – and Vulkan Portability enables Vulkan applications on platforms where native drivers are unavailable or not possible. Vulkan Portability is a critical part of Vulkan’s ongoing mission to be a universally available GPU API.”

Enabling Vulkan Applications on macOS and iOS

Beta and prototype Vulkan Portability implementations are shipping today and are being used to ship performant Vulkan applications on Apple platforms. Vulkan Portability implementations often use the popular SPIRV-Cross cross-compiler to convert Vulkan SPIR-V shaders to the Metal Shading Language for compilation by the Apple-supplied Metal compiler.

Vulkan Portability implementations and tools bring Vulkan Applications to Apple macOS and iOS platforms

LunarG has ported the open source Vulkan SDK to macOS enabling developers to build, run, and debug their Vulkan applications on their macOS machines. LunarG is also developing the Vulkan Portability DevSim/Validation layers that will ship as part of the standard Vulkan SDK.

Vulkan Applications Shipping on macOS and iOS using MoltenVK

Vulkan Portability implementations such as MoltenVK are already being used in multiple shipping applications on macOS and iOS.

Vulkan Applications shipping on macOS and iOS 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.”

“Valve extended Dota 2 to use Vulkan and ported that version to macOS using MoltenVK. This port achieved significantly higher performance than the native Apple OpenGL® drivers. Valve has now shipped multiple games titles on macoS and iOS using MoltenVK and we believe that Vulkan Portability can significantly reduce development and porting costs for any developer supporting multiple platforms.”

Pierre-Loup Griffais