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. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  2. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  3. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
  4. AMD Radeon Gallium3D More Competitive With Catalyst On Linux
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  2. GCC 4.8.1 Compiler Due To Be Out Next Week
  3. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  4. Linux's "Ondemand" Governor Is No Longer Fit
  5. Firefox 22 Beta Enables WebRTC Support
  6. OpenSUSE 13.1 Milestone 1 Released
  7. DRM Graphics Driver Comes For Dove/Cubox
  8. JADE: An LLVM-Based Video Decoder For MPEG RVC
  9. Ubuntu 13.10 Likely Switching To Chromium Browser
  10. Unity 7, Compiz To Be Polished For Ubuntu 13.10
  11. Unity 8, Mir To Be Experimental Choice In Ubuntu 13.10
Latest Forum Talk
  1. Unity 8, Mir To Be Experimental Choice In Ubuntu...
  2. OpenSUSE Considers Replacing LXDE With E17
  3. Greater Radeon Gallium3D Shader Optimization Tests
  4. Linux Game Development and a Qt Developers Rage
  5. Linux's "Ondemand" Governor Is No...
  6. Fedora 19 Alpha Gets Its First Delay Due To UEFI
  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