Вообщем схватила меня ностальгия по старым-добрым с-п. Решил я компиз себе поставить, ессно самый красноглазый свежак. Скомпилил compiz 0.5.2, libdrm с git'а, месу оттуда же, установил - тестовый запуск прошел нормально. Видео у меня radeon 9600xt, glxinfo написало что DRI enabled: No, хотя GL client: Mesa R300 DRI блаблабла и куча расширений. Сначала меня это не смутило, т.к. я помнил что при выключеном DRI оно пишет Mesa Indirect, а ничего такого не было, к тому же компиз работал шустро, только почему-то слегка подтормаживал на операциях I/O с диском. Но когда я запустил кваку, обалдел - фпс едва дотягивал до 50, а glxgears вообще поверг меня в шок - фпс еле-еле осилил 200.
Что-то тут не то, подумал я и полез курить сорцы месы. Оказалось есть полезная переменная LIBGL_DEBUG, которую можно установить в verbose и посмотреть чего там творится в недрах DRI. Сказано - сделано. Оказалось что libGL.so.1 не может открыть r300_dri.so, который оно ищет в /usr/X11R6/lib/modules, а в убунте оно зачем-то лежит в /usr/lib/xorg/. Невелика беда - один симлинк и все готово. Квака сразу раскочегарилась до 180, шестеренки с glxgears слетели с осей и пробили мне монитор, и в предвкушении чуда я сделал killall compiz; compiz --replace gconf и ... жестоко обломался. Эта сволочь напрочь отказывалась запускаться сетуя на отсутствие GLX_EXT_texture_from_pixmap. Стоило мне снести симлинк на r300_dri.so, как компиз заработал, но отвалился DRI. Чувствуя, что еще немного и меня заебрут в дурку без права переписки, я снова создал симлинк и запустил на этот раз beryl. И каково же было мое удивление, когда он заработал как ни в чем не бывало! А компиз по-прежнему не находил texture_from_pixmap.
После ночных ковыряний в коде компиза, я обнаружил что оно берет строку расширений из glXQueryExtensionString, а вот почему при выключенном DRI оно возвращает GLX_EXT_texture_from_pixmap, а при включенном - нет, я так и не понял. Кто тут спец по DRI, подскажите.