Понедельник, Май 21, 2012
Авторизация
10
Фев
2008

Оптимизация совместной работы проприетарного драйвера NVidia и compiz-fusion

(15 Голосов)

Иллюстрация к статье

Часто в интернет-блогах встречаю жалобы пользователей графических карт NVidia , установивших на свой компьютер с ОС Linux композитный менеджер compiz-fusion на недостаточную производительность данных адаптеров, и соответственно, сильное замедление работы графической подсистемы. Меня очень удивил данный факт.

Дело в том, что в данной программе используется очень простая графика, которая не может задействовать и десятой доли возможностей современных графических ускорителей. Если сравнить с современными компьютерными играми, графика — просто примитивная. Поэтому, проанализировав все факторы, я пришел к выводу, что наиболее вероятная причина всех этих жалоб — неправильная настройка того или иного компонента графической системы Linux. Рассмотрим все это на примере дистрибутива Fedora 8 (графический сервер X.org 7.3).

 

Первая ошибка, которая чаще всего встречается — неправильная настройка Direct Rendering, или проще говоря - «DRI». DRI отвечает за ускорение вывода 2D и 3D графики на экран. Для того, чтобы проверить, правильно ли настроен DRI на Вашем компьютере, наберите в консоли команду:

Код
$ glxinfo | grep direct

 

Если все настроено правильно, вывод команды будет примерно следующим:

Код
direct rendering: Yes
 

Если данная строка отсуствует в выводе команды, это означает, что DRI настроен неправильно и неработоспособен. В этом случае необходимо в первую очередь проверить наличие прав доступа к файлам устройств «/dev/nvidia0», «/dev/nvidia1», «/dev/nvidia2», «/dev/nvidia3», «/dev/nvidiactl». Правильная настройка — это наличие прав на чтение и запись для пользователя, от имени которого запускается X-сеанс. Если Ваш компьютер предназначен для индивидуального домашнего использования, лучше всего настроить разрешение на чтение-запись для всех пользователей компьютера, т.е. установить значением атрибута доступа восьмеричное 0666. Для Fedora-8 это можно сделать двумя способами. Так как в данном дистрибутиве файловая система /dev обслуживается с помощью технологии udev, необходимо настроить правила udev для создания вышеперечисленных файлов устройств. Для этого создайте файл 55-nvidia.rules в каталоге /etc/udev/rules.d/:

Код
$ touch  /etc/udev/rules.d/55-nvidia.rules
 

со следующим содержанием:

Код
KERNEL=="nvidia[0-9]",GROUP="wheel", MODE="0666"
KERNEL=="nvidiactl",GROUP="wheel", MODE="0666"
 

 

Второй вариант — использование опций драйвера ядра nvidia. Драйвер умеет сам управлять правами доступа к создаваемым файлам устройств. Ниже показан пример настройки опций драйвера:

/etc/modprobe.d/nvidia:

Код
options nvidia NVreg_DeviceFileMode=438 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=10 Nvreg_ModifyDeviceFiles=1<p> </p>
 

Значение параметров:

 

Nvreg_DeviceFileMode
значение атрибутов файлов устройств в десятичной системе исчисления. В данном случае 438 — десятичное представление восьмеричного значения 0666
Nvreg_DeviceFileUID идентификатор пользователя, который будет установлен в качестве владельца файлов устройств
Nvreg_DeviceFileGID
идентификатор группы, которая будет установлен в качестве владельца файлов устройств
Nvreg_ModifyDeviceFiles
если данная опция установлена в 1, драйверу разрешено изменять атрибуты файлов устройств

 

 

После того, как права доступа настроены, необходимо внести соответствующие настройки в файл конфигурации «xorg /etc/X11/xorg.conf»:

/etc/X11/xorg.conf:

Код
Section «DRI»
     Mode 0666
EndSection
 

После того, как настроен DRI, перейдем к настройке остальных компонентов системы. Ниже приведен пример настроек в файле xorg.conf:

Код
Section "Extension"
     Option "DRI" "Enable"
     Option "Render" "Enable"
     Option "Damage" "Enable"
     Option "Composite" "Enable"
EndSection
 
Section "Screen"
      Option "TripleBuffer" "True"
      Option "BackingStore" "True"
      Option "DamageEvents" "True"
      Option "UseEvents" "False"
      Option "Coolbits" "1"
      Option "AddARGBGLXVisuals" "True"
      Option "XAANoOffscreenPixmaps" "True"
      Option "DisableGLXRootCliping" "True"
      Option "DRI" "True"
