Learning More About The Intel Vulkan Driver, Linux Vulkan Plans

Written by Michael Larabel in Valve on 12 March 2015 at 08:54 AM EDT. 20 Comments
LunarG, the company that's been doing a lot of consulting work for Valve on optimizing Linux graphics drivers, is also the company that Valve paid to develop the Intel Vulkan Linux graphics driver. LunarG has been doing Linux graphics driver development for years with Mesa/Gallium3D and was formed by some of the same former Tungsten Graphics staff. Here's some more information on their Vulkan and SPIR-V adventures.

LunarG did a Reddit Ask-Me-Anything yesterday where they answered a bunch of questions from the community about their work pertaining to Vulkan and SPIR-V.

You can find the lengthy page of comments on Reddit while for an easy summary I've listed LunarG's key comments below.

- LunarG thinks implementing OpenGL on top of Vulkan would be a good idea as a vendor-neutral GL implementation. However, they don't believe it would be an easy task to implement.

- LunarG is working on a cross-vendor common loader to work across multiple simultaneous vendor GPUs. This should clear up the existing Linux OpenGL ABI issues that NVIDIA had been working to resolve (libglvnd).

- About 600 lines of code are needed to write a basic triangle program in Vulkan. However, much of that line count will be boiler-plate code that can be re-used or setup for the programmer by various libraries.

- Thanks to not needing a vendor-specific compiler front-end, the Vulkan drivers are a lot simpler. The Intel Vulkan user-space driver is about 27k lines of code while the compiler code for going to/from SPIR-V added around about 8k lines of code. This is much better than the Intel i965 Mesa driver that is much bigger in size and not counting core Mesa. The Intel Vulkan driver is obviously GPU-specific but the compiler portion for dealing with SPIR-V intermediate representation can be shared between drivers.

- When writing the Intel Vulkan Linux driver, no changes were needed to the Intel DRM kernel driver to make things work but there are some enhancements needed for delivering better performance.

- LunarG believees OpenGL will still live on and EGL will live on with it. OpenGL is easier to use than Vulkan and will stay around for a while. LunarG also said "Like OpenGL, Mesa will live on." Thus the Vulkan driver work doesn't appear to use any common code with Mesa/Gallium3D in the sense that Vulkan drivers will probably live within Mesa Git.

- The day The Khronos Group releases the Vulkan specifications is when they plan to open-source their Intel Linux driver.

- LunarG compared Vulkan to "Gallium3D 2.0." They also added SPIR-V can go on top of LLVM or TGSI (Gallium3D's IR). LunarG is being used for optimizations in LunarG's driver.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week