Избавляемся от тиринга на видеокарте Nvidia в Linux
Опять-же, материал, во-первых, ориентирован на новичков, во-вторых, для тех, у кого имеется видеокарта от Nvidia. Процесс настройки видеокарты, описанные в материале подойдет для тех, кто использует среду рабочего окружения GNOME, однако его я использовал, например, в KDE, где тоже все получилось. Основная задача производимых дальше действий — избавиться от тиринга и графических артефактов в интерфейсе.
Когда-то на канале я объявлял сбор на видеокарту от AMD. Если не ошибаюсь, заявленная сумма составляла 30 000 рублей. Сбор провалился, всего собрали рублей 99 рублей. Тогда на канале не было и 1000 подписчиков (500 человек, вроде как), теперь же нас уже почти в три раза больше. Как знать, вдруг в этот раз сбор удастся, потому ниже прикреплю ссылку на форму для донатов. Математика простая: по 20 рублей с каждого подписчика и сумма будет набрана. Сможем ли?
Тиринг или «разрыв экрана»
Вещь, о существовании которой, до сих пор спорят и ломают копья пользователи Linux-дистрибутивов. Поверить в его существование может только тот, кто видел тиринг своими глазами. Говоря иначе, тиринг это разрыв между кадрами, когда пользовательский интерфейс не успевает отрисоваться в нужной частоте и появляются те самые «разрывы». В результате, видны подергивания или подлагивания интерфейса и порой черные полосы при перемещении окон. На канале, кстати, вы могли наблюдать это явление в некоторых постах, где я прикрепляю GIF-анимации, записанные при помощи программы Peek.
Пример тиринга на демонстрации в статье про символические ссылки. Обратите внимание на разрыв кадра и проявление заднего фона через окно терминала.
Причинами тиринга называют обычно недостатки графического сервера X.org (на Wayland тиринг отсутствует), использование видеокарт от Nvidia (на AMD, я слышал, что тиринга нет) и косяки со стороны разработчиков сред рабочего окружения.
Установка видеодрайверов от Nvidia
Я не буду в рамках этой статьи углубляться в то, как устанавливать драйвера для видеокарты Nvidia в различных дистрибутивах. Некоторые имеют встроенную поддержку Nvidia (например, Ubuntu или PopOS!), какие-то позволяют установить драйвера после установки дистрибутива (Fedora или Manjaro). Будем отталкиваться от представления о том, что драйвера вы установили на вашем компьютере появилась такая программа, как Nvidia Settings. Именно через нее мы и будем осуществлять настройку.
Убираем тиринг в два этапа
Процесс настройки состоит из двух этапов. На первом нужно запустить Nvidia Settings привычным способом и произвести ряд манипуляций, которые покажу на видео ниже.
У меня два монитора, потому выставление галочек осуществлял дважды, если вы обладатель только одного монитора, то процесс займет еще меньше времени. Важно! После внесения изменений просто закрываем программу, игнорируя предупреждения о том, что внесенные изменения не сохранятся.
На втором этапе нужно будет запустить программу Nvidia Settings из терминала от имени суперпользователя, проверить, что внесенные вначале изменения никуда не подевались и сохранить их в конфигурационный файл.
После того, как сохранили настройки, можно позабыть о разрыве в кадрах и спокойно пользоваться системой и видеокартой.
Несколько уточнений
- Тиринг в первую очередь наблюдается при записи видео с экрана, поэтому в ином сценарии использования пользователь может даже ничего не заметить.
- При использовании программы для записи экрана Simple Screen Recorder она может ругаться на снятую галочку напротив пункта Allow Flipping и предложит изменить настройки автоматически. Соглашаться или нет — решайте сами, у меня после отката изменений по этому пункту никаких артефактов не наблюдалось.
- Указанный способ настройки производился всегда на последней версии видеодрайверов и при использовании внешней видеокарты (не встройки в ноутбук). Как поведет себя ноутбук или видеодрайвера старых версий точно сказать не могу.
- За все время использования видеокарты от Nvidia не возникало желания или потребности в какой-либо «разгонке», поэтому касательно подобных модификаций ничего сказать не могу.
Подведем итог
Не знаю, каков процент пользователей видеокарт от «зеленых» на канале, но уверен, что такие точно есть и будут среди тех, кто оказался здесь недавно. Поэтому, уверен, что кому-то пост окажется полезным. Если это так, то поддержите материал лайком и напишите о своем опыте использования Nvidia на Linux (в случае его наличия).
Избавляемся от тиринга в Linux
Большинство пользователей Линукс систем, конечно же знают о существовании такой проблемы, как разрыв экрана или tearing. Основной, и наиболее вероятной причиной данного «недуга», является X-сервер. Да, Wayland уже вполне себе работоспособен, но от Иксов пока ещё способны отказаться не все. Но не одним X-сервером жив тиринг. Следующей причиной оного может послужить драйвер GPU. Наиболее частым виновником разрывов является, как ни странно, самый популярный производитель видеокарт — NVIDIA и его видеодрайвера. Третьим виновником возниковения тиринга в Linux является окружение рабочего стола, со своими багами и фичами. Ну вот мы вкратце разобрались с классическим вопросом: «Кто виноват?», далее попробуем разобраться с не менее класическим: «Что делать?».
далее установим Compton, независимый композитор, который очень хорошо работает с легковесными окружениями рабочего стола. Дам команды для двух веток Linux, но думаю что ни для кого ни составит труда установить пакет в свой дистрибутив.
Debian и производные
Arch linux и производные
Вернёмся к настройкам XFCE. На этот раз нажмите “Сеанс и запуск.” (Session and Startup) Добавить Compton в автозапуск, для этого добавим в атвозапуск комптон со следующим ключем:
usr/bin/compton --backend glx
После чего перезагружаемся и проверяем работает ли Compton:
Если всё норм, проверяем работает ли тиринг =)
Если тиринг в XFCE не пропал, то пробуем отредактировать файл ~/.config/compton.conf, в моём случае он такой:
backend = "glx"; paint-on-overlay = true; glx-no-stencil = true; vsync = "opengl-swc"; # Shadow shadow = true; # Enabled client-side shadows on windows. no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. no-dnd-shadow = true; # Don't draw shadows on DND windows. clear-shadow = true; # Zero the part of the shadow's mask behind the window (experimental). shadow-radius = 7; # The blur radius for shadows. (default 12) shadow-offset-x = -7; # The left offset for shadows. (default -15) shadow-offset-y = -7; # The top offset for shadows. (default -15) shadow-exclude = [ "n:e:Notification", "n:e:Docky", "g:e:Synapse", "g:e:Conky", "n:w:*Firefox*", "n:w:*Chromium*", "n:w:*dockbarx*", "class_g ?= 'Cairo-dock'", "class_g ?= 'Xfce4-notifyd'", "class_g ?= 'Xfce4-power-manager'", "class_g ?= 'Notify-osd'", "_GTK_FRAME_EXTENTS@:c" ]; # Opacity detect-client-opacity = true; # Window type settings wintypes: < tooltip = < shadow = false; >; >;
По идее разрывы должны пропасть, если не пропали, значит что-то пошло не так. Ищите дальше, ведь это Линукс, за всё нужно платить=)
kde тиринг
KDE, является моим любим рабочим окружением. В нём есть такое огромное количество, так нужных пользователям, элементов управления, что с помощью GUI Панели управления можно настроить практически всё. Откройте приложение Настройки и найдите «Display and Monitor». Там выберите «Compositor». Найдите параметр «Предотвращение разрыва vsync»(Tearing prevention «vsync» и установите для него значение «Перерисовка всего экрана” (Full screen repaints). После этого нажмите «Применить» (Apply).
Нередко Kwin, оконный менджер KDE, тоже становится причиной тиринга. Если не после предыдущих манипуляци разры картинки не пропал, то создалим файл /etc/profile.d/kwin.sh следующего содержания:
export KWIN_TRIPLE_BUFFER=1
Перелогиньтесь и всё должно стать гладко.
Firefox тиринг
Удостоверьтесь, что тиринг у вас присутствует только в браузере Firefox, с помощью данного видео выполните проверку на тиринг просмотрев в 1080p60:
если при просмотре видео, изображение будет рваться то переходите к следующим манипуляциям:
1) Откройте about:config в Firefox
2) Найдите layers.acceleration.force-enabled
3) Измените значение(Value) на true.
4) Перезагрузите браузер
Как избавиться от тиринга экрана в Linux?
Большинство пользователей Linux сталкивались с проблемой разрывами экрана (тиринга). Обычно причиной тиринга является X-server или драйвер GPU (чаще всего встречается с драйверами NVidia). В этой статье мы рассмотрим, как избавиться от тиринга экрана в Linux.
Тиринг на видеокартах NVidia
Для исправления проблемы тиринга на видеокартах NVidia, создайте файл конфигурации в каталоге modprobe:
$ sudo nano /etc/modprobe.d/nvidia-nomodset.conf
options nvidia-drm modset=1
Сохраните файл и выполните:
Перезагрузите компьютер, и проверьте исчезли ли проблема с разрывами экрана. Если нет, отредактируйте файл 20-nvidia.conf:
$ sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf
Добавьте следующее в секции Device:
Section "Device" Identifier "Nvidia Card" Driver "nvidia" VendorName "NVIDIA Corporation" Option "NoLogo" "true" Option "metamodes" "nvidia-auto-select +0+0 < ForceCompositionPipeline = On >" EndSection
Тиринг с вилеокартами Intel
Если у вас проблема тиринга возникает на видеокарте Intel, отредактируйте файл (путь может отличаться в зависимости и дистрибутива Linux):
$ sudo nano /etc/X11/xorg.conf.d/20-intel.conf
Отредактируйте раздел Device:
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
Сохраните файл, перезагрузите компьютер.
Тиринг на видеокарте AMD
Для видеокарт AMD убрать проблему тиринга можно также с помощью конфиг файла (этот способ не подходит для KDE):
Измените конфигурацию в разделе Devices:
Section "Device" Identifier "Radeon" Driver "radeon" Option "TearFree" "on" EndSection
Если вы используете XFCE и столкнулись с проблемой тиринга, нужно заменить дефолтный композитор на Compton. Отключите стандартный композитный менеджер:
# xfconf-query -c xfwm4 -p /general/use_compositing -s false
Или отключите опцию Enable display compositing в настройках XFCE
Затем установите композитор Compton:
Теперь откройте настройки XFCE, перейдите в Session and Startup и добавьте в автозапуск Compton с параметрами:
/usr/bin/compton --backend glx
Перезагрузите компьютер, проверьте работу Compton:
Если тиринг в XFCE, отредактируйте файл:
$ sudo nano ~/.config/compton.conf
backend = "glx"; paint-on-overlay = true; glx-no-stencil = true; vsync = "opengl-swc"; # Shadow shadow = true; # Enabled client-side shadows on windows. no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. no-dnd-shadow = true; # Don't draw shadows on DND windows. clear-shadow = true; # Zero the part of the shadow's mask behind the window (experimental). shadow-radius = 7; # The blur radius for shadows. (default 12) shadow-offset-x = -7; # The left offset for shadows. (default -15) shadow-offset-y = -7; # The top offset for shadows. (default -15) shadow-exclude = [ "n:e:Notification", "n:e:Docky", "g:e:Synapse", "g:e:Conky", "n:w:*Firefox*", "n:w:*Chromium*", "n:w:*dockbarx*", "class_g ?= 'Cairo-dock'", "class_g ?= 'Xfce4-notifyd'", "class_g ?= 'Xfce4-power-manager'", "class_g ?= 'Notify-osd'", "_GTK_FRAME_EXTENTS@:c" ]; # Opacity detect-client-opacity = true; # Window type settings wintypes: < tooltip = < shadow = false; >; >;
Если вы используете окружение KDE и столкнулись с проблемой тиринга, нужно открыть окно настроек (Display and Monitor -> Compositor) и задать опцию
Tearing prevention “vsync”: Full screen repaints.
Если в KDE используется оконный менеджер KDE, нужно создать файл:
$ sudo nano /etc/profile.d/kwin.sh
export KWIN_TRIPLE_BUFFER=1
Также можно отредактировать файл оконного менеджера KWin:
$ sudo nano /home/sysops/.config/kwinrc
В секции [Compositing] добавьте строки:
MaxFPS = 200 RefreshRate = 200
Если тиринг проявляется только в браузере Mozilla Firefox:
- Откройте about:config в Firefox;
- Измените значение layers.acceleration.force-enabled = true
- Перезагрузите Firefox.
Надеюсь, это статья помогла вам избавиться от раздражающей проблемы тиринга в Linux.