EndSection
 
Section "ServerLayout"
      Option "AIGLX" "True"
EndSection
 
Section "Module"
       Load "glx"
       Load "dbe"
       Load "extmod"
EndSection
 

Краткое описание опций:

(Страница 1 из 2)
Нравится статья
Обсуждение статьи в форуме
Обновить сообщения
RE: Оптимизация совместной работы проприетарного драйвера NVidia и compiz-fusion ( admin )
Четверг, 16 Октябрь 2008 19:23
Цитата:
прошу помощи
у меня в материнской плате встроенная видеокарта на ATI.
я же использую отдельную видеокарту GeForce 7600
какие мне настройки выставлять в соответствии с ващей статьей? ATI или nvidia?

Настройки для той карты, которую хотите использовать. Или используются обе?
Цитата:
в моем /etc/X11/xorg.conf вообще отсутствует секция Module - мне ее создать?

Если версия x.org > 7.0 ничего добавлять не надо, модули загружаются по мере необходимости.
Цитата:
нужно последовательно включить сначала compiz --replace ccm потом emerald --replace
и вдобавок еще поновой настроить в панели рабочие столы, так как там несоответствие, до перезагрузки допустим стоял один стол в настройках-при включенном compiz 4,

Какой DM используете? Если KDE, то какая версия? Если старая, то там специальный пейджер надо ставить на панель вместо стандартного. Для автозагрузки в KDE я все подробно описал. Для GNOME достаточно прописать запуск в менеджере сеансов. И еще -у Вас в параметрах запуска ошибка - не ccm, а ccp.
Оптимизация совместной работы проприетарного драйвера NVidia и compiz-fusion ( elektron7979 )
Среда, 15 Октябрь 2008 13:03
прошу помощи
у меня в материнской плате встроенная видеокарта на ATI.
я же использую отдельную видеокарту GeForce 7600
какие мне настройки выставлять в соответствии с ващей статьей? ATI или nvidia? драйвер скачал с репозитория livna по команде kmod-nvidia заодно с новым ядром..
в моем /etc/X11/xorg.conf вообще отсутствует секция Module - мне ее создать?
ничего не редактируя установил ваши пакеты, пропала кнопка включения эффектов из меню, но compiz запускается вручную, также запускается emerald тоже вручную и все вроде бы работает нормально, только вот при перезагрузке не запускается ничего, ни compiz ни emerald ни gtk-window-decorator, т е окна без шапок и не передвигаются...
нужно последовательно включить сначала compiz --replace ccm потом emerald --replace
и вдобавок еще поновой настроить в панели рабочие столы, так как там несоответствие, до перезагрузки допустим стоял один стол в настройках-при включенном compiz 4,
а после перезагрузки остается один, и даже включишь compiz все равно один..подскажите что делать, как насторить автозапуск поподробнее если можно - в скриптах не силен
заранее благодарен.
Оптимизация совместной работы проприетарного драйвера NVidia и compiz-fusion ( Vinnie )
Среда, 15 Октябрь 2008 13:03
Часто в интернет-блогах встречаю жалобы пользователей графических карт NVidia , установивших на свой компьютер с ОС Linux композитный менеджер compiz-fusion на недостаточную производительность данных адаптеров, и соответственно, сильное замедление работы графической подсистемы. Меня очень удивил данный факт. Дело в том, что в данной программе используется очень простая графика, которая не может задействовать и десятой доли возможностей современных графических ускорителей. Если сравнить с современными компьютерными играми, графика — просто примитивная. Поэтому, проанализировав все факторы, я пришел к выводу, что наиболее вероятная причина всех этих жалоб — неправильная настройка того или иного компонента графической системы Linux. Рассмотрим все это на примере дистрибутива Fedora 8  (графический сервер X.org 7.3).

Зарегистрируйтесь, чтобы оставить сообщение

Добавить комментарий


Защитный код
Обновить

Активность в форуме

Последние комментарии

Авторизация

Счетчик посетителей

295191
СегодняСегодня55
ВчераВчера205
За неделюЗа неделю55
За месяцЗа месяц8655
ВсегоВсего295191

Случайная картинка


Раздельная настройка виртуальных рабочих столов...
Раздельная настройка виртуальных рабочих столов...