Авторские статьи

Решение проблемы тиринга.


Linux системы прекрасны, но их пишут люди, которые тоже могут ошибаться и вносить баги. Есть два трудноуловимых бага, каждый из которых я огрёб в своё время, 1) баг 12309 и 2) тиринг (tearing). Кто-то даже шутит, что эти два бага разработчики нежно переносят из версию в версию, чтобы жизнь пользователей не казалась мёдом.

В данной статье речь пойдёт о таком графическом артефакте как тиринг. Тиринг - это разрывы экрана, которые явно видны на быстрых сменах изображения, например при просмотре видео или игре.


Почему этот баг до сих пор никто не отловил? В статьях часто давал вам материалы от профи по графической части:
Французский программист Julien Danjou, разработчик оконного менеджера Awesome, и его мысли вслух о протоколе X.

Jasper St. Pierre, разработчик GNOME Shell в статье Графический стек Linux.
Что кратко можно уяснить из них? Современный графический стек Linux на базе старого древнего Xorg (X11) очень сложен и состоит из массы компонент.

Наверху этого стека находятся наши с вами оболочки рабочего стола (DE). Часть оболочек типа Gnome, KDE используют композитинг (composite), а часть (типа LXDE или MATE) - нет и не используют аппаратное ускорение. Если вы схватите баг тиринг, то будете шаманить настройками в надежде избавиться от противных разрывов. Главный помощник для вас будет Вертикальная Синхронизация (V-sync), но она может и не помочь.

В самом внизу стека находятся драйвера и если вы используете Nvidia продукцию и проприетарные драйвера у вас относительно новые, то вам доступны опции ForceCompositionPipeline и ForceFullCompositionPipeline.

Прежде чем начать, стоит вас предупредить что вышеперечисленные опции могут привести к падению производительности OpenGL приложений и вам стоит промониторить сей момент.

Вначале в Терминале попробуйте команду nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }", если у вас единственный монитор. Если у вас многомониторная конфигурация, то +0+0 вам придётся изменить.

Если у вас чёрный экран или начались проблемы, то сделайте рестарт. Вам помогут магические кнопки Alt + SysRq + R,E,I,S,U,B.

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

Option  "metamodes" "nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

в секцию Screen в файле /etc/X11/xorg.conf, но уже давно файл отсутствует как класс и настройки формируются динамически. Сейчас проще добавить команду в Автозагрузку системы.

Запущен PPA с новыми закрытыми драйверами NVIDIA.
Ubuntu помогает NVIDIA в ускорении.
Зависания Compiz на картах nVidia.

Дата последней правки: 2023-12-27 17:21:18

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта