A Chat With Khronos President Neil Trevett About Vulkan, OpenXR, SPIR-V In 2017
Yesterday I had a call with The Khronos Group president Neil Trevett to discuss some of their latest initiatives and the ongoing advancements to the Vulkan API, WebGL, SPIR-V, and more. Here were some of the highlights.
Last week you've likely read the Khronos announcements from the Game Developers Conference (GDC17) already including Vulkan 1.0.42 Released With A Slew Of New Extensions: Multi-Device, VR, Semaphores, Khronos Announces OpenXR, WebGL 2.0 Finalized & More, and Khronos' 3D Portability Initiative Could Be Quite Interesting, Boon For Linux Gaming. Thus the call was mostly to follow-up on these announcements and discuss related topics. Here are some of the random highlights:
Finding out more about their newly-announced 3D portability initiative was my first priority on the call. This is about having a common graphics API that can run across all platforms using mostly common code. OpenGL / OpenGL ES was the "golden era" where it could run on all major platforms, but now with Apple not supporting Vulkan on macOS/iOS, there is a need for a common initiative by cross-platform developers... Unless Apple is to change its mind about backing Vulkan, but there's no indication of that and they continue driving the Metal Graphics API instead.
With Khronos and others having worked on GLSL, SPIR/SPIR-V front-ends and more around the LLVM compiler infrastructure and even Microsoft open-sourcing their DirectX 12 shader compiler, a large part of this portability effort is around tooling in being able to go from the different shader languages to either a common language sub-set or transpiling it into another shader language directly.
But they are also exploring having a common graphics API with roughly 80% of Metal, D3D12, and Vulkan can be largely shared or intersect while some features like render-passes wouldn't. So if there was a common graphics API that could translate nicely to Metal, D3D12, and Vulkan, that is something they are exploring. As well, rather than forcing to developers to learn a new graphics API entirely, if there was a subset of each language they would endorse or cater their new API(s) roughly on the subset of each of the major explicit graphics APIs to more easily adapt existing platform-specific code.
I also asked about Apple's recent WebGPU announcement and whether Khronos has communicated with Apple/W3C regarding Apple's proposed new web graphics API. The basic answer is there isn't any communication, Apple is doing this on their own, and Khronos will be moving forward with "WebGL Next."
On the Vulkan front, some Phoronix readers have been curious about the number of point releases to Vulkan 1.0, including KHR experimental APIs in Vulkan 1.0, what their versioning approach is, etc. First, with regard to Vulkan having included the "KHX" experimental extensions, they do intend for them to be short-lived and are encouraging developers not to ship code making use of these experimental extensions. The extensions are out there to gain feedback but they don't want to be in a position of supporting experimental/deprecated extensions for the indefinite future. These currently-experimental Vulkan extensions will be firmed up in the months ahead and be promoted to being a "KHR" extension or the like.
Vulkan will continue seeing regular updates and it doesn't sound like it's been decided whether the next major update will be Vulkan 1.1 or 2.0.
Back in January Khronos open-sourced their OpenGL / OpenGL ES conformance test suite, similar to their Vulkan CTS also being open-source. They are seeing good feedback from these test suites being open and are encouraging more open conformance test suites moving forward. We may see the OpenCL CTS opened up in the future if everything aligns. Easier access to the different conformant test suites is certainly great to see. Khronos has also been happy with managing the Vulkan-Docs on GitHub with the community feedback received, etc.
With regard to their OpenXR effort for an industry standard VR, we won't see the fruit of this work until next year. Currently, the tentative target appears to be for holiday 2018 but we may see some companies showing off efforts earlier in the calendar year. Neil also clarified that SDKs like SteamVR and Oculus will continue alongside OpenXR. The VR SDKs may utilize OpenXR for greater application support and their device API to access more devices, but the different VR SDKs present now are likely to remain.
Overall, 2017 sounds like another exciting year for Khronos and continuing to advance open, cross-platform, industry standards. Those are the highlights that come to mind from yesterday's talk. If anyone has any follow-up questions regarding Khronos' latest efforts, I should be able to still get the interesting ones answered.