GLX TFP Now Works For LLVMpipe 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).
1 Comment