Производительность эффектов рабочего стола

From KDE UserBase Wiki
Revision as of 09:35, 30 March 2012 by Drhouse (talk | contribs) (Created page with "Все декорации окон, которые могут быть загружены через диалог ''Получить новые декорации ...'' испо...")

Производительность эффектов рабочего стола

Производительность эффектов рабочего стола в KDE Plasma Workspaces в основном определяется взаимодействием аппаратной графики (GPU), это драйвер и Композитор (Kwin). Композитор пытается выбрать наиболее доступные настройки для вашего графического видеоадаптера с определяя помощью запросов драйвера какое оборудование он поддерживает. Иногда помогает KWin улучшить производительность на реально поддерживаемом оборудовании.

Выбор правильного драйвера

Определение используемого драйвера

Очень важно то, что нужный драйвер установлен и используется. Если нет драйвера или используется неправильный драйвер, эффекты рабочего стола вернуться в режим без ускорения (XRender).

Информация об используемом драйвере доступна через KInfoCenter. Щелкните на Сведения о графике -> OpenGL и изучите информацию, представленную в отображенном модуле. Соответствующая информация может быть найдена в разделе Драйвер, в частности в Производитель, Рендерер и Версия OpenGL/ES. Сведения предоставляются драйвером и могут быть трудны для разбора.

Сведения об OpenGL в KInfoCenter
Если Renderer говорит: "Software Rasterizer" то это значит, что драйвер не установлен. Для всех других драйверов, пожалуйста, проверьте, правильно ли они используются.

Доступные драйверы

AMD/ATI

Для оборудования AMD/ATI доступны два драйвера: проприетарный fglrx или Catalyst и свободные драйверы Mesa (известные как radeon, r300 и r600). С драйвером fglrx доступна не вся функциональность и общая производительность скорее всего будет лучше при использовании драйверов Mesa. Рекомендуется всегда использовать Mesa драйверы с эффектами рабочего стола. Если вы нашли сведения о "Mesa" в версии OpenGL/ES, то вы используете свободные драйверы и нет необходимости что либо делать.

Mesa драйверы существуют в виде новой и старой версиях. Вы должны убедиться, что используете новые, которые опознаются по слову "Gallium" в строке Renderer.

Intel

Оборудование от Intel использует свободные Mesa драйверы. Нет доступных альтернатив.

NVIDIA

Для оборудования от NVIDIA доступные два драйвера: проприетарный драйвер NVIDIA и свободные Mesa драйверы (известные как nouveau). Свободные драйверы по-прежнему активно разрабатываются и доступны не во всех дистрибутивах и не для всех аппаратных средств. В общем случае рекомендуется использовать проприетарные драйвера. Вы используете проприетарные драйвера в том случае, если в строке Версия OpenGL/ES отображено значение NVIDIA.

Установка драйвера

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

Версия OpenGL

KWin поддерживает OpenGL 1.x и OpenGL 2.x. По умолчанию, KWin использует возможности OpenGL 2 если они доступны. OpenGL 2 позволяет использовать больше эффектов, но требует оборудование по мощнее. Очень важно знать то, что даже если драйвер поддерживает только, к примеру, OpenGL 1.4 это дает возможность KWin использовать возможности OpenGL 2, доступные через расширения драйвера.

Вы можете найти версию OpenGL предоставляемую вашим драйвером в строке "Версия OpenGL/ES" в KInfoCenter как описано выше. Версия определяется первыми двумя или тремя цифрами, например, 2.1.

Выяснить использует ли KWin OpenGL 1 или 2 не совсем просто, так как это полностью полностью определяется во время выполнения. Наилучшим имеющимся тестом является использование эффекта инвертирования, который может быть включен в Параметры системы -> Эффекты рабочего стола -> вкладка Все эффекты. После его включения экран должен быть инвертирован при помощи сокращения Meta + Ctrl + I. Если инвертируется, используется OpenGL 2, если ничего не происходит, то используется OpenGL 1 .

Можно заставить KWin использовать to use OpenGL 1 пройдя в Параметры системы -> Эффекты рабочего стола -> вкладка Дополнительно и сняв галочку Использовать шейдеры OpenGL 2. Это повысит производительность устаревшего оборудования. В общем случае, использование шейдеров OpenGL 2, если драйвер сообщает о версии 3.x, полностью безопасно ( доступно только с NVIDIA на момент написания этой статьи).

Tip

Для современного оборудования шейдеры OpenGL 2 дают лучшую производительность, чем OpenGL 1. Отключение этой опции не улучшает производительность.


kwin_gles

Начиная с KWin версии 4.8 можно использовать отдельно собранный двоичный kwin_gles как замену для KWin. Он ведет себя почти так же, как исполняемый KWin в OpenGL2 режиме с небольшой разницей, что он использует egl вместо glx в качестве родного интерфейса платформы.

Warning

Это также означает, что если обычный KWin не работает в режиме OpenGL 2, маловероятно, что kwin_gles будет.


Чтобы протестировать kwin_gles просто запустите kwin_gles --replace в Konsole. Так как это относительно новая особенность, она не так тщательно протестирована как обычный KWin и обратная связь всегда приветствуется. Предположим, что тест удался, и вы хотите использовать kwin_gles на регулярной основе, вы можете добавить исполняемый сценарий в ~/.kde4/env/ экспортирующий переменную среды KDEWM=kwin_gles.

Масштабирование миниатюр

Композитор поддерживает различные способы масштабирования для эскизов вынесенных в окне предварительного просмотра панели задач или эффектов, таких как Настоящие Окна. Он попытается сделать миниатюры как можно более точными что, конечно, потребует больше ресурсов.

