Ubuntu, fglrx, Xgl, compiz and missing GLX_EXT_texture_from_pixmap

Ok, now that I have put all the keywords I could think of in the title, let me explain.

If you have followed any and all of the thousand “HOWTO Install Xgl” around the net and you always end up with the same error:

compiz.real: GLX_EXT_texture_from_pixmap is missing
compiz.real: Failed to manage screen: 0
compiz.real: No managable screens found on display :1.0

the problem is that ATI hasn’t yet released a driver with that new extension that Novell and Nvidia developed specifically for Xgl and compiz.

The extension is implemented by Mesa though, so we need get compiz to use that. The problem is that when you install the fglrx driver it overwrites /usr/lib/libGL.so.1.2 with its own version wich lacks this feature.

To make compiz use the Mesa version, you just need to LD_PRELOAD that single library. If you have installed the fglrx driver by building the debian packages you have to use this command:

LD_PRELOAD=/usr/share/fglrx/diversions/libGL.so.1.2 compiz --replace gconf

If you manually made a backup, just substitute there the path to your backup. If you used other package types, I don’t know how thy handle diversions.

The thing is quite unstable here and because it’s - at least partialliy - using Mesa it uses a bit of CPU, but it’s incredibly smooth.

One thing that always make it crash is the zoom thing the panel does when you click on a launcher: disable it with gconf-editor in /apps/panel/global/enable_animations.

Now stop spinning that cube and get something done!