GLX TFP Now Works For LLVMpipe Driver

Posted by Michael Larabel on October 25, 2011

Thanks to Google's continued improvements to Gallium3D (namely the Intel Gallium3D driver and LLVMpipe), the GLX_EXT_texture_from_pixmap extension should finally be working correctly with the LLVMpipe driver. We may now finally see some compositing window managers working with this CPU-based software driver.

For those not up to speed:

GLX_EXT_texture_from_pixmap is a GLX extension that allows a color buffer to be used for both rendering and texturing, but namely is used for binding an X11 drawable to a texture. GLX_EXT_texture_from_pixmap is commonly required by compositing window managers (e.g. Compiz) for providing some level of desktop effects. For more details, read the OpenGL specification.

LLVMpipe is the software-based acceleration driver for the Gallium3D architecture that's used when no GPU hardware driver is available. LLVMpipe is much faster than Mesa's classic software rasterizer or the original Gallium3D-based software driver as it leverages LLVM for efficient shader generation and can take advantage of multiple CPU cores, SSE2/SSE3, and other modern CPU features.

LLVMpipe isn't fast enough to run most older (ioquake3 era) OpenGL games, even with today's very fast multi-core CPUs, but it might be enough to handle some basic desktop window effects now that there's finally GLX_EXT_texture_from_pixmap support. This could be if your graphics card has no hardware driver yet or if you're running in a virtualized environment where there might not be any hardware accelerated support.

Last month we saw Chrome/Chromium OS developers at Google working on software based support for the TFP extension. However, it didn't work for LLVMpipe. Thanks to a commit by Stéphane Marchesin, it looks like it finally might. In a commit adding just over 100 lines of new code to the GLX state tracker, Marchesin implemented texture_from_pixmap support without DRI. The comment reads, "Makes texture_from_pixmap work with non-DRI llvmpipe."

The commit can be found in Mesa Git master and can be viewed on the web. It's yet another feature to be found in the next Mesa release, which will come as either version 7.12 or 8.0 (contingent on OpenGL 3.0 support being finished by year's end).

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. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Ubuntu Announces Carrier Advisory Group
  2. Qt 5.1 Release Candidate 1 Has Arrived
  3. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  4. Subversion 1.8 Presents New Features
  5. LLVM 3.3 Officially Released
  6. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  7. Intel GPU Driver Tries To Rip Out FBDEV Support
  8. Coreboot Doing AMD USB 3.0, Q35 QEMU Emulation
  9. VP9 Codec Now Enabled By Default In Chrome
  10. openSUSE 13.1 M2 Plays On PulseAudio 4.0
  11. Debian 7.1 Rounds In Some Bug-Fixes
Latest Forum Talk
  1. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  2. Ubuntu Announces Carrier Advisory Group
  3. Vote for GOG to add Linux versions of games they...
  4. Intel Haswell HD Graphics 4600 vs. AMD Radeon...
  5. Intel GPU Driver Tries To Rip Out FBDEV Support
  6. Mir Still Causing Concerns By Ubuntu Derivatives
  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