Heads up my gaming amigos, the Khronos Group has announced version 1.0 of its cross-platform Vulkan graphics API, opening up new possibilities for game developers. Not only is Vulkan supported across a wide range of operating systems, the API will also empower developers with notable performance improvements and cutting edge graphical effects for some extravagant visuals.
This isn’t an extemporaneous announcement, the Khronos Group has been working with leading hardware vendors, 3D engine and platform developers for the past 18 months to develop the Vulkan 1.0 specification from the ground up. The culmination of this joint effort is a suite of open-source development materials that are compatible with Windows 7 to Windows 10, Linux, SteamOS, Tizen and Android.
The Khronos Group previously developed separate APIs for desktop and mobile, known as OpenGL and OpenGL ES. Vulkan does away with this, combining everything under a single platform. Vulkan supports mobile hardware compatible with OpenGL ES 3.1 and up, which includes chips such as the Snapdragon 810 and upcoming 820, and OpenGL 4.5 and higher desktop class hardware. Vulkan isn’t designed to completely replace OpenGL and ES though, as the group will continue to work on all three platforms in parallel.
Due to Vulkan’s cross platform availability, high performance and healthy open source ecosystem, we expect to see rapid uptake by software developers, far exceeding the adoption of similar APIs which are limited to specific operating systems,” – Gabe Newell, Valve
Importantly, mobile and desktop hardware still doesn’t have to implement exactly the same feature sets. Instead, Vulkan defines and implements features at creation time using official and third party device profiles. This change is hugely important, as it helps avoid an imbroglio of different API requirements for mobile and desktop platforms, saving on precious developer resources when designing cross platform software.
Much like Microsoft’s move over to DirectX 12, Vulkan is also looking to claw back performance from previously bulky driver overheads. Developers have now been given extra responsibility for managing memory allocation and CPU threads, but this greatly simplifies the API driver layer. Vulkan is also able to generate GPU workloads in parallel, making it virtually axiomatic that multi-core systems will benefit as developers can free themselves from single thread CPU-bound situations. Vulkan isn’t just suitable for gaming tasks though, effort has also been made to ensure strong performance in GPU compute situations too.
As part of the release of Vulkan 1.0, the group has launched a selection of tools to get developers started. Full documentation, multiple hardware drivers, and SDKs are now available for a variety of platforms, including the LunarG SDK for Windows and Linux. Google also has Android NDK downloads available and, as everything is open source, developers can grab whatever they need from GitHub too.
The launch of Vulkan 1.0 is certainly a major milestone on the road towards lower cost cross-platform development and the API will likely end up powering plenty of apps and games heading to Android in the future.