Archive:GPU-Performance/uk
Вступ
Деякі з популярних графічних карток, особливо графічні картки виробництва NVIDIA, мають проблеми зі швидкодією у середовищі KDE4. Ці проблеми в основному стосуються роботи Плазми (стільниці KDE4) та KWin (програми для керування вікнами у KDE). Загалом кажучи, причиною є не помилки у оптимізації роботи KDE4, а проблеми з драйверами графічної підсистеми. Нещодавні версії ноутбуків на основі графічних процесорів Intel також є доволі проблемними. На цій сторінці подано огляд деяких з проблем, які можуть виникнути, та способів їх усування.
Загальні настанови
Драйвери графічної підсистеми
Обидва основних постачальники мікросхем графічних підсистем мають по декілька різних драйверів, яким можна користуватися:
- For NVIDIA cards there's the free nv and the proprietary nvidia driver. While KDE4 should work fine with the former, it doesn't offer 3D acceleration, so the latter may be your only choice.
AllMost NVIDIA subsections herein only refer to the proprietary driver (there's also a 3rd free driver called nouveau that's currently under development. Unfortunately I don't know how usable it is so far). Due to licensing restrictions most distributions don't install the proprietary driver by default. Please refer to your distribution for information on how to install it.- Update: Nvidia has recently issued a new beta driver which is supposed to address most of the performance problems seen with KDE4. It can be downloaded in 64bit and 32bit versions. You need to add some options to your xorg.conf and enable certain feature at runtime, see this post on the NvNews forums for details. Note: Only install beta drivers if you know what you are doing.
- Update 2: NVIDIA have released a new version 177.68 of beta drivers which fixes a couple of bugs and should improve performance with the KDE 4 OpenGL compositing manager. More info and downloads here. The latest beta version is 177.70 and it should enhance performance when dragging Plasma applets and fix some text rendering performance and corruptions. More info here.
- Update 3: NVIDIA's 177.70 version of beta drivers has improved support for RENDER operations with the same source, and destination; this should enhance performance in some situations, e.g. when dragging Plasma applets in KDE4. More info here.
- Update 4: NVIDIA's 177.80 version of beta drivers out here; some performance problem were fixed.
- Update 5: NVIDIA's 180.08 version of beta drivers out here; some performance problem were fixed. Also check here for the latest version of beta drivers.
- For AMD/ATI cards you also have a few options. There are the free "ati" and "radeonhd" drivers for X.org ("ati" is also referred to as "radeon", without "hd", but most xorg driver packages I've seen seem to call it "ati"). Most distributions seem to default to "ati" which is compatible with cards from the earliest Radeons onwards; "RadeonHD", as the name suggests, is only for R500 and later generation cards - in retail model numbers that's the X1300 and later. Both basically should run OK for a standard desktop and they share the same 3D code in mesa so should be similar for desktop effects (note, 3D support for cards newer than R300 is considered unstable and for R600 and later is very experimental). Nonetheless, if you have an X1300 or later card (i.e. one that should be supported by both drivers) and you run in to problems with one it may be worth trying out the other. You also have the option of trying the proprietary fglrx driver, though this has limited support for older cards - there's more on the AMD/ATI website about this option. Some distributions package this or have third party repos that package it and this is likely to be easier than downloading from AMD directly.
Зазвичай, бажаним є встановлення найсвіжіших версій драйверів. Тому першим кроком у покращенні роботи у KDE 4 є перевірка того, чи встановлено сучасну версію драйверів та оновлення їх, якщо драйвери є застарілими. Щоб дізнатися про те, яким чином оновити драйвери, зверніться до документації з вашого дистрибутива.
Хоча встановлення тестових версії драйверів може покращити швидкодію графічної підсистеми, не варто встановлювати такі драйвери, оскільки це найімовірніше призведе до погіршення стабільності роботи.
nvidia-settings
Параметри, встановлені за допомогою програми nvidia-settings не буде збережено на постійній основі, якщо програму не було запущено від імені користувача root. Увійдіть до облікового запису root у терміналі системи і запустіть цю програму командою
nvidia-settings&
Якщо ви цього не зробите, вам доведеться встановлювати ці параметри під час кожного запуску графічного сервера. Зробити це можна додаванням рядків параметрів до вашого файла ~/.xinitrc
nvidia — проблема з чорним екраном
It seems that older NVidia cards run into the problem that newly opened windows just are drawn as black windows or do not refresh properly anymore. This happens if composite is activated and openGL is used with many windows opened. Maybe the cards are running out of video memory? (The problem does occur with the compiz window manager as well.) In KDE4 you can deactivate composite/effects with Shift + Alt + F12 to continue your work with the desktop normally.
Проблема полягає у тому, що малювання обрамлення вікна стає дуже повільним, якщо не задіяно композитний режим показу (перевірено у 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. Докладніший опис способу встановлення можна знайти у документації до вашого дистрибутива.
Fedora 10 (та пізніші версії) і xorg.conf (для деяких користувачів)
Деякі зі згаданих у цій статті налаштувань слід вказувати у файлі, який у більшості дистрибутивів зберігається за адресою /etc/X11/xorg.conf
Користувачі Fedora 10 та пізніших версій можуть виявити, що у типовій системі вже немає цього файла (графічний сервер більше його не використовує), отже файл доведеться створити. Щоб зробити це, або віддайте команду:
Спосіб з використанням графічного інтерфейсу
- встановіть і запустіть програму «system-config-display» (Fedora, GNOME) (натискання кнопки після завершення налаштування призведе до створення файла xorg.conf).
Спосіб без використання графічного інтерфейсу
- перейдіть у режим командної оболонки;
- перемкніть систему у режим роботи 1 за допомогою команди (відданої від імені користувача root):
init 1
- віддайте команду
Xorg -configure
від імені користувача root (після завершення її виконання буде створено файл xorg.conf) або віддайте командуsudo Xorg -configure :1
без перемикання режиму роботи.
Проблеми
У цьому розділі наведено резюме декількох симптомів проблем, з якими ви можете зіткнутися, та пояснення можливих причин.
Зміна розмірів деяких вікон відбувається ривками
- Пояснення: причиною може бути те, що для вашої картки вмикається режим ARGB Visuals (в основному призначений для обробки прозорості), але сама картка його не підтримує. Можливі помилки у показі елементів таких програм або вікон: Стільниця Плазми, діалогове вікно KRunner (Alt + F2), діалогове вікно Плазми та вікно konsole.
- Test : If you want to make sure this issue is a problem for you, run
XLIB_SKIP_ARGB_VISUALS=1 konsole
on the command-line and try to resize the new konsole window (setting the environment variable XLIB_SKIP_ARGB_VISUALS turns off ARGB visuals). If it resizes without problems, then this is certainly one of the problems you're facing.
Загальні проблеми
- Ви можете вказати параметр 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
- You can set the IntialPixmapPlacement and the GlyphCache option with the nvidia-settings utility:
$ nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
This works for some (but unfortunately not all) NVIDIA cards. Some cards reportedly work better usingInitialPixmapPlacement=1
or maybe evenInitialPixmapPlacement=3
- Options that are said to work well on 8xxx cards but are untested (by me)
- Option "RenderAccel" "True"
- enabled by default
- Option "TripleBuffer" "True"
- Enables triple buffering. "Decreases the time an application stalls while waiting for vblank events, but increases latency slightly" (NVIDIA Readme)
- Option "DamageEvents" "True"
- Recommended by NVIDIA if running composite+glx, increases performance, enabled by default
- Option "UseCompositeWrapper" "True"
- Enables the X server's composite wrapper instead of the builtin one.
- Option "AllowIndirectPixmaps" "True"
- Could improve hardware rendering on G80+ cards with more than 256 MB of video memory.
- Option "BackingStore" "True"
- Cache overlayed areas in case they get redisplayed later
- Option "PixmapCacheSize" "200000"
- allocate said number of pixels for pixmap caches
- Option "OnDemandVBlankInterrupts" "True"
- only fire VBlank interrupts in modes where they are needed
- Option "RenderAccel" "True"
ATI
Ще не написано.
Перегляд тек та інші плазмоїди показано з помилками
- Пояснення: для показу Перегляду тек' та деяких інших віджетів використано апаратне прискорення обробки зображення. Існує два способи такого апаратного прискорення, для роботи Плазма потрібне використання новішого способу EXA.
- Перевірка: найкраще цей дефект помітний на віджеті перегляду тек, який буде як ділянку вікна заповнену пікслелями випадкового кольору.
Драйвер з відкритим кодом radeon
The Open Source radeon driver uses the XAA acceleration method by default. So you need to change the acceleration method from XAA (X Acceleration Architecture) to the newer EXA. As this involves editing your xorg.conf file, bear in mind that if you make an error, it may result in X not starting on your system, so first save a copy of the existing xorg.cong file.
To make the switch, edit your xorg.conf file. Locate the Device section for your graphics card. Before the "EndSection" line, add
Option "AccelMethod" "EXA"
If there is already a line with AccelMethod, change it from XAA to EXA. Save the file and restart the X server.
Note that using EXA may result in some older applications, such as some KDE3 programs being rendered incorrectly.
When using EXA it is strongly recommended to use a recent X server, at least 1.6.x or even better the new 1.7 release -- perhaps best to wait for 1.7.1.
If you have an AGP-based card then you may also want to add the following line at the same location into the configuration file.
Option "AccelDFS" "true"
This should accelerate the driver even more, but may get you a hardlock when starting X. So be cautious with this option. See this article for more information on this topic.
Деякі речі, які можуть покращити швидкодію для будь-якої картки
Перша порада стосується операційних систем зі встановленими версіями KDE до 4.3.1:
- Намагайтеся не захаращувати вашу стільницю віджетами, особливо якщо ці віджети належать до типів з динамічним оновленням показаних даних.
- Вимкніть прозорість, виберіть тему, у якій прозорість не використовується.
- Use a theme with transparency, but change the configuration. Set the fade time to zero.
- There are two ways to do this, both in the systemsettings dialog. One, on the tab, set animation speed to .
- Two, on the tab, find translucency, configure it, and set fading duration to 0 to 10 or so. (The spinner increments are 100 ms, so the 10 ms suggestion is only a tenth of that.)
These hints won't turn an old graphics card into a fast one, but they will make Desktop Effects a feasibility on many older cards.
Використання ефектів стільниці призводить до непередбачуваних зависань системи
This seems to affect Intel and ATi cards. AccelMethod seems to be the culprit. The default acceleration path for most drivers right now is the outdated and slower XAA (Option "AccelMethod" "XAA") which is not recommended anymore, especially with compositing. Unfortunately, the proprietary binary blobs of ATI and NVidia still only support XAA
ATi
Спробуйте увімкнути прискорення EXA додаванням наступних двох рядків до файла xorg.conf
Section "Device" Option "UseAtomBIOS" "true" Option "AccelMethod" "EXA" # ... EndSection
This works with both the radeon as well as the radeonhd driver but only with cards up to an X1950. HD2xxx and above aren't supported yet.
AtomBIOS is automatically used by the radeon driver, so that line will need to be commented out. If you have the radeonhd driver, however, you will need it. EXA is expected to become the default in the near future, but having it specified here is unlikely to cause any problems even then. 3D and EXA support for HD2xxx and above is expected later this year (2009) as they are already in an experimental branch.
Intel
It's worth checking Xorg.0.log for mention of EXA. If you don't find it (or UXA) try adding the EXA line as described in the ATi section. UXA is an experimental option, but only supported by a few drivers. It's likely that the best bits will be merged into EXA soon.
Докладніші відомості можна знайти на форумах Phoronix.
Вікно KRunner (Alt+F2) виглядає якось дивно
NVIDIA
У разі використання карток NVIDIA діалогове вікно krunner може бути показано на екрані декілька разів, одне вікно під іншим (редагування можна буде виконувати лише у верхньому вікні). Цей дефект пов’язано зі встановленням параметра InitialPixmapPlacement=1, яке ми рекомендували вище. Шляхів вирішення цієї проблеми ще не знайдено, але з нею стикаються лише користувачі ранніх версій KDE 4.
Зникла більша частина піктограм у системному лотку
At some point you may have been told to add KDE_SKIP_ARGB_VISUALS to either ~/.bash_profile, /etc/profile or in ~/.profile. If that rings a bell for you, hunt for it and comment it out. You may find that they magically re-appear. Otherwise, check the Qt4 libraries you are using. In my case I needed Qt 4.4.3 together with KDE 4.2.