LLVMpipe Doesn't Yet Like The GNOME Shell

Posted by Michael Larabel on May 05, 2010

Last week we published our first benchmarks of LLVMpipe, which is a new driver for Gallium3D that's to serve as a software rasterizer on the CPU. LLVMpipe is ideal for cases where a GPU is not available or supported and it leverages LLVM (the Low-Level Virtual Machine) for optimization and providing much better software acceleration than Mesa's traditional software rasterizer or Gallium3D's previous Softpipe driver. LLVMpipe really likes modern, fast processors with SSE3/SSE4 support especially for best performance, but will work with nearly any 64-bit Intel/AMD processor. Unfortunately, LLVMpipe doesn't yet play well with GNOME Shell.

In those benchmarks last week where we used the Mesa state tracker from Gallium3D with the LLVMpipe driver to accelerate the operations on the Intel Core i7 processor, the OpenArena game was basically playable in this configuration at low resolutions but much slower than the classic Mesa or Gallium3D drivers for an ATI Radeon R500 series graphics card. While OpenArena ran fine on LLVMpipe, the GNOME Shell isn't yet working well when being accelerated by this software stack.

One of the major features being worked on for GNOME 3.0 is the GNOME Shell, which provides a new way to manage the GNOME desktop and it's integrated with the Mutter compositing window manager for a pleasing experience -- assuming you have hardware acceleration. The Clutter tool-kit depends upon OpenGL / OpenGL ES for drawing and thus needs 3D acceleration like from the Intel/ATI/NVIDIA-Nouveau Mesa or Gallium3D drivers or using the NVIDIA/ATI proprietary graphics drivers. To no surprise, Mesa's software rasterizer is not fast enough to handle the Mutter/Clutter operations with its software paths and doesn't even render the screen correctly.

We were interested to see whether LLVMpipe would work with the GNOME Shell/Mutter efficiently, so we tried it out on Ubuntu 10.04 LTS with LLVM 2.7 and a Mesa stack that was checked out from Git on 2010-05-05 (up through this commit). This was from a Mac Mini setup with an Intel Core 2 Duo processor, but unfortunately, LLVMpipe and the Mesa state tracker do not yet play well with GNOME Shell and its underlying Clutter pinnings.


When starting the GNOME Shell with LLVMpipe on Gallium 0.4 via this latest Mesa code, the screen turned out like what is shown in the above screenshot. The screen was mostly black except for a few icons coming through. This is similar to how the classic Mesa software rasterizer attempts to handle running GNOME Shell, but with LLVMpipe it ended up exiting out of the GNOME Shell a few seconds later with a signal status of 11 or signal 5 when LLVMpipe was built with the debug options. For reference, when attempting to launch Compiz with LLVMpipe and the Mesa state tracker it currently results in a white screen.

It's a pity that LLVMpipe isn't yet playing well with the GNOME Shell and Mutter/Clutter, but hopefully by the time that the GNOME 3.0 desktop is rolled out in September, this LLVM-assisted software driver will work well. This would allow those with a modest processor but no GPU hardware driver (such as those into open-source drivers but don't yet have a Mesa/Gallium3D driver, like those waiting on the ATI Radeon HD 5000 series 3D support) or in potentially a virtualized environment without guest 3D support to be able to use GNOME's new compositing manager and shell.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Debian GNU/Hurd 2013 Release Brings New Packages
  2. Intel Ultrabook Performance Is Faster With Mesa 9.2
  3. Hot Relocation HDD To SSD Support For Btrfs
  4. Phoronix Test Suite 4.6.0 "Utsira" Released
  5. New Intel X.Org Driver Supports All Of Haswell
  6. SQLite Now Faster With Memory Mapped I/O
  7. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  8. Qt For Tizen Launches, Based On Qt 5.1
  9. KTAP Released For Linux Kernel Dynamic Tracing
  10. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
  11. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
Latest Forum Talk
  1. New Intel X.Org Driver Supports All Of Haswell
  2. Intel Ultrabook Performance Is Faster With Mesa...
  3. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  4. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  5. Debian GNU/Hurd 2013 Release Brings New Packages
  6. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite