Vulkan is designed to be a low-overhead API that facilitates multithreaded 3D development, enabling different threads to simultaneously prepare batches of commands to send to the GPU. It gives developers greater control of generating commands, putting tasks such as memory and thread management in their hands rather than relying on video drivers to handle these responsibilities.
AMD's Mantle, Microsoft's DirectX 12, and Apple's Metal were all developed with similar goals in mind. However, these are all platform limited -- Mantle only works with AMD GPUs, DirectX 12 only works in Windows, and Metal only works in iOS.
"Industry standard APIs like Vulkan are a critical part of enabling developers to bring the best possible experience to customers on multiple platforms," said Valve's Gabe Newell. "Valve and the other Khronos members are working hard to ensure that this high-performance graphics interface is made available as widely as possible and we view it as a critical component of SteamOS and future Valve games."
Khronos is offering special preview sessions for insights into the Vulkan architecture at GDC in San Francisco.
Vulkan is a unified specification that minimizes driver overhead and enables multi-threaded GPU command preparation for optimal graphics and compute performance on diverse mobile, desktop, console and embedded platforms. It also provides the direct GPU control demanded by game engines, middleware and applications with the cross vendor performance and functional portability resulting from simpler, more predictable drivers. The layered design of Vulkan enables multiple IHVs to plug into a common architecture for code validation, debugging and profiling during development without impacting production performance.
In another announcement today, Vulkan and OpenCL 2.1 are now sharing core intermediate language technologies resulting in SPIR-V; a revolution in the Khronos Standard Portable Intermediate Representation initially used by OpenCL, now fully defined by Khronos with native support for shader and kernel features. SPIR-V splits the compiler chain, enabling high-level language front-ends to emit programs in a standardized intermediate form to be ingested by Vulkan or OpenCL drivers. Eliminating the need for a built-in high-level language source compiler reduces GPU driver complexity and will enable a diversity of language front-ends. Additionally, a standardized IR provides a measure of shader IP protection, accelerated shader load times and enables developers to use a common language front-end, improving shader reliability and portability across multiple implementations.
The existence of both Vulkan and DirectX 12 will render AMD's Mantle largely obsolete. Mantle was an early attempt at offering the same kind of optimization and efficiency that Direct3D 12 and Vulkan strive for, but it's inevitably going to fall behind in developer interest and uptake.
According to Raja Koduri, VP of Visual and Perceptual computing at AMD, "...if you are a developer interested in Mantle "1.0" functionality, we suggest that you focus your attention on DirectX 12 or GLnext."
Korduri said AMD will no longer release Mantle 1.0 as a public SDK as originally intended, which many will take to mean that that is the end of it as an alternative to DirectX12 and the new OpenGL standards. As a consolation prize, AMD releases a 450-page programming guide the company hopes will stimulate better APIs down the road. The company also said it would continue to support any Mantle partners with its full resources.
"Mantle must take on new capabilities and evolve beyond mastery of the draw call. It will continue to serve AMD as a graphics innovation platform available to select partners with custom needs," Koduri added.
Korduri said more information on where Mantle is headed would be made public this Thursday at the Game Developer?s Conference in San Francisco.