The Khronos Group has today announced the release of the Vulkan 1.0 software-interface specification, enabling advanced graphics features and performance for desktop and mobile devices. At the same time, LunarG Inc. has released a full suite of programming tools, allowing developers to create applications based on the new Vulkan spec.
It's a significant milestone. Vulkan establishes a state-of-the-art graphics development platform, with support for most all types of devices, and full open source implementation from end to end. This means that application developers can hope to create dazzling 3D applications with minimal reliance on proprietary technologies. It will also help component manufacturers to cheaply create a full graphics ‘stack' on their hardware, a particular boon for Internet of Things products, which already rely heavily on open source firmware.
"In the right hands, Vulkan's multi-threading and explicit resource management can enable a new class of smooth, high-performance engines and applications," said Neil Trevett, President of the Khronos Group and Vice President of Nvidia Corporation.
Connecting Software and Hardware
Response has been positive from manufacturers in both the mobile and desktop spaces. For example, the Khronos announcement includes an endorsement from ARM, which created the processor architecture used in many mobile devices.
There's also this statement from Tae-Yong Kim, Vice President, Mobile Communication Business, Samsung Electronics: "Samsung is excited about Vulkan's launch today, which will help expand the gaming ecosystem across platforms. We have been working within Khronos to support an open standard that will enable high performance and cutting-edge technologies. Vulkan will provide a more exciting, immersive user experience for mobile gaming."
Software applications rarely access hardware devices directly. Instead, they hook into an Application Program Interface (API) - a standardized layer of the device's operating system. This approach lets the same software to run on various devices, incorporating very different hardware, as long as they all support the same API standard.
Vulkan is a graphics API layer that allows software applications to access graphics hardware to create complex 3D animation. It builds on the venerable OpenGL API, also administered by Khronos, and widely accepted across many devices. Vulkan moves the technology forward dramatically. The biggest change is the inclusion of multithreading support. This will allow today's processors (which typically have 2, 4 or more individual cores) to execute multiple graphics instructions at one time.
Like OpenGL, Vulkan is an open and royalty-free standard, supported on most major platforms. Both AMD and Nvidia have already made preliminary Vulkan drivers available for Windows. Intel has also announced today that it has open source Vulkan drivers available to support the graphics capability of its 5th and 6th Generation Core processors.
"This is an important milestone for the industry," blogged Imad Sousou, Vice President of Intel's Software and Services Group, and General Manager of the Intel Open Source Technology Center. "Today's announcement is just the beginning of Intel's commitment and comprehensive support for Vulkan APIs. Vulkan is the new generation of completely open standard APIs offering high-efficiency access to graphics and compute on modern GPUs."
The release of Vulkan is also a huge step forward for the SteamOS desktop gaming initiative from Valve Software, enabling higher performance and better compatibility. "We are extremely pleased at the industry's rapid execution on the Vulkan API initiative," said Gabe Newell, co-founder and Managing Director of Valve. "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."
Open or Closed
That last bit is a clear dig at Microsoft's DirectX API, which has dominated the desktop since the 1990s. Detailed benchmarks are yet to come, but it's clear that the capabilities of Vulkan are roughly equivalent to those of Microsoft's latest DirectX 12. But Vulkan has far wider support, right out of the gate.
Microsoft has deliberately tied DirectX 12 to Windows 10, and clearly has no intention of releasing it for earlier versions of Windows. Microsoft's mobile devices and Xbox One game console do have some degree of cross-compatibility with DirectX 12., but it remains a closed, proprietary API, limited to Microsoft platforms.
By comparison, Vulkan has today become available on Windows 7, Windows 8 and Windows 10. Full support should come swiftly in all versions of GNU/Linux, as well as Valve's Linux-based SteamOS gaming environment. Macintosh support is likely, though Apple continues to favor its own Metal API. Google has announced support for both Vulkan and the previous OpenGL ES standards in Android. The Tizen mobile OS is also said to be supporting Vulkan. Even Nintendo has joined the Khronos group (which may have something to do with the company's recent hints about mobile gaming).
DirectX 12 does have a head start, having been released with Windows 10 last summer. But there's little evidence that game developers have jumped to support the API. With previous DirectX updates, games would be developed well ahead of the launch of the next Windows version. But even six months after the Windows 10 launch, third-party game support for DirectX 12 remains minimal.. A few games (mostly not in full release) offer experimental support, and a small number of upcoming titles have promised full DirectX 12 support for later this year and in 2017.
Meanwhile, with today's release of the Vulkan specs, at least one popular Windows game already offers experimental support. Players of The Talos Principle, from Croteam, can install the Vulkan driver for their graphics hardware, then enable Vulkan mode from the game's launch menu. "Vulkan has a huge potential," stated Dean Sekulic graphics engine specialist at Croteam. "We're only scratching the surface of what can be done with it, and porting The Talos Principle to Vulkan should be seen as a proof of concept. The endless war between performance and portability is finally over."
If You Build It
Today's Khronos release contains the official specifications for Vulkan itself. To create software that actually uses Vulkan, application developers will require a full set of programming tools. These have been under development by LunarG Inc., in Fort Collins, Colorado, supported by funding from Valve. Today, LunarG announced release of the Vulkan Software Development Kit (SDK) for Windows and Linux operating systems.
"This is an historic moment in the 3D graphics industry, and Vulkan will set the foundation for graphics and compute APIs for years to come," said Karen Ghavam, CEO of LunarG. "We are excited to release the Vulkan SDK to the developer community to jump-start their work in creating amazing 3D visual experiences for their customers."
According to LunarG, the new SDK includes a Vulkan loader, Vulkan layers, debugging tools, SPIR-V tools for shading language flexibility, the Vulkan run time installer, documentation, sample code, and demo software.
When I spoke with Ghavam a few days ago, she noted that while the current SDK targets Windows and Linux environments, software code should be "highly leverageable" for Android. She added that a few LunarG staff members have actually moved over to Google, which may indicate the latter company's level of commitment to Vulkan support.
Karl Schultz, Principal Engineer at LunarG, adds that the first release of the Vulkan SDK may inevitably lack some of the amenities available for DirectX, but that it will continue to evolve. This will clearly involve further work by LunarG, but undoubtedly also contributions from the open source community.
The release of a new standard like Vulkan may seem abstract at first, but the impact is often far-reaching. It may take some time, but today's launch of Vulkan could significantly shake up the world of electronic gaming, and ultimately lead to a new wave of more visually appealing applications and devices of all kinds.