LINUX.ORG.RU
ФорумTalks

Сага о компизе и ATI


0

0

Вообщем схватила меня ностальгия по старым-добрым с-п. Решил я компиз себе поставить, ессно самый красноглазый свежак. Скомпилил 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, подскажите.

★★★★★

авторитетно заявляю, что сompiz - какашка

anonymous
()

Запускай компиц с установленной переменной для форсирования енпрямого рендеринга, т.к. прямой рендеринг и glx_tfp несовместимы по генам.

GL_ALWAYS_INDIRECT=1 compiz --options....

вроде так

B084 ★★
()
Ответ на: комментарий от B084

>GL_ALWAYS_INDIRECT=1 compiz --options....

LIBGL_ALWAYS_INDIRECT=1 и compiz --indirect-rendering пробовал, не помогает. Все равно не видит texture_from_pixmap.

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от B084

Глянь в опциях компица чтоле, там было чтото по поводу прямого и непрямого рендеринга. В крайнем случае заставь думат ьчто он в xgl, тогда точно непрямой будет(опять же опция)

B084 ★★
()

не компиз какашка, а АТИ. Помню свои совершенно аналогичные ковырния, в результате чего просто еще раз проклял атишников и зарекся покупать их видюшки и слез на обычные плоские окошки кедов.

triPle
()
Ответ на: комментарий от B084

>не верю!

серьезно, стоит только убрать проверку на расширения, оно не можеет найти точку входа в glXCreatePixmap и показывает белый экран. Хотя такая функция в libGL.so.1 присуцтвует. Я даже через dlopen-dlsym пытался ее подключить - фиг там.

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от triPle

>не компиз какашка, а АТИ. Помню свои совершенно аналогичные ковырния, в результате чего просто еще раз проклял атишников и зарекся покупать их видюшки и слез на обычные плоские окошки кедов.

ну что тут скажешь, +адин

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от lester_dev

в screen.c

s->ctx = glXCreateContext (dpy, visinfo, NULL, !indirectRendering);
if (!s->ctx)
{
compLogMessage (display, "core", CompLogLevelFatal,
"glXCreateContext failed");
XFree (visinfo);

indirectRendering установи в 1, перед криэйтконтекст

, найди еще одно такоеже мместо в сорсах.

B084 ★★
()
Ответ на: комментарий от B084

ок, попробую. Странно, а glXMakeCurrent(dpy, s->ctx, s->чевототам); перед glXQueryExtensionString() не надо?

lester_dev ★★★★★
() автор топика

Beryl работает, потому что там есть альтернативная реализация, не использующая TFP. Но это не дело.

Sikon ★★★
()
Ответ на: комментарий от FiXer

я бы рад а что взамен? под agp слот щас только nv 5xxx можно взять, а уж с этим Г я знаком не по-наслышке. А менять мамку+проц+память+винт щас финансов нет

lester_dev ★★★★★
() автор топика

>ессно самый красноглазый свежак. Скомпилил compiz 0.5.2,

эээ

1:0.5.5~git20070820+3v1ubuntu0 - compiz-core

;)))

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

ладно попалил ты мну :) компиз я брал в тарболах, зато все остальное с гита, чесно-чесно!

lester_dev ★★★★★
() автор топика

Кампиз - говно для прыщавых подростков с влажными ладошками и красными глазами. ТруЪ - только берил.

Gharik
()

хм, надо попробовать дрова из гита, а то все fglrx да fglrx...

polachok
()
Ответ на: комментарий от JB

> учитывая то, что ебрил больше не разрабатывается, твое утверждение звучит смешно =)

Твоё тоже, ибо только проверенное временем есть труЪ, а факт наличия "поддержки" даже при отказе от развития - выводит берилку на ентерпрайз-уровень.

Gharik
()
Ответ на: комментарий от Gharik

Энтерпрайз-уровень, который не поддерживает два монитора - окна, вынесенные на второй, пропадают нафиг с экрана.

Хотя в целом хорошая вещь была... даже у меня дома на 8метровом i845 запускалась и работала, а компиз запускается и не работает...

INFOMAN ★★★★★
()

Может разные версии r300_dri.so установлены? Скажем, одна в /usr/lib/dri, a вторая например в /usr/lib/xorg/.../ ?

shahid ★★★★★
()
Ответ на: комментарий от INFOMAN

> Энтерпрайз-уровень, который не поддерживает два монитора - окна, вынесенные на второй, пропадают нафиг с экрана.

Так тебе чего, такое поведение задокументировать и расписать неустойку и штрафы за отход от оного? ;)

Gharik
()

ATI - гамно, NVidia - гамно, intel наше все, на gma950 тока так летает? тока блур не пашет, посмотрим еще что будет на gf8600gt и c2d

B084 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.