Archive:GPU-Performance/uk

From KDE Wiki Sandbox


Попередження
Перш ніж вносити будь-які зміни до налаштувань вашої системи, будь ласка, ретельно ознайомтеся з настановами і спробуйте зрозуміти сенс ваших дій. Якщо ви вносите зміни до будь-яких файлів вашої системи, створіть початкові копії цих файлів і переконайтеся, що ви знаєте як повернутися до початкових налаштувань, навіть якщо не вдасться запустити графічний сервер.


Попередження
Внесення деяких з пропонованих нижче змін може збільшити поточну температуру графічного процесора вашої системи. Вам слід уважно спостерігати за вашою графічною карткою, — вона не повинна перегріватися!


Вступ

Деякі з популярних графічних карток, особливо графічні картки виробництва NVIDIA, мають проблеми зі швидкодією у середовищі KDE4. Ці проблеми в основному стосуються роботи Плазми (стільниці KDE4) та KWin (програми для керування вікнами у KDE). Загалом кажучи, причиною є не помилки у оптимізації роботи KDE4, а проблеми з драйверами графічної підсистеми. Нещодавні версії ноутбуків на основі графічних процесорів Intel також є доволі проблемними. На цій сторінці подано огляд деяких з проблем, які можуть виникнути, та способів їх усування.

Загальні настанови

Драйвери графічної підсистеми

Обидва основних постачальники мікросхем графічних підсистем мають по декілька різних драйверів, яким можна користуватися:

  • Для карток NVIDIA виробником створено вільний драйвер nv та закритий драйвер nvidia. Хоча KDE 4 має працювати за допомогою першого з драйверів, ви не зможете скористатися прискоренням показу просторових об’єктів, отже варто надати перевагу другому драйверу. Більшість розділів NVIDIA цієї сторінки присвячено роботі закритого драйвера (існує також вільний драйвер nouveau, у якому передбачено певні можливості з прискорення показу просторових об’єктів, але швидкість роботи у разі його використання далека від оптимальної). Через проблеми з ліцензуванням у більшості з дистрибутивів закритий драйвер типово не встановлено. Зверніться до документації з вашого дистрибутива, щоб дізнатися про те, як встановити закритий драйвер.
  • Якщо ви є власником чи власницею картки AMD/ATI, ви також можете скористатися одним з декількох драйверів. Існують вільні драйвери "ati" ("radeon") та "radeonhd" для X.org. У більшості дистрибутивів типовим є драйвер "ati", який є сумісним із застарілими версіями карток Radeon; "RadeonHD", як можна здогадатися з назви, призначено для карток R500 та пізніших, тобто карток з X1300 та більшими цифрами у назві. Крім того, ви можете скористатися закритим драйвером fglrx, хоча у цьому драйвері не передбачено підтримки застарілих карток (докладніше про це можна дізнатися з сайта AMD/ATI). У більшості дистрибутивів для цього драйвера передбачено окремі пакунки у окремих сховищах. Встановити драйвер за допомогою цих пакунків простіше за встановлення драйвера з архіву, що зберігається на сайті AMD.

Зазвичай, бажаним є встановлення найсвіжіших версій драйверів. Тому першим кроком у покращенні роботи у KDE 4 є перевірка того, чи встановлено сучасну версію драйверів та оновлення їх, якщо драйвери є застарілими. Щоб дізнатися про те, яким чином оновити драйвери, зверніться до документації з вашого дистрибутива.

Хоча встановлення тестових версії драйверів може покращити швидкодію графічної підсистеми, не варто встановлювати такі драйвери, оскільки це найімовірніше призведе до погіршення стабільності роботи.

nvidia-settings

Параметри, встановлені за допомогою програми nvidia-settings не буде збережено на постійній основі, якщо програму не було запущено від імені користувача root. Увійдіть до облікового запису root у терміналі системи і запустіть цю програму командою

nvidia-settings&

Якщо ви цього не зробите, вам доведеться встановлювати ці параметри під час кожного запуску графічного сервера. Зробити це можна додаванням рядків параметрів до вашого файла ~/.xinitrc

nvidia — проблема з чорним екраном

