Khronos Group Announces Vulkan, OpenCL 2.1, SPIR-V

Written by Michael Larabel in Display Drivers on 3 March 2015 at 03:00 AM EST. Page 1 of 3. 166 Comments.

Today is a very exciting day for those into open standard graphics and compute APIs! While driver implementations aren't expected until later in 2015, the next-generation OpenGL standard is being announced as the Vulkan API, the provisional specification to OpenCL 2.1 is being released, and SPIR-V is set to make its debut as the IR for both Vulkan and OpenCL 2.1.

Yesterday I posted the initial news about Vulkan in fact being next-gen OpenGL after receiving confirmation from my sources. After that article, the confusion was cleared up as there was some email communication issues for my pre-briefing not being received prior and thus not being under NDA at the time. Later in the day I was the briefed by Neil Trevett, Khronos President & NVIDIA's Vice President for Mobile Ecosystem. Neil also expressed his gratitude to Phoronix readers that made up a "significant slice" of those filling out the next-gen OpenGL naming survey that was previously covered on Phoronix. He talked about these exciting new additions to the Khronos family and gladly addressed all of my Linux and open-source related questions. Pardon for this article being a bit brief due to being briefed later in the day, making the midnight (PST) embargo, and being busy building the new test farm.

Vulkan represents the ground-up design of a modern API for high-efficiency graphics and compute on GPUs. Vulkan is planned to be used on all devices from traditional desktops and laptops to mobile phones, game consoles, and other devices. While Vulkan is being announced today, it's just been in development by Khronos and its stakeholders since last June and thus is still a work-in-progress, but should be sured up more by the end of the year. Don't expect any driver releases or specification dumps this week at GDC, but there's expected to be some demos. Vulkan should work with all OpenGL ES 3.1 hardware and newer.

SPIR-V is the cross-API intermediate language for parallel compute and graphics to represent both OpenCL and Vulkan source languages. There's full flow control, graphics and parallel constructs, and other additions to its IR over the original SPIR. The original SPIR was based on LLVM IR but now with SPIR-V they're not seeking to restrict themselves to LLVM IR and thus have gone with a clean, uninhibited design. However, the Khronos Group has a work-in-progress item of putting out a SPIR-V to LLVM IR pass that would convert this OpenCL and Vulkan code representation into LLVM IR.


Related Articles