Избавляемся от тиринга.
Каждый пользователь компьютера сталкивался с горизонтальными разрывами движущейся картинки. Проблема тиринга волнует пользователей всех ОС, и производители видеокарт создают целые технологии, чтобы от неё избавиться: G-SYNC от Nvidia, FreeSync от AMD. В Linux тиринг особенно ярко проявляется на Nvidia, но его можно легко свести до незаметного минимума.
Прежде всего, уберём тиринг для OpenGL-приложений – игр, видеоплеееров, и других программ, которые используют аппаратную отрисовку. Для этого нужно открыть настройки драйвера Nvidia, перейти на пункт «OpenGL Settings» и установить две галочки:
VBlank это вертикальная синхронизация – универсальное оружие против тиринга. Flipping – смена буферов, в которых лежат соседние кадры, вместо копирования кадра из одного буфера в другой. Это повышает скорость отрисовки и опять же убирает тиринг.
Для надёжности, включим flipping на системном уровне – добавим кое-какие строки в конфигурационный файл видеодрайвера. Сделаем для этого отдельный файл, чтобы в случае чего можно было деактивировать свои правки, просто удалив его:
В файл нужно добавить такие строки:
И не забыть сохранить изменения. Теперь можно перейти к настройке оконного менеджера KWin. Открываем «Параметры системы», кликаем по модулю «Экран», переходим на вкладку «Обеспечение эффектов». Выделенный на скриншоте параметр нужно установить в значение «Полная перерисовка»:
После перезагрузки системы тиринг больше не должен вас беспокоить. Теперь займёмся плавностью отрисовки, чтобы анимации и любые движения на экране не были такими дёргаными.
Повышаем плавность анимаций.
Придётся начать снова с настройки видеодрайвера. Откроем наш новый конфигурационный файл:
И между строкой с последней опцией и строкой EndSection добавляем опцию, которая включает тройную буферизацию. В итоге файл будет выглядеть так:
Сохраняем изменения в файле. К сожалению, этого недостаточно для нужного эффекта – KWin по умолчанию не использует тройную буферизацию, так что для него эту опцию нужно включать отдельно. Нам снова придётся править файл, но уже другой:
Файл может называться иначе – например, bash_profile. В самый конец файла, после всего, что там написано, нужно добавить такую строку:
После всего этого нужно перезагрузить систему.
Чтобы оценить плавность отрисовки, можно сделать анимацию медленной, сдвинув ползунок вправо:
Тогда все рывки, если они есть, будут бросаться в глаза.
Есть ещё небольшая хитрость с отрисовкой ресайза окон. Изменение размера окна – довольно тяжёлая операция, если в окне много элементов. Например, окно Dolphin при ресайзе стабильно подтормаживает. Чтобы избавиться от раздражающих лагов, можно включить один из эффектов KWin. Открываем «Параметры системы», модуль «Поведение рабочей среды», вкладку «Эффекты». Находим в списке «Изменение размера окна» и устанавливаем галочку:
Выглядит эффект таким вот образом. Бурая область – это первоначальный размер окна, а новые габариты окна обозначены текстурой с содержимым окна.
Ресайз этой текстуры – тривиальная для видеокарты задача, поэтому никаких подтормаживаний вы больше не увидите.