Здається, у старіших карток NVidia проблема полягає у тому, що нові вікна малюються чорним або їхній вміст не оновлюється. Таке трапляється, якщо задіяно композитний показ, використано режим openGL і відкрито багато вікон. Ймовірно, причиною є перевищення обсягу відеопам’яті картки? З цією проблемою можна зіткнутися і у разі використання інструментів керування вікнами compiz. У KDE4 ви можете вимкнути ефекти композитного показу за допомогою комбінації клавіш Shift + Alt + F12, щоб продовжити роботу у звичайному режимі.

Проблема полягає у тому, що малювання обрамлення вікна стає дуже повільним, якщо не задіяно композитний режим показу (перевірено у KDE4.3). Рекомендованою альтернативою використанню рушія композитного показу openGL у такому разі є використання XRender. Оскільки ефекти пересування при використанні XRender значно уповільнюють показ, вам слід змінити швидкість анімації на режим негайного показу.

Системні параметри

У програмі Системні параметри KDE 4 передбачено можливість зміни частини параметрів kwin. Змінити ці параметри можна на сторінці Стільниця -> Ефекти стільниці -> Додаткові параметри. Залежно від відеокартки, кращим вибором може бути або режим OpenGL, або режим XRender. У разі використання OpenGL на швидкодію може також вплинути Режим OpenGL. Будь ласка, зверніть увагу на те, що використання деяких з налаштувань, описаних нижче, може потребувати зміни певних параметрів режиму показу.

(Зауваження від користувача): режим XRender значно покращив роботу у системі з пропрієтарним драйвером і 6800 GT (agp), особливо під час перегляду відео (177.80).

Приклади:

  • Встановлення для параметра InitialPixmapPlacement значення 2 може покращити швидкодію Плазми, але призвести до несподіваних зависань kwin.
  • Встановлення режиму OpenGL у значення Shared Memory може зменшити час реакції kwin на події.
  • (зауваження від користувача) Якщо не позначати пункт "Use Vsync", значно покращується швидкодія на gforce 6800 (а також на GeForce 8400M GT).

Якщо з певних причин графічний сервер зависає після натискання кнопки Застосувати у діалоговому вікні, а встановлені вами значення параметрів змінюються на попередні, оскільки ви не змогли вчасно підтвердити їх застосування, спробуйте ще раз. Зазвичай, пришвидшення можна досягти під час однієї з наступних спроб. Якщо і це не допомагає, ви можете змінити значення параметрів безпосередньо у ~/.kde4/share/config/kwinrc.

XGL

Якщо після встановлення тестових драйверів NVIDIA версії 177.80 проблеми зі швидкодією не зникнуть (особливо на картках серій 8xxx-9xxx) ви можете встановити графічний сервер XGL. Докладніший опис способу встановлення можна знайти у документації до вашого дистрибутива.

Зауваження
У XGL є багато проблем з роботою прискорення обробки просторових об’єктів, xvideo та клавіатурними розкладками під час роботи з деякими відеокартками, але його використання є одним з шляхів повного використання можливостей вашої відеокартки у KDE4. Насправді, XGL «обходить» драйвер nvidia і використовує для показу бібліотеку mesa. У разі використання XGL ви не зможете скористатися заснованими на OpenGL ефектами стільниці.


Fedora 10 (та пізніші версії) і xorg.conf (для деяких користувачів)

Деякі зі згаданих у цій статті налаштувань слід вказувати у файлі, який у більшості дистрибутивів зберігається за адресою /etc/X11/xorg.conf

Користувачі Fedora 10 та пізніших версій можуть виявити, що у типовій системі вже немає цього файла (графічний сервер більше його не використовує), отже файл доведеться створити. Щоб зробити це, або віддайте команду:

Спосіб з використанням графічного інтерфейсу

  • встановіть і запустіть програму «system-config-display» (Fedora, GNOME) (натискання кнопки Гаразд після завершення налаштування призведе до створення файла xorg.conf).

Спосіб без використання графічного інтерфейсу

  1. перейдіть у режим командної оболонки;
  2. перемкніть систему у режим роботи 1 за допомогою команди (відданої від імені користувача root):
    init 1
  3. віддайте команду
    Xorg -configure
    від імені користувача root (після завершення її виконання буде створено файл xorg.conf) або віддайте команду
    sudo Xorg -configure :1
    без перемикання режиму роботи.

