1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

LLVMpipe: OpenGL With Gallium3D on Your CPU

Michael Larabel

Published on 30 April 2010
Written by Michael Larabel
Page 1 of 3 - 29 Comments

The software rasterizer used in Mesa that allows for software acceleration of OpenGL on the CPU without any assistance from the graphics processor has largely been useless. Even with a modern-day, multi-core processor, the performance of Mesa's software rasterizer has been abysmal. The performance of Mesa classic DRI drivers have traditionally been poor anyways compared to the high-performance, proprietary NVIDIA/ATI graphics drivers, but when dealing with just the software rasterizer there really aren't any games or applications that run well. Fortunately, software acceleration on Gallium3D is very much a different story thanks to LLVM.

Most often when we are talking about Gallium3D drivers we are usually talking about one of the upcoming or current state trackers (like OpenGL, OpenCL, OpenGL ES, OpenVG, DirectX, etc) or one of the drivers. The Gallium3D hardware drivers include CELL, i915, i965, Nouveau (NV50/NVFX), R300, and SVGA. Unfortunately the only ones that have been really maturing are Nouveau for NVIDIA graphics cards, R300 for ATI Radeon R300-R500 (up through the Radeon X100 series), and SVGA, which is a virtual Gallium3D driver created by VMware for use within their virtualization stack by guest operating systems. If you have not had a graphics card that runs well with Gallium3D, you really have not been able to experience its implemented state tracker features or its improved performance over classic Mesa, but now using the software driver is becoming a more viable option.

The original solution for running Gallium3D in the software / on the CPU rather than with a real GPU driver was a driver called softpipe. Gallium3D's Softpipe driver has been to serve as a reference implementation of a Gallium3D driver and to use in fallback scenarios where there is no graphics hardware support available. Softpipe is still a better option than the software rasterizer found in classic Mesa, but VMware (former Tungsten Graphics employees) have taken the performance to the next level with LLVMpipe.

LLVMpipe is a fork of the Softpipe driver that uses LLVM for code generation. Yes, LLVM as in the Low-Level Virtual Machine compiler infrastructure. LLVM is unique for its modular design and advanced capabilities, which open-source GPU developers have been long wanting to tap into after Apple began using LLVM to compile some GPU shaders in unique cases on their Mac OS X operating system. LLVM could be used similarly within GPU drivers for optimizing shaders and IR as was talked about at FOSDEM 2009 or in the case of LLVMpipe it is being used entirely to generate optimized code that targets the CPU.

The LLVMpipe Gallium3D driver currently implements the entire fragment pipeline in a single function and supports input interpolation, depth testing, texture sampling, fragment shader TGSI translation, alpha testing, blend in SoA and AoS layouts, and provides generic code output, among other implemented features (these are just the completed items that are documented). With the texture sampling what is support are 1D/2D/3D/cube maps, texture wrap modes, texture-filtering modes, and most texture formats. There still is some work to do in this driver to fully take advantage of the latest Gallium3D and LLVM advancements, but last month it gained some speed as Zack Rusin and José Fonseca has been working to implement the vertex pipeline and other features. Last week LLVMpipe began running two to six times faster in some tests thanks to the new geometry processing pipeline that the driver implements. With the recent activity in LLVMpipe, we found it time to benchmark this Gallium3D driver.

The Gallium3D LLVMpipe driver does not touch the GPU, so it can be run with any graphics card. However, for efficient performance, you will want to be running a 64-bit operating system and a CPU that supports SSE2.0 or better. LLVM can take advantage of SSE3 and SSE4 extensions too, which will result in even greater performance. To no surprise, the better the CPU you have, the better LLVMpipe will perform. The more cores that the CPU has, the better the performance will be too, as the rasterizer supports threading and tiling. If you are running a high-end Intel Core 2 Duo/Quad, an Intel Core i3/i5/i7, Intel Xeon, AMD Athlon II X4, AMD Phenom II, or AMD Opteron your CPU should be adequate.

<< Previous Page
1
Latest Linux Hardware Reviews
  1. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  2. Intel 120GB 530 Series SSD Linux Performance
  3. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
  4. AMD's Windows Catalyst Driver Remains Largely Faster Than Linux Drivers
Latest Linux Articles
  1. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
  2. Is The Open-Source NVIDIA Driver Fast Enough For Steam On Linux Gaming?
  3. Linux 3.18 File-System Performance Minimally Changed But Possible Regressions
  4. AMD Radeon Gallium3D Is Catching Up & Sometimes Beating Catalyst On Linux
Latest Linux News
  1. VirtualBox 4.3.20 Arrives, Still No Sign Of VirtualBox 4.4
  2. Scientific Linux 6.6 vs. Scientific Linux 7.0 Benchmarks
  3. Qualcomm Looks To Get Into The ARM Server Business
  4. HHVM 3.4 Adds New Features, Support
  5. More Radeon Driver Changes Queued For Linux 3.19
  6. Unigine 2.0 Alpha 2 Adds C# Support
  7. FFmpeg Is Returning To Ubuntu With 15.04 Release
  8. Linux Version Of Civilization: Beyond Earth Still Coming Along
  9. Yahoo To Become Default Search Provider For Firefox
  10. Better Fan Control Support Coming To The Open-Source Radeon Driver
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Debian Developer Resigns From The Systemd Maintainership Team
  3. Debian Init System Coupling Vote Results
  4. Ubuntu Developers Still Thinking What To Do About Adobe Flash Support
  5. How to get rid of Linux
  6. how to configure module phoromatic ?
  7. Major Performance Breakthrough Discovered For Intel's Mesa Driver
  8. Script for Fan Speed Control