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

From KDE Wiki Sandbox
This page is a translated version of the page Desktop Effects Performance and the translation is 100% complete.

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

Производительность эффектов рабочего стола в 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 использовать 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.KWin всегда выберет лучшую графическую систему для выбранного композитора. Следующие общие комбинации могут быть рекомендованы:

  • OpenGL с raster
  • XRender с native
  • Нет Композитора:
    • native в случае удаленных подключений (рекомендуется оформление окон: Ноутбук)
    • raster при использовании фантазии в оформление окон (в том числе Oxygen и Plastik в 4.10 или более поздней версии)

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

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

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

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

Еще одной областью оформления окон которая может повлиять на производительность являются тени. Стандартная декорация Oxygen снова обеспечивает настройку для отключения их в том же диалоге настройки, как описано выше в таблице "Тени" и тематические декорации не дают возможности отключать тени.

Эффект размытия

Эффект размытия является одним из самых дорогих эффектов предоставляемых Композитором. По умолчанию он будет включен для всех устройств, кроме Intel. Влияние на производительность эффекта размытия зависит от количества открытых и полупрозрачных окон. Особое влияние на производительность имеют полупрозрачные виджеты стиля (например, Oxygen Translucent) и полупрозрачные декорации окон (например, темы Aurorae). Если используется такая тема и замечена плохая производительность, рекомендуется либо изменить тему или отключить эффект размытия.

Производительность эффект размытия можно регулировать с помощью Параметры системы -> Эффекты рабочего стола -> вкладка Все эффекты -> Диалог настройки эффекта размытия.Перемещение ползунка на Легкий требует меньше ресурсов, перемещение его в направлении "Сильный", требует больше ресурсов. С версии 4.8 (вышедшей в январе 2012) могут быть промежуточные результаты рендеринга (по умолчанию), которые повышают производительность даже с полупрозрачными темами.

Расширенные эффекты рабочего стола

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

Тип композитинга

Тип композитинга позволяет выбрать движок композитинга, XRender или OpenGL. По умолчанию используется OpenGL, который использует аппаратное ускорение. XRender доступен даже если драйвер OpenGL не установлен (например, виртуальные машины) и использует в основном центральный процессор для отрисовки. Многие эффекты не доступны с XRender.

Information
Если нет оснований для смены, то стандартный OpenGL является правильным выбором. Если OpenGL нет в наличии, имеется автоматическое переключение на XRender.


Сохранение эскизов окон

Это вряд ли окажет какое-либо влияние на производительность. Эта опция решает, как долго хранятся эскизы. Лучше всего не трогать этот параметр.

Засыпание эффектов рабочего стола для полноэкранных окон

Этот параметр влияет на производительность полноэкранных окон, таких как игры. Композитор приостанавливает работу ​​до тех пор, пока присутствует полноэкранное окно. Недостатком является то, что он вызывает мерцание, когда появляется окно поверх полноэкранного окна (например, контекстном меню) и является слишком общим. Как и в некоторых дистрибутивах (например, Kubuntu 11.04) драйвер Intel вызывает сбой при закрытии полноэкранного окна.

Если композитор должен быть отключен на время использования полноэкранного приложения, такого как игры или видео, лучше отключить композитинг либо с помощью сокращения Alt + Shift + F12 или с версии 4.7 (вышедшей в июле 2011 года) через конкретные правила окна.

Режим OpenGL

Warning
Настройка является устаревшей и была удалена в 4.7 (вышедшей в июле 2011 года). Любые настройки, за исключением стандартного "Texture from Pixmap", скорее всего, могут сломать ваш рабочий стол.


Включение прямой отрисовки

Warning
Настройка является устаревшей и была удалена в 4.8 (вышедшей в январе 2012).

Композитор самостоятельно определяет допустима ли прямая отрисовка и должна ли она быть использована. Изменение этого параметра, скорее всего сломает функциональность.

Использование VSync

VSync позволяет синхронизировать отрисовку с экрана. В случае веских оснований для изменения, этот параметр должен быть включен. Даже если этот параметр отключен, Композитор попытается использовать частоту кадров на экране и поддерживает стандартную частоту кадров 60 Гц.

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