Проблеми

У цьому розділі наведено резюме декількох симптомів проблем, з якими ви можете зіткнутися, та пояснення можливих причин.

Зміна розмірів деяких вікон відбувається ривками

  • Пояснення: причиною може бути те, що для вашої картки вмикається режим ARGB Visuals (в основному призначений для обробки прозорості), але сама картка його не підтримує. Можливі помилки у показі елементів таких програм або вікон: Стільниця Плазми, діалогове вікно KRunner (Alt + F2), діалогове вікно Плазми Додати новий віджет та вікно konsole.
  • Перевірка: якщо ви бажаєте переконатися, що причиною ваших негараздів є саме ця проблема, віддайте команду
    XLIB_SKIP_ARGB_VISUALS=1 konsole
    у командному рядку і спробуйте змінити розміри нового вікна Konsole (встановлення значення змінної середовища XLIB_SKIP_ARGB_VISUALS вимикає режим ARGB visuals). Якщо розміри вікна змінюються без проблем, ви зіткнулися саме з описаною вище проблемою.
Зауваження
У мене так вдалося виправити і затримку показу попереднього перегляду вмісту у Dolphin. Будь ласка, підтвердіть. --dpalacio 17:33, 27 July 2008 (CEST)


Графічна картка не може впоратися з показом відео у форматі Flash

Якщо ваша графічна картка доволі стара, апаратне прискорення на ній не реалізовано. Зрозуміти це можна за проблемами, як виникають під час перегляду відео на Youtube. Допомогти можуть такі дії:

  • Під час перегляду відео у Flash наведіть на поле відео вказівник миші і клацніть правою кнопкою миші..
  • У відповідь буде показано меню параметрів відтворення.
  • Виберіть пункт Global settings (у нижній частині списку), щоб відкрити панель загальних параметрів.
  • За допомогою цієї панелі вимкніть апаратне прискорення декодування відео у Flash.

Загальні проблеми

  • Ви можете вказати параметр BackingStore у вашому файлі xorg.conf:

У розділі пристроїв (Section "Device")

    ...
    Option "BackingStore" "true"
    ...
EndSection "Device"
Подібне вирішення працює для деяких (наприклад, konsole), але на жаль не для всіх вікон.
  • Якщо не вдасться, скористатися жодним з наведених вище способів, ви можете спробувати встановити
    XLIB_SKIP_ARGB_VISUALS=1
    у файлі ~/.xinitrc вашого користувача, але не варто користуватися цим способом, якщо працюватиме один зі способів, вказаних вище.

NVIDIA

  • Ви можете встановити значення IntialPixmapPlacement за допомогою програми nvidia-settings:
$ nvidia-settings -a InitialPixmapPlacement=2
Це може допомогти для деяких (але, на жаль, не для всіх) карток NVIDIA.

NV/Intel

  • Ви можете увімкнути режим прискорення EXA

У розділі "Device" файла xorg.conf впишіть

    ...
    Option "AccelMethod" "EXA"
# необов’язково, може покращити швидкодію, але призвести до видимих недоліків зображення
#    Option "MigrationHeuristic" "greedy" 
    ...
EndSection "Device"

З цими параметрами швидкодія буде дещо кращою на старіших версіях X-сервера (<=1.4.2) і значно кращою на останніх випусках X-сервера (>=1.4.99.901).

  • Проблему з швидкодією ефектів також можна вирішити використанням відеодрайверів Intel версії 2.6.3.1 або новішої, з ядром 2.6.30-rc1 або новішим і вмиканням UXA у xorg.conf за допомогою таких рядків:

Зауваження: у разі використання ядра 2.6.29, ви зіткнетеся з багатьма вадами і несподіваними зависаннями xorg, якщо увімкнете розширення UXA.

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "intel"
        Option "AccelMethod" "UXA"
EndSection

З такими налаштуваннями i945G автора цієї статті у системі з процесором PentiumD820 вдалося досягти 350-500 кадрів на секунду у Glxgears, всі ефекти чудово працювали у режимі показу Opengl.

