Решаем проблему тиринга в Linux. (Nvidia)

Решаем проблему тиринга в Linux. (Nvidia)

Решаем проблему тиринга в Linux. (Nvidia)

Суть проблемы

Для начала что такое проблема тиринга. Дело в том что у каждого монитора есть такой показатель как частота обновления экрана (характеристика обозначающая количество возможных изменений изображения в секунду), чаще всего она равна 60 Гц, но существуют исключения в виде игровых мониторов на которых это значение может быть 144, 165 и даже 240 Гц. Тк вот видеокарта может выдавать значительно больше чем 60 кадров в секунду (fps), и соответственно выводит допустим 270 кадров в секунду на монитор 60 Гц кадры накладываются друг на друга и получается тиринг. В играх используется технология V-Sync которая искусственно  понижает fps в игре до 60 чтобы частота кадров в игре и частота обновления монитора совпадали. Эта проблема встречается во многих дистрибутивах, но сейчас я разберу ее на Manjaro Arch Linux на ядре 4.12 или 4.9 и Ubuntu ядро 4.10.

Тиринг проще всего заметить во время горизонтального движения объектов(такая полоска «несостыковки кадров», в теории она может следовать за мышкой в полноэкранном режиме), и в последних версиях линукса он чаще наблюдается на дополнительных мониторах, а на основном отсутствует.

Проверять только в полноэкранном режиме.

Установка проприетарных драйверов


На Manjaro

Открыть Менеджер настроек Manjaro, выбрать пункт конфигурация оборудования, нажать кнопку Auto Install Proprietary Driver или поставить галочку около video-nvidia

 

На другом Arch дистрибутиве (Antergos, Chakra, Arch-Anywhere и другие)

Если он не установлен то устанавливаем pamac (GUI для пакмена, с ним проще если вы новичек) в терминале вводим sudo pacman -S pamac и пароль администратора. (Pamac в Manjaro дистрибутиве установлен по умолчанию и называется установка и удаление программ)

Запускаем pamac и вводим в поиске nvidia сортируем по версиям и устанавливаем соответствующий ядру системы драйвер или пакет nvidia-utils. Версию ядра можно узнать командой uname -r в терминале.


На Ubuntu

В терминале

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

После выполнения данных команд в «Программы и обновления» появится последний 384.59 (2017 22 авг) драйвер, устанавливаем его и перезагружаемся.

 


Настройка xorg.conf

Все просто, открываем установившиеся вместе с проприетарным драйвером приложение NVIDIA X Server Settings. На вкладке OpenGL Settings убеждаемся что включены обе галки «Sync to VBlank» и «Allow Flipping». Затем на вкладке X Server Display Configuration на каждом мониторе (если их несколько, или это ноутбук с подключенным внешним монитором)  устанавливаем разрешение соответствующие разрешению монитора и частоту обновления 60Hz (или больше если таковая имеется) жмем Apply и затем Save to X Configuration File(скрин 2) чтобы сохранить изменения после перезагрузки, но тут понадобиться кое-что добавить. Тыкаем Show Preview(скрин 3) и в открывшемся текстовике, в подзаголовке Section «Screen»(в самом низу) находим опцию «metamodes»(скрин 4) и после каждого смещения монитора (если он один после +0+0) добавляем «{ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}» аналогично тому как это сделано у меня под спойлером. Сохраняем, (файл должен сохранится по пути /etc/X11/xorg.conf) перезагружаемся и проверяем результат на видео выше.

/etc/X11/xorg.conf

Option «metamodes» «DVI-D-0: 1920x1080_60 +3200+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-0: 1280x720_60 +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-1: 1920x1080_60 +1280+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}»

[свернуть]

Отправить ответ

Войти с помощью: 
avatar
5000
В начале выводить комментарии:   новые | старые | лучшие
Neyel
Гость

Спасибо помогло. Правда у меня файл с конфигом лежал по этому пути — /etc/X11/xorg.conf.d/20-nvidia.conf

Maxer152
Участник

В кедах с этими функциями вообще экран не работает =)

Петро
Гость
Пишу выразить благодарность. Дело в том, что я этот дефект давно наблюдал, но списывал его… Читать дальше »
Петро
Гость

Ничего не понятно начиная с Show Preview
Где оно?

Vlad Serdyuk
Участник

а как это всё проделать на OpenSUSE?

wpDiscuz