LLVMpipe: OpenGL With Gallium3D on Your CPU

Written by Michael Larabel in Display Drivers on 30 April 2010 at 01:00 AM EDT. Page 3 of 3. 29 Comments.

On average the classic R300 driver was running about 3.76x faster than the LLVMpipe driver and the Gallium3D R300 driver was 7.1x faster than LLVMpipe. However, even so, OpenArena was pretty much playable at 800 x 600 with an average frame-rate of 35 FPS. By the time the resolution was at 1920 x 1080, however, LLVMpipe was pushing out less than ten frames per second. LLVMpipe is not a solution for gaming, but it is still a much better software rasterizer than Mesa's option.

When looking at the CPU usage, LLVMpipe obviously chewed through the Intel Core i7 920 as much as it could, but the overall CPU usage was not maxed. In fact, the load never hit 100% usage across the four physical cores and then four additional HT cores. The peak CPU usage was 93% while the average was at a high 72.9%. In comparison, while running OpenArena with a high-end processor its average CPU usage was just 3.2%. Perhaps most interesting from these results is the CPU usage when using the Gallium3D R300 driver, which had an average CPU usage of 10.0%, which is more than three times higher than using the classic Mesa R300 driver.

While LLVMpipe leads to more reliable and faster software rendering than Mesa's traditional software rasterizer thanks to pinning it against the Low-Level Virtual Machine, LLVMpipe is still not close to matching the performance of a hardware-specific driver even with a high-end Intel Core i7 processor. The performance of LLVMpipe though should most certainly improve once the remaining bits are filled in and as LLVM continues to independently mature. Down the road as the hardware improves and LLVMpipe along with Gallium3D and its state trackers mature, we certainly hope that LLVMpipe will become a suitable fallback driver for situations where no graphics hardware driver is available or those seeking software/CPU rendering for other purposes. Even so, right now LLVMpipe is already a superior choice to Mesa's software rasterizer. Not only is this software driver great for OpenGL, but LLVMpipe can also take other handle other state trackers per Gallium3D's architecture, which would allow for CPU-based rendering in other areas of state tracker coverage too. LLVM speeding up Gallium3D's software rasterizer also gives hope that some of the other areas that developers have been looking into for adapting LLVM will also come to fruition and be of great benefit.

If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.


Related Articles
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.