ATI

Ще не написано.

Швидкодія Плазми доволі погана

  • Пояснення: причин нерівномірного навантаження на графічну систему з боку Плазми може бути декілька, отже причину у вашому випадку встановити доволі важко.
  • Перевірка: зазвичай проблеми зі швидкодією Плазми помітні у разі використання віджета Перегляд тек. Пересування віджета або гортання його вмісту може бути доволі повільним.

Загальні вирішення

  • Переконайтеся, що причиною уповільнення є не лише ARGB Visuals, які ми обговорили у попередньому розділі.

NVIDIA

  • Ви можете встановити значення параметрів IntialPixmapPlacement і GlyphCache за допомогою програми nvidia-settings:
    $ nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
    Так можна покращити роботу деяких (але, на жаль, не всіх) карток NVIDIA. Роботу деяких карток можна покращити за допомогою значення
    InitialPixmapPlacement=1
    або навіть
    InitialPixmapPlacement=3
  • Значення параметрів, які, ймовірно, можуть покращити роботу карток 8xxx (не перевірялося автором)
    • Option "RenderAccel" "True"
      • типово увімкнено
    • Option "TripleBuffer" "True"
      • Вмикає потрійну буферизацію. "Зменшує час очікування програми на події vblank, але трохи збільшує латентність" (нотатки розробників NVIDIA)
    • Option "DamageEvents" "True"
      • Рекомендується NVIDIA у разі використання композитного показу та glx, збільшує швидкодію, типово увімкнено.
    • Option "UseCompositeWrapper" "True"
      • Вмикає композитну обгортку графічного сервера замість вбудованої.
    • Option "AllowIndirectPixmaps" "True"
      • Може покращити апаратну обробку на картках G80+, на яких встановлено більше за 256 МБ відеопам’яті.
    • Option "BackingStore" "True"
      • Кешувати області, що перекриваються, якщо їх доведеться показувати пізніше.
    • Option "PixmapCacheSize" "200000"
      • виокремити вказану кількість пікселів для кешу растрових зображень.
    • Option "OnDemandVBlankInterrupts" "True"
      • використовувати переривання VBlank лише у режимах, у яких вони потрібні.

ATI

Ще не написано.

Перегляд тек та інші плазмоїди показано з помилками

  • Пояснення: для показу Перегляду тек' та деяких інших віджетів використано апаратне прискорення обробки зображення. Існує два способи такого апаратного прискорення, для роботи Плазма потрібне використання новішого способу EXA.
  • Перевірка: найкраще цей дефект помітний на віджеті перегляду тек, який буде як ділянку вікна заповнену пікслелями випадкового кольору.

Драйвер з відкритим кодом radeon

Типово, драйвер з відкритим кодом radeon використовує метод прискорення XAA. Отже вам слід змінити метод прискорення з XAA (X Acceleration Architecture) на новіший метод EXA. Оскільки для цього доведеться вносити зміни до вашого файла xorg.conf, вам слід пам’ятати, що помилки у цьому файлі можуть призвести до неможливості запуску графічного сервера у вашій системі, отже вам слід зробити резервну копію файла xorg.cong.

Щоб виконати перемикання, внесіть зміни до вашого файла xorg.conf. Знайдіть розділ Device вашої відеокартки. Додайте перед рядком "EndSection" рядок

Option "AccelMethod" "EXA"


Якщо у цьому розділі вже є рядок AccelMethod, змініть значення з XAA на EXA. Збережіть зміни у файлі і перезапустіть графічний сервер.

Зауважте, що використання EXA може призвести до помилок у показі даних деяких застарілих програм, зокрема деяких програм KDE3.

У разі використання EXA наполегливо рекомендуємо вам скористатися новішою версією графічного сервера X, принаймні версії 1.6.x або пізнішої.

Якщо ви є власником або власницею картки, яка працює за допомогою AGP, вам також варто додати до того самого розділу файла налаштуванння такий рядок:

Option "AccelDFS"    "true"

