Mesa 8.0 LLVMpipe: Fine For Desktop, Not For Gaming
LLVMpipe is the CPU-based software rasterizer driver that is faster than the standard Gallium3D "Softpipe" since it leverages LLVM for taking advantage of more of the CPU -- especially on modern hardware with SSE3/SSE4, multiple cores, etc. See LLVMpipe: OpenGL With Gallium3D on Your CPU and Gallium3D LLVMpipe On The Sandy Bridge Extreme for just a small portion of the Phoronix coverage of this unique software driver.
The LLVMpipe driver has become the default software fall-back in Fedora, among other Linux distributions. This Gallium3D driver is not as good as even an open-source GPU hardware driver in a cruddy state, but it's generally multiple times faster than Softpipe or Mesa's classic software rasterizer.
Unfortunately with Mesa 8.0, the OpenGL 3.0 compliance of LLVMpipe is not as good as Softpipe -- which is nearing in on OpenGL 3.0 compliance. It's more difficult adding new OpenGL support to LLVMpipe than Softpipe since it needs to tie in with LLVM, but progress is being made.
What does make the LLVMpipe driver more fascinating with Mesa 8.0 is that it can now work with the GNOME 3.x Shell and Mutter. With ease you can now run the GNOME Shell using a software driver without GPU acceleration while not eating up all of your CPU. I've already tried it out and it's working. Red Hat is looking for this to play a role in Fedora 17 and to eventually deprecate the GNOME 3.x fall-back mode. This work allows the GNOME Shell to be used then within a QEMU/KVM instance where GPU hardware acceleration is not currently available, among other environments.
To see if the LLVMpipe OpenGL performance has changed between Mesa 7.11 and Mesa 8.0, I ran some tests yesterday and today. Using the Mesa Git code I compared the latest state of the Mesa 8.0 branch to that of the Mesa 7.11 branch (Mesa 7.11.2 + a few other patches living in the tree; Mesa 7.11.0 wasn't used since it didn't have LLVM 3.0 support). Version 3.0 of LLVM was used for both the 7.11 and 8.0 testing.
Testing was done from an Intel Core i7 720QM system since this "Clarkfield" processor has been around since H2'2009 and thus mature support within LLVM. The Core i7 720QM has four cores plus Hyper Threading (eight total threads), clocked at 1.6GHz with 2.8GHz Turbo Boost, SSE 4.2 support, and has 6MB of Smart Cache.
The i7-720QM was found in a Lenovo ThinkPad W510 notebook along with 4GB of RAM and 160GB Intel SSD. Ubuntu 11.10 (64-bit) was used with the Linux 3.0 kernel while using the custom Mesa stack for software benchmarking.
With the OpenArena game, the performance of LLVMpipe between Mesa 7.11 and 8.0 has not changed at all. Only at 640 x 480 was the frame-rate above 30 FPS, but even at a resolution of 1600 x 900 there was no OpenGL frame-rate difference when using the Gallium3D LLVMpipe driver on the two releases -- even when using a higher-end Intel CPU.
The Intel Core i7 720QM with LLVMpipe also ran the same for Mesa 7.11/8.0 when using the World of Padman game. This is another ioquake3 game, but even for the games built on the older technology, LLVMpipe still runs at a slow pace. At least its performance is good enough for handling modern desktop environments.
With LLVMpipe beginning to play a more important role in Fedora, Red Hat is working on some performance optimizations to LLVMpipe / software rendering. Just earlier this week there was the announcement of the Virtual GEM Provivder (VGEM). Expect the performance improvements to land in the next few months, plus LLVMpipe approaching OpenGL 3.0 / GLSL 1.30 compliance, so in a few months I'll be back with more benchmarks.
More test results, system logs, and other details from this Mesa 8.0 Gallium3D LLVMpipe benchmarking can be found on OpenBenchmarking.org.