The Khronos Group has officially announced Vulkan, the new open standard API for high-efficiency access to graphics and compute on modern GPUs.
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. Vulkan also provides the direct GPU control demanded by sophisticated 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, extensible architecture for code validation, debugging and profiling during development without impacting production performance; this layering flexibility is expected to catalyze strong innovation in cross-vendor GPU tools.
In another significant 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 significantly 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.
“Vulkan is a significant Khronos initiative to provide developers the choice of a state-of-the-art GPU API that is open and portable across multiple platforms, at a time where platform diversity is increasing,” said Neil Trevett, president of the Khronos Group and vice president at NVIDIA. “Khronos will be driving the Vulkan ecosystem with open source conformance test components and sample front-end compiler implementations that use SPIR-V to leverage the hardware community’s investment in optimized back-end drivers. Vulkan expands the family of Khronos 3D APIs, and complements OpenGL and OpenGL ES that between them, provide access to billions of GPUs today, and will continue to be evolved and maintained to meet industry needs.”
The complete press-release is available HERE.
A detailed article about the announcement of Vulkan is available at arstechnica.com:
With Vulkan, Khronos also hopes to simplify drivers in other ways by changing the way shader programs are compiled. Traditional OpenGL requires each display driver to contain a full compiler for shader programs written in the C-like GLSL shader language. This is complex, with ample room for bugs. Microsoft’s Direct3D took a different approach; shader programs are compiled once, by the developer, into a bytecode. Display drivers only need to process this bytecode, which is a simpler task.
Vulkan drops the OpenGL way of handling shader programs in favor of the Direct3D approach. Developers will compile shaders into an intermediate form called SPIR-V, and it is this intermediate form that drivers will work with.