Khronos Group has released an update to the Vulkan Software Development Kit (SDK) that officially covers Apple’s platforms. It is based on Vulkan Portability and also covers Apple Silicon. This allows developers to write cross-platform applications on Vulkan instead of implementing them natively for Apple’s own Metal graphics architecture. Vulkan applications also run on Apple Silicon via Universal Binaries.
The volcano is on metal
In September 2020, Khronos Group had released the Vulkan Portability Extension 1.0, which allows Vulkan SDK calls on hardware platforms other than those natively supported. The focus was mainly on the implementation on macOS, iOS and tvOS, since Apple does not allow Vulkan drivers for its own operating systems.
The MoltenVK open source project is a central building block of the portability layer. It provides an implementation of Vulkan 1.1 for Apple Metal and thus allows the development on Vulkan and the export on Metal. There is also the open source library gfx-portability, which provides portability via the abstraction layer gfx-hal.
A broad base allows running Vulkan applications on Apple platforms.
Layers of Vulkan
As part of the updated SDK, LunarG has officially released its Device Simulation Layer (DevSim), previously only available for Linux and Windows, for macOS as well. This layer enables cross-platform development on more or less any source and target platforms, for example, to write a Vulkan application for certain iPhone models on Windows. The respective configurations for the properties of the hardware are stored in JSON files.
In addition, the properties of the hardware on Apple systems can be determined via the Hardware Capability Viewer, which provides entries for the public database gpuinfo.org created. In addition, the official macOS SDK for Vulkan includes the Vulkaninfo tool to automatically create DevSim configuration files. It also comes with pre-built configurations for certain Mac, iPad and iPhone devices.
More details on the updated Vulkan SDK can be found at the Khronos blog. An updated overview of the Vulkan Portability Initiative can be found in a separate presentation in PDF format.