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

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

Read the Blog GitHub GitHub Discussions

New Release of Vulkan SDK!

In January 2021, the functionality of the Vulkan SDK gets a major upgrade for Vulkan developers targeting Apple platforms.

Read the Blog Presentation SDK

Vulkan Portability Deliverables

Vulkan Portability layered libraries can provide extensive Vulkan functionality when running over other modern 3D APIs. However, if there are parts of Vulkan that cannot be supported at close-to-native performance levels due to the underlying API, then a Vulkan Portability implementation ships with the Portability Extension that provides a consistent way to query what API functionality is provided by that specific layered implementation.

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

Vulkan Portability is extending the Vulkan conformance test suite to enable a layered implementation 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 DevSim and Validation layers in the standard Vulkan SDK use the Vulkan Portability Extension to enable a developer to easily ensure that they are using the functionality subset provided by the Vulkan Portability implementation on a specific target device.

 

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

Developing Vulkan Applications for Apple Platforms on macOS

LunarG has ported the open source Vulkan SDK to macOS enabling developers to build, run, and debug their Vulkan applications on their macOS machines. In January 2021, the Hardware Capability Viewer utility that is used to generate entries in the gpuinfo.org public database now interrogates capabilities reported by the Vulkan Portability extension if present, including on Apple platforms. The Vulkan SDK DevSim and Validation layers can import the device capabilities of Apple devices to enable developers to precisely use the reported functionality of a particular target device with a Vulkan Portability implementation on any development system. For example, a developer can use a macOS, Linux or Windows-based system to develop Vulkan code that will run correctly on a specific model of iPhone.

 

“I was initially skeptical about the use of a Vulkan translation layer to Metal, but it turns out MoltenVK enables applications using the realtime NAP Framework to run as well on macOS as they do on Linux and Windows. This is something I'd like to highlight and stress the importance of - without the portability of Vulkan we would have been forced to implement a special Metal rendering backend just for macOS users, something not doable for a relatively small company such as ours. Plus switching to Vulkan dramatically improved render-times for Mac users.”

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

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
Valve
devilish