Archive:Xgl Troubleshooting

Перейти к: навигация, поиск
Icon-obsolete.png Эта статья актуальна для версии '10', которая теперь является устаревшей!
Пожалуйста, обратитесь к странице обсуждения этой статьи для получения подробной информации.


Xgl все еще является очень новым кодом и был полностью протестирован лишь на скромном количестве аппаратных конфигураций. Мы работаем над тем, чтобы сделать его легким в установке и свободным от ошибок, однако он еще не идеален.

Если вы попали на эту страницу с контрольной панели "Desktop Effects", пытаясь включить Xgl, обратите внимание на Содержание справа или поверхностно просмотрите страницу в поисках информации, описывающей вашу проблему. Также существует страница, содержащая детальную информацию по установке Xgl на SUSE 10.1 и SLED 10. Она включает в себя описание необходимых шагов для включения 3D ускорения на различных видеокартах.

Вы также можете посетить канал #Xgl на irc.freenode.org для дополнительной поддержки.

Выявленные ошибки в SLED 10

  • Если вы ранее использовали опцию "Сохранять текущий сеанс" ("Save current setup") при выходе из GNOME, то после переключения в Xgl, вы не будете автоматически переключены с metacity на compiz. Самое простое решение проблемы - удалить файл .gnome2/session в вашем домашнем каталоге, выйти и снова зайти.
  • Если у вас несколько видеокарт или отключенный интегрированный видеочип на материнской плате и видеокарта, модуль управления Desktop Effects может некорректно сконфигурировать/определить их.
  • Если у вас видео чипсет от Intel, и во время установки не была включена поддержка 3D, Desktop Effects не сможет включить его. Вы можете исправить это, запустив SaX2 самостоятельно (щелкните на "Графическая плата и монитор" в Центре управления) и выберите пункт в левом нижнем углу для включения 3D ускорения. Перезапустите Desktop Effects.

Выявленные ошибки в SLED 10 RC2

  • Автоматическая установка ATI и NVIDIA драйверов может не работать. На странице Советы по использованию Xgl в SUSE описаны действия по самостоятельной установке.
  • После установки драйвера NVIDIA на 64-битных (x86_64) платформах, модуль Desktop Effects может все еще утверждать, что 3D ускорение не включено. Это ошибка в коде определения; вы можете обойти его, удерживая клавишу Shift и два раза щелкнув на слове "Disabled" около "3D Acceleration". Это позволит включить Xgl. Не делайте этого пока не установили проприетарный драйвер от NVIDIA .
  • В некоторых случаях с ATI картами, можно разрешить Xgl даже без установки драйвера. Вы можете использовать команду "gnome-xgl-switch --disable-xgl" в консоли чтобы вернуться к традиционному X server'у, в случае если вы включили Xgl и больше не можете войти в систему.
  • Некоторые java приложения (такие как кросс-платформенный клиент GroupWise ) не будут отрисовывать содержимое своих окон, вместо него возможно лишь пустое серое окно.

Проблемы использования определенного программного обеспечения совместно с Xgl

  • Некоторые приложения (например, Eagle CAD package или SDL игры - проверьте на frozen-bubble) могут иметь частично или полностью прозрачные окна (вы увидите заголовок и границы окна, но само окно будет полностью белым или прозрачным).
    Вставьте в командную строку 'export XLIB_SKIP_ARGB_VISUALS=1' перед вызовом приложения, чтобы избавиться от прозрачности. Это позволит временно решить проблему.
  • OpenGL игры будут работать с малой производительностью, т.к. в случае с Xgl они не могут работать напрямую с видеокартой (“direct rendering mode”). Эта проблема обходится запуском дополнительного НЕ-Xgl Xserver'а. Вы можете создать с помощью любого текстового редактора следующий bash-скрипт и поместить его в /usr/local/bin. Назовем этот скрипт Xgames.

#!/bin/sh

old_user=$USER

if [ ! $UID -eq 0 ]; then
echo "sudo-ing...";
exec sudo "$0" $1 $old_user $2 $3 $4 $5 $6 $7 $8;
fi

old_user=$2

Xorg :1 -ac -br &
export DISPLAY="localhost:1"
sleep 1

su $old_user -c $1 $3 $4 $5 $6 $7 $8 $9
sleep 1

