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:
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
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).