Метод масштабирования может быть изменен в Параметры системы -> Эффекты рабочего стола -> вкладка Дополнительно -> Список выбора метода масштабирования. Доступны следующие параметры:

  • Четкий
  • Гладкий
  • Точный

В таблице представлен обзор того, как эскизы отображаются с разными настройками.

Обзор того, как эскизы отображаются с различными настройками
Четкий: Четкий
Плавный: Плавный
Точный: Точный

По умолчанию используется точный. На Intel точный никогда не используется и не может быть включен, если переменная окружения KWIN_FORCE_LANCZOS установлена в значение 1.

Переключение с точного на плавный может значительно повысить производительность эффектов, таких как Настоящие Окна.

Общая скорость анимаций

Анимация занимает некоторое время и продолжительностью анимации является то, что заставляет людей думать, что это быстрый, живой интерфейс или то, что он отстает. Это очень субъективные ощущения, а разница между слишком быстрым и слишком медленным может быть в миллисекундах. Невозможно достичь идеального значения для всех пользователей.

Глобальный уровень продолжительности анимации можно изменить с помощью Параметры системы -> Эффекты рабочего стола -> Вкладка Общие -> Список выбора скорости анимации. Он варьируется от «Очень медленного» до «Мгновенного», который не отображает никакой анимации. При изменении с "Обычного" ​​на "Быстрый", многие пользователи сообщили, что имеют более быстрый интерфейс.

Графическая подсистема Qt

С выходом версии 4.7 (выхода июля 2011 года) Compositor может использовать графическую подсистему Qt raster вместо native (X11). Это относится только к отображение декораций окон и не имеет отношения к движкам композитинга (OpenGL/XRender).

Какая графическая подсистема используется, зависит от стандартов дистрибуции. Для Композитора raster особенно рекомендуется, если используется драйвер NVIDIA.

Декорации окон

Некоторые декорации окон выполняют анимацию, если окно активируется. Это влияет на эффективность воздействия, если во время анимации активного окно изменяется. Влияние на производительность может быть уменьшено с помощью графической подсистемы "raster" (см. выше).

Стандартная декорация окон Oxygen предоставляет опцию для отключения анимаций: Параметры системы -> Внешний вид рабочих мест -> Декорации окон -> Настройка декорации... -> Вкладка Общие Галочка Включить анимации. Отключение анимаций может улучшить производительность.

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

Another area of window decorations which can impact the performance are shadows. Again the default decoration Oxygen provides a setting to disable them in the same configuration dialog as described above in tab "Shadows" and the themed decorations do not provide an option to disable shadows.

Blur Effect

The Blur Effect is one of the most expensive effects provided by the Compositor. By default it gets enabled for all hardware except Intel hardware. The performance impact of the blur effect depends on the number of open and translucent windows. Especially translucent widget styles (e.g. Oxygen Translucent) and translucent window decorations (e.g. Aurorae Themes) have an impact on the performance. If such a theme is used and the performance is bad it is recommended to either change the theme or disable the Blur effect.

The performance of the Blur effect can be adjusted through Systemsettings -> Desktop Effects -> All Effects tab -> Configuration dialog of Blur effect. Moving the slider for strength to "Light" requires less resources while moving it towards "Strong" requires more resources. Since 4.8 (release January 2012) the intermediate rendering results can be kept (default) which improves the performance even with translucent themes.

Advanced Desktop Effects Settings

The Compositor provides some advanced settings under Systemsettings -> Desktop Effects -> Advanced tab. Some of the settings have already been explained. This section focuses on the remaining settings. Changing these settings in general do not improve the performance but make it worse. The Compositor uses the best possible settings.

Compositing type

The Compositing type allows choice of the compositing backend, either XRender or OpenGL. By default OpenGL is used which is hardware accelerated. XRender is available even if no OpenGL driver is installed (e.g. virtual machines) and uses mostly the CPU for rendering. Many effects are not available with XRender.

Information

If there is no good reason to change, the default OpenGL is the correct choice. If OpenGL is not available there is an automatic fallback to XRender.


Keep window thumbnails

This has hardly any influence on performance. It is an option to decide how long thumbnails are kept. Best is to not touch this setting.

Suspend desktop effects for fullscreen windows

This setting influences the performance of fullscreen windows such as games. The compositor is suspended as long as there is a fullscreen window. The disadvantage is that it causes flickering when a window appears on top of the fullscreen window (e.g. a context menu) and is too generic. As well on some distributions (e.g. Kubuntu 11.04) the Intel driver causes a crash when closing the fullscreen window.

If the compositor should be disabled while a fullscreen application such as games or video is used it is better to disable compositing either through the shortcut Alt + Shift + F12 or since 4.7 (Released July 2011) through a window specific rule for the window.

OpenGL mode

Warning

The setting is obsolete and has been removed in 4.7 (Released July 2011). Any setting except the default "Texture from Pixmap" is likely to break your desktop.


Enable direct rendering

Warning

The setting is obsolete and has been removed in 4.8 (Released January 2012).

The compositor determines by itself whether direct rendering can and has to be used. Changing this setting will most likely break functionality.

Use VSync

VSync allows you to synchronize the rendering with the screen. Unless there is good reason to change, this setting should be enabled. Even if the setting is disabled the Compositor tries to use the frame rate the screen supports and by default a frame rate of 60 Hz is used.

For multiple screens it is important to know that the rendering can only be synchronized with one screen. In case the screens have a different frame rate it might be valid to disable this option and to set a manual frame rate.