Пример использования:> Xgames `which trackballs`
В скрипте реализован запуск с помощью утилиты sudo дополнительного Xorg сервера на дисплее :1 (вы можете перейти туда с помощью Ctrl+Alt+F8 ). В контексте этого дополнительного X сервера и выполняется ресурсоемкое OpenGL приложение без потери производительности. Если вы не желаете каждый раз вводить пароль для sudo, добавьте в /etc/sudoers :
username username = NOPASSWD: /usr/local/bin/Xgames, где username - ваше имя пользователя (или любого другого пользователя, которому вы хотите дать право на запуск Xserver'а)
Этот метод запуска OpenGL приложений является потециальной дырой в безопасности - не используйте его для запуска сетевых игр - уязвимость в коде игры может привести к несанкционированному root-доступу к вашей системе

Проблемы использования Compiz с KDE

  • "Особые параметры окна" ("Window Specific Settings") и другие детали функциональности, присущие kwin не работают. (Однако, пакет devilspie может предоставить частично схожую функциональность.)
  • Не существует KDE-инструментов для конфигурирования compiz; вам придется использовать плагин "gconf" для compiz, также как и GNOME-утилиты "Desktop Effects" и/или gconf-editor.
  • Compiz настраивает оформление окон под тему GNOME , а не тему KDE.

Несколько ошибок, связанных с KDE также было исправлено между RC2 и RC3 (Панель и переключатель задач не показывали окна, кнопка "Показать рабочий стол" не работала.)

Проблемы при настройке

Этот раздел для людей, пытающихся сконфигурировать Xgl вручную в старых версиях SUSE, или с неподдерживаемыми видеокартами.

Часто встречающиеся ошибки при настройке

  • Xgl не нужно расширение Composite , включенное в xorg.conf - по сути это отрицательно влияет на производительность, т.к. , например, NVIDIA драйвер отключает OpenGL по умолчанию при включенном Composite. Расширение Composite предоставляет сам Xgl без необходимости дополнительной конфигурации.
    Если вы получали ошибку об отсутствии расширения Composite при запуске compiz, вы наверняка пытались запустить compiz на базе Xorg server'а (который не должен использоваться ни для одной программы, кроме запуска самого Xgl) а не на базе Xgl server'а. Установите соответственно переменную окружения DISPLAY .
  • Если вы получаете сообщение "BadLength (poly request too large or internal Xlib length error)" при запуске Xgl, это означает, что библиотека Mesa, связанная с compiz,не соответствует набору библиотек, связанных с Xserver'ом. На практике это обычно означает, что у вас не включено 3D ускорение. Используйте sax2 для включения 3D ускорения. Для проверки используйте команду glxinfo|grep direct при активном Xorg (не Xgl!). Вывод команды "Yes" подтвердит наличие включенного 3D ускорения. Также посмотрите Часто задаваемые вопросы.

Замечания по аппаратному обеспечению

  • XVideo будет работать очень медленно если аппаратное ускорение (пиксельные шейдеры) недоступно. При использовании композитного менеджера работа будет быстрой только если FBO или pBuffer доступны и активированы, либо при полностью непрозрачных полноэкранных окнах (включите опцию apps/compiz/general/screen0/options/unredirect_fullscreen_windows, это можно сделать при помощи gconf-editor).

ATI / открытый драйвер "radeon"

  • В драйвере не реализована поддержка pBuffer и FBO . При использовании композитного оконного менеджера все окна обрабатываются программно и только сам compositing аппаратно ускорен. Однако это прекрасно работает в большинстве случаев.
  • Поддержка R300 и R400 экспериментальна, некоторые карты работают, некоторые нет.
  • Также могут быть невыявленные вопросы с драйвером radeon, т.к. он широко не протестирован. Пожалуйста, составьте сообщение об ошибке для карт, основанных на R100 и R200, и уточните на главной странице Xgl работающие карты, основанные на R300 и R400.

ATI / проприетарный драйвер "fglrx"

  • Убедитесь, что используете fglrx версии 8.25.18 или новее. В более ранних версиях присутствуют ошибки, несовместимые с Xgl.
  • X300, X600, и X700 работают если недокументированная опция Option "KernelModuleParm" "agplock=0" включена в /etc/X11/xorg.conf (смотрите openSUSE bugzilla entry #161247). Если вы включите Xgl при помощи Desktop Effects , эта опция будет добавлена по умолчанию.
  • Когда ни один композитный менеджер (например compiz) не запущен, драйвер может работать довольно медленно. Не используйте Xgl без композитного менеджера.

Intel / открытый драйвер "i810"

  • В драйвере не реализована поддержка pBuffer и FBO . При использовании композитного оконного менеджера все окна обрабатываются программно и только сам compositing аппаратно ускорен. Однако это прекрасно работает в большинстве случаев. Добавлении поддержки FBO планируется в ближайшем будущем.
  • XVideo YV12 поверхности аппаратно ускорены (когда не используется композитный менеджер или при включенной опции apps/compiz/general/screen0/options/unredirect_fullscreen_windows), но из-за ошибки в драйвере, видео теряет один из цветовых каналов, что приводит к зеленому/фиолетовому оттенку. Эта проблема в разработке.

NVIDIA / открытый драйвер "nv"

  • Не поддерживает 3D ускорение. Xgl не будет работать должным образом в программной эмуляции, избегайте использования такой конфигурации.

NVIDIA / проприетарный "nvidia"

  • OpenGL ускорение некорректно работает при активном расширении Composite. Эта опция в /etc/X11/xorg.conf должна быть отключена. Замечание: Xgl в любом случае поддерживает Composite, даже если он отключен в xorg.conf. С этим драйвером могут быть использованы FBO вместо pbuffers для ускорения XVideo. Разрешите это, изменив
    DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:pbuffer" на
    DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:fbo" в /etc/sysconfig/displaymanager. (Модуль Desktop Effects устанавливает это по умолчанию.)

Словарь

Расширение Composite
Это расширение к X позволяет отрисовку целой ветки иерархии окон в off-screen буфере. В последствии приложения берут содержимое этого буфера и используют по своему усмотрению. Off-screen буфер может быть автоматически поглощен родительским окном или внешними программами, называемыми композитными менеджерами.
FBO
Frame Buffer Object (FBO) это расширение OpenGL, которое обеспечивает простой интерфейс для отрисовки в места, отличные от буферов GL, предоставленных оконной системой. Этот интерфейс новее и чище чем pBuffers, но считается менее стабильным на данный момент.
pBuffer
Пиксельный буферы - Pixel buffers (скоращенно pBuffers) дополнительные невидимые буферы для OpenGL renderer.