За допомогою цього рядка можна досягти додаткового прискорення, але його використання може призвести до зависання системи під час запуску графічного сервера. Отже, вам слід бути обережним з його додаванням. Докладнішу інформацію з цього питання можна знайти у цій статті.

Деякі речі, які можуть покращити швидкодію для будь-якої картки

Перша порада стосується операційних систем зі встановленими версіями KDE до 4.3.1:

  • Намагайтеся не захаращувати вашу стільницю віджетами, особливо якщо ці віджети належать до типів з динамічним оновленням показаних даних.
  • Вимкніть прозорість, виберіть тему, у якій прозорість не використовується.
  • Використовуйте тему з прозорістю, але змініть її налаштування. Встановіть для часу згасання нульове значення.
    • Існує два способи налаштування, обидва використовують сторінку Ефекти стільниці Системних параметрів. Перший спосіб пов’язано з вкладкою Загальні: встановіть швидкість анімації у значення Миттєва.
    • Другий спосіб пов’язано з вкладкою Всі ефекти: знайдіть ефект Прозорість, натисніть кнопку його налаштування і встановіть тривалість згасання у значення 0, 10 або близьке значення. (Можна встановлювати значення до 100 мс, отже 10 мс є десятою частиною від максимального значення.)

Ці підказки не зможуть перетворити вашу стару графічну картку на найшвидшу у світі, але нададуть змогу користуватися ефектами стільниці на багатьох застарілих картках.

Використання ефектів стільниці призводить до непередбачуваних зависань системи

Ця проблема стосується власників карток Intel і ATi. Причиною, ймовірно, є AccelMethod. Типовим режимом прискорення показу у більшості сучасних драйверів є застарілий і повільний XAA (Option "AccelMethod" "XAA"), який вже не рекомендовано самими розробниками, особливо для композитних режимів показу. На жаль, застарілі версії закритих драйверів ATI і NVidia підтримують лише XAA.

ATi

Спробуйте увімкнути прискорення EXA додаванням наступних двох рядків до файла xorg.conf

Section "Device"
   Option      "UseAtomBIOS" "true"
   Option      "AccelMethod" "EXA"
   # ...
EndSection

Описані способи працюють для обох драйверів, radeon і radeonhd, але лише для карток до X1950. Картки HD2xxx та новіші ще не підтримуються.

Драйвером radeon автоматично використовується AtomBIOS, отже цей рядок слід закоментувати. Якщо ж ви вирішили скористатися драйвером radeonhd, рядок слід залишити. У найближчому майбутньому EXA стане типовим методом, але його використання не може автоматично усунути всі проблеми.

Intel

Варто пошукати у файлі Xorg.0.log згадки щодо EXA. Якщо ви не знайдете таких згадок (або згадок UXA), спробуйте додати рядок EXA у описаний у розділі для ATi спосіб. UXA є експериментальним режимом, підтримку якого передбачено лише у деяких драйверах. Ймовірно, що найкращі частини коду обробки цього методу буде об’єднано з кодом EXA.

Докладніші відомості можна знайти на форумах Phoronix.

Вікно KRunner (Alt+F2) виглядає якось дивно

NVIDIA

KRunner display problems
KRunner display problems

У разі використання карток NVIDIA діалогове вікно krunner може бути показано на екрані декілька разів, одне вікно під іншим (редагування можна буде виконувати лише у верхньому вікні). Цей дефект пов’язано зі встановленням параметра InitialPixmapPlacement=1, яке ми рекомендували вище. Шляхів вирішення цієї проблеми ще не знайдено, але з нею стикаються лише користувачі ранніх версій KDE 4.

Зникла більша частина піктограм у системному лотку

Ймовірно, ви колись додали KDE_SKIP_ARGB_VISUALS до ~/.bash_profile, /etc/profile або ~/.profile. Якщо це так, знайдіть ці рядки і закоментуйте їх. Можлива автоматична повторна поява цих рядків. Якщо ж таких рядків немає, перевірте бібліотеки Qt4, якими ви користуєтеся.


Посилання

— Покращення швидкодії за використання тестової версії драйвера NVidia 177.67
— Гілка, присвячена проблемам з графікою на форумі NVIDIA.
Нотатки щодо використання зовнішніх звукових карток