Vulkan-CPU Has Working SPIR-V To LLVM IR Translation, x86 Code Almost Working
Written by Michael Larabel in Vulkan on 29 July 2017 at 11:18 AM EDT. 2 Comments
Jacob Lifshay, the student developer via GSoC 2017 working on a Vulkan CPU-based implementation to essentially serve as a software renderer that is making use of LLVM, now has working SPIR-V to LLVM IR translation.

SPIR-V, of course, being the intermediate representation used by Vulkan and OpenCL 2.1+. Jacob's work is separate from the other SPIR-V LLVM work being pursued by other parties. Lifshay has now implemented enough of a SPIR-V to LLVM IR translator that it can translate simple shaders onwards to LLVM IR. He also says he is almost at a stage where in turn it can then generate x86 machine code. So in the end it will go from SPIR-V shaders to x86 code that can be executed by the CPU.

More details via his GitHub blog. It will be great once there is finally a working CPU-based implementation of Vulkan for a GPU/hardware-independent driver and possible implications for fallback for compute to the CPU in case of missing/broken Vulkan driver support on systems. Separately is also the effort for clspv to bring OpenCL C code to Vulkan.
About The Author
Author picture

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,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 automated benchmarking software. He can be followed via Twitter or contacted via

Related Vulkan News
Popular News