Vulkan—the available, cross-platform GPU API through the Khronos Group, the human body which also develops OpenGL—is on Windows, Linux, Android os, the Nintendo change, and cloud systems, nonetheless it has one gap that is sizeable none of Apple’s platforms support it. macOS has old, and slow, OpenGL drivers, and iOS supports OpenGL ES, the OpenGL subset designed for embedded systems. Apple has thus far shown no interest in offering the Vulkan that is modern API alternatively has pressed its very own proprietary API, steel.
Today, that space has been considerably filled, aided by the source that is open royalty-free release of MoltenVK—a runtime for macOS and iOS that offers an almost complete subset of the Vulkan API implemented using Metal. Released under the Apache 2 license, MoltenVK will enable developers to build their Vulkan applications for Apple’s platforms, allowing for a codebase that is single span Windows, Linux, Android os, macOS, iOS, and much more.
Valve is an adopter that is early of. The company has been testing MoltenVK for the macOS version of Dota 2, and indications are extremely promising: the Vulkan-on-Metal version of the game has frame rates as much as 50 percent higher than the version using Apple’s OpenGL stack. Apple’s OpenGL drivers have long been criticized, both for their performance that is poor and Apple’s refusal to guide the newest variations for the specification. The Dota 2( experience that is that developers can reap big dividends by bypassing them.
The release is in response to demands from developers; they want a cross-platform API to maximize their reach but also need to be able to reach Apple’s platforms. However, developers also told Khronos they hoped the company could repurpose some existing API to give them this reach that they didn’t want a fourth API to learn; rather. The recognition of a subset that is universally portable of, one that can be efficiently run on top of other GPU APIs, is the result.
MoltenVK has been designed as a very layer that is thin. It was intentionally built to maybe not perform any remapping that is significant conversion of data and function calls, ensuring that its performance is predictable and consistent, and its overheads are low. A handful of Vulkan features aren’t available, but overall the subset that is portable significant.
The portable subset will even quickly have the ability to target another platform: DirectX 12. Anticipated over the following couple of months, a translation that is similar is being developed that will enable Vulkan applications to use a DirectX 12 back-end. While Windows, unlike macOS, does have Vulkan drivers from GPU companies, applications sold through the Microsoft Store are only permitted to use DirectX. Already some Store applications use ANGLE—an implementation of OpenGL ES that runs on top of DirectX—so that their developers can use a cross-platform graphics API today. The Vulkan layer will allow exactly the same for pc software that makes use of the performance that is high low-level GPU API.