Vulkan Comes to iOS and MacOS

Once upon a time there was OpenGL and it was…  ok I guess.  That’s actually incredibly unfair, OpenGL was a game changer, allowing applications to use a great deal more of the underlying video hardware in a way never before seen.  It was mostly used in the world of computer graphics workstations, in fact starting life as IrisGL on SGI machines and gained a great deal of fame in the game development world when iD software threw their weight behind it with GLQuake.

Since those early days of 3D graphics, OpenGL and Direct X followed a very similar path.  At first, when new features were added to the hardware, they needed a new corresponding feature to be added to the underlying renderer.  At this point, it was the GL layer that was more and more of a roadblock in the way of progress.  A work around was extensions but this was certainly a kludge fix.  In this time too, the world moved from a fixed pipeline to a programmable model and shader programming became the new norm. 

Eventually drivers became a cumbersome and bloated beast, while graphics developers wanted more and more control.  This lead to a move closer to the hardware.  First there was AMD’s Mantle followed by Apple’s Metal.  In time Mantle was opened up and given to the Khronos Group, the people behind the OpenGL libraries (and much more), ultimately becoming Vulkan.

The major problem here is, while the rest of the world embraced Vulkan, Apple did not, they stuck with Metal for iOS and later MacOS hardware acceleration.  This ultimately meant game engines had to support both Metal and Vulkan if they wanted to support all platforms.  In fact, Microsoft also released a low level graphics API, Direct X 12 in the same period of time.  This means Vulkan might the right API for you, but if you wanted to support Apple or Xbox One, you were out of luck or more accurately, had to support multiple rendering back ends.

In steps MoltenVK, a technology that enables you to run 99% of Vulkan code on Apple’s Metal SDK, essentially expanding Vulkan to support iOS and Mac OS.  They also have a DirectX 12 back end in the works, essentially bringing Vulkan to every current platform.  The final piece just fell into place, MoltenVK has been made free and released under the Apache2 source license.

The announcement has already had an immediate impact.  Today the Godot Engine announced they will switch to using Vulkan/MoltenVK instead of the problematic OpenGL ES renderer back end.  To the vast majority of game developers, this is simply an implementation detail and wont directly affect their daily life in any noticeable way, at least, not initially.

You can learn more about this release on the Khronos page or by watching the video below.

GameDev News

Scroll to Top