After missing its planned release date last year, the Khronos Group has released version 1.0 of the Vulkan API specification, the next-generation version of OpenGL. Initially based on AMD's proprietary Mantle API, Vulkan (previously known as GLNext) is an open-source, cross-platform low-overhead API that promises huge performance gains in 3D applications by giving developers low-level control of graphics and CPU hardware, much in the same way that games consoles like the PlayStation 4 and Xbox One do.

As well as publishing the spec itself, the Khronos group has also published a set of conformance tests to demonstrate compliance with the specification. Nvidia today has released a driver that passes these conformance tests for Windows and Linux. Drivers from Imagination Technologies (for Linux), Intel (also for Linux), and Qualcomm (for Android) have also passed the tests. AMD has a beta driver too, but unlike Nvidia's effort, AMD's has not passed the tests yet.

The tests, like the spec itself, are all available on GitHub, with the Khronos Group soliciting outside contributions. If 3D developers find any areas where drivers from different manufacturers diverge in incompatible ways, the hope is that they'll submit conformance tests that highlights the inconsistency, making it easier for the driver developers to align their behavior.

The Vulkan API, like DirectX 12, is a lot lower level than traditional OpenGL (or DirectX 11), enabling much greater multithreading in their applications, and giving developers tighter control over GPU memory resources. As such, there are two major types of application that will see gains from its adoption: those where the CPU is doing lots of work to handle generation and manipulation of 3D scenes while leaving the GPU relatively underused, and those that can't afford to have performance hitches. The former group should see big gains from the increased multithreading capabilities that Vulkan affords. The latter group should see a reduction in hitches by taking GPU memory management out of the display driver, and putting it into their application.

Microsoft released DirectX 12 as part of Windows 10 last year with a similar set of capabilities. Early tests of DirectX 12 showed huge frame rate improvements for AMD.

These scenarios aren't for everyone; a lot of applications will be better-suited to the higher level OpenGL (or DirectX 11) programming style. Accordingly, OpenGL will continue to be developed and improved to accommodate new and improved hardware features.

Apple introduced its Metal API with iOS 8, which again focused on reduced API overhead. Metal sits in a kind of middle-ground between OpenGL/DirectX 11, and Vulkan/DirectX 12; porting an existing OpenGL application to Metal should be easier than porting it to Vulkan, but the performance gains attainable by doing so are not as great.

Notably, unlike both DirectX 12 and Metal, Vulkan is platform agnostic, supporting Windows 7, Windows 8.1, Windows 10, Linux, and Android. Valve has been a firm supporter of the API since its inception, even going as far as to recommend developers choose Vulkan over DirectX 12 thanks to its cross-platform capabilities. Google also announced support for the API in Android at the tail end of last year, while Nintendo joined the Khronos group as a contributing member.

The use of open source extends to more than just conformance tests. An open source Vulkan SDK from LunarG has been released containing tools to help develop and debug Vulkan applications. This SDK takes advantage of Vulkan's layered architecture. Although it's a "bare metal" API with minimal checking and verification done by the driver, Vulkan has been designed to allow additional layers to be inserted within the stack. These layers can do things such as perform validation of commands, or provide additional debug data for a debugger to use. During development, a developer can use these layers to detect misuse of APIs, incorrect parameters, and so on and so forth, without imposing any validation overhead once the application is complete.

Khronos' intent is that a range of these layers will be developed. For example, Nvidia could develop a layer that could warn about API usage that, while technically correct, is known to perform poorly on Nvidia hardware. Another layer might generate profiling information for fine-grained performance measurement of 3D performance. The specs for creating these layers are open, and the loader itself is open source.

Unity, Epic (Unreal Engine), Valve (Source 2), and Dice (Frostbite), and others have all pledged to support and have been involved in some way with the creation of Vulkan, but currently none have games that make use of the API. Croteam has promised that its game The Talos Principle will support Vulkan at launch, and should be updated on Steam imminently.