|The New OpenGL - Vulkan and SPIR-V|
|Written by Sue Gee|
|Tuesday, 03 March 2015|
Previously referred to as the Next Generation OpenGL, Vulkan is the new open standard cross platform graphics API. Khronos has now made it available in technical preview and also released the provisional specification of Open CL 2.1.
Vulkan is the result of a ground-up design for the OpenGL API addressing both graphics and compute. The change of name, something that Khronos recently sought help with from the developer community, reflects the fact that the new API is not backward compatible with OpenGL.
Vulkan's news release states:
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's initial specifications and implementations are expected later this year and companies are encouraged to join Khronos to participate in its development.
Microsoft joined Khronos last August and this no doubt has something to do with the fact that 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.
SPIR-V is claimed to be the first open standard cross-API intermediate language for parallel compute and graphics. This allows developers to use the same front-end compiler across multiple platforms. facilitating portability. It reduces runtime shader compilation time as the driver only has to process SPIR-V and not the full source code. It provides a measure of IP protection as developers don't have to ship their shader source code.
SPIR-V will be used by both Vulkan and OpenCL 2.1, the provisional specification of which has been released. It's major feature is that it introduces a new kernel language based on a subset of C++.
According to its press release:
Open CL C++ kernel language significantly boosts parallel programming productivity by providing lambda functions, classes, templates, operator overloading, and many other C++ features to free developers from low-level coding details without sacrificing performance. OpenCL C++ enables reusable device libraries and containers for easily sharable code that is fast and elegant, and templates enables meta-programming for highly adaptive software that cleanly delivers performance portability.
In addition OpenCL 2.1 brings enhancements to the OpenCL API, including:
Vulkan has made rapid progress since the OpenGL Next Initiative began in June 2014 and has some welcome characteristics.
OpenGL will, however, live on. The lower level control afforded by Vulkan means that it may not be a good fit for all programs. For them, traditional OpenGL, with the driver handling a greater part of the workload, could be the better fit.
In this sense Vulkan isn't the next version of OpenGL but an alternative to go up against similar "closer to the metal" graphics systems like AMDs Mantle, Microsoft's DirectX 12 and Apple's Metal. Vulkan has the advantage that it isn't tied to a particular OS or hardware.
To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Tuesday, 03 March 2015 )|