Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Learning More About The Intel Vulkan Driver, Linux Vulkan Plans
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.