Google Opens Up High-Performance Software Graphics Rasterizer

Written by Michael Larabel in Google on 29 June 2016 at 12:59 PM EDT. 24 Comments
Some exciting non-Polaris news today is that Google has open-sourced SwiftShader, the library they use for high-performance graphics rendering on the CPU.

Google has been using SwiftShader for the past seven years for 3D rendering on the CPU in cases where the GPU or graphics driver may not be capable. It's effectively been the software fallback in Google's Chrome, Android, and more for showing 3D content without depending upon the GPU.

SwiftShader implements the OpenGL ES API and thus supports WebGL fully. SwiftShader supports dynamic code generation, SIMT vector operations, multi-threading, and more for aiming towards as fast graphics as possible from the CPU. It's an interesting alternative to Gallium3D LLVMpipe or Intel's OpenSWR and will be interesting to see where it goes with now being open-source.

More details via the Chromium blog and the code is found via Google Source.

Interestingly, it also appears to implement Direct3D 9 as well as OpenGL ES. For usage, the documentation mentions, "The SwiftShader libraries act as drop-in replacements for graphics drivers. On Windows, most applications can be made to use SwiftShader's DLLs by placing them in the same folder as the executable. On Linux, the LD_LIBRARY_PATH environment variable or -rpath linker option can be used to direct applications to search for shared libraries in the indicated directory first."
Related News
About The Author
Michael Larabel

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 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 automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week