18 марта 2017

Как побороть тиринг при использовании проприетарного драйвера nvidia в Linux

Я долгое время искал решение этой проблемы после установки проприетарного драйвера NVIDIA.
Используя окружение XFCE, пробовал устанавливать оконный менеджер compton. Но я сторонник чистоты системы и сторонние пакеты меня не устраивали. А решение как всегда лежало на поверхности, которым я и хочу поделиться с вами.


Приступим.

Чтобы убедится в том, что данное решение работает в вашем случае, скопируйте и выполните следующую команду в терминале:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

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

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

Если после выполнения команды разрывов не наблюдается, двигаемся дальше.

Теперь закрепим результат.

Без дальнейших действий весь эффект пропадет после перезагрузки. А также если появились какие-то лаги, перезагрузитесь, значит данное решение вам не подходит.

Итак. Во-первых, необходимо убедиться что у нас есть файл xorg.conf, который находится по пути /etc/X11. Откроем для просмотра данную директорию командой в терминале:

ls /etc/X11

Если он есть, как показано на скриншоте ниже, продолжаем.


Если файла нет, пропустите следующие шаги, но продолжайте читать, в конце статьи я расскажу что нужно сделать в вашем случае.

Тем у кого все в порядке необходимо сделать резервную копию файла xorg.conf следующей командой:

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Теперь откройте файл в любимом текстовом редакторе с привилегиями суперпользователя. В моем случае, это редактор nano.

Выполните в терминале следующую команду:

sudo nano /etc/X11/xorg.conf

Вы должны увидеть примерно следующее, в разделе Section «Screen»:


Если использовали вариант — ForeFullCompositionPipeline, строка Options «metamodes» , будет выглядеть как на изображении выше.

Если ее нет, добавьте с рабочим для себя вариантом.
У некоторых из вас уже есть опция «metamodes» в вашем файле /etc/X11/xorg.conf, как в примере ниже для настройки с двойным монитором:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864"

Если это так, просто измените строку так, чтобы она выглядела следующим образом:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864 { ForceCompositionPipeline = On }"

И вот теперь перезагружаемся, наслаждаемся плавной картинкой.

Что делать, если у вас отсутствует файл /etc/X11/xorg.conf?

У пользователей Ubuntu и Linux Mint может не оказаться файла xorg.conf по умолчанию. Поэтому для его создания открываем nvidia-settings и переходим в раздел X Server Display Configuration, нажимаем Save to X Configuration File (создаем тем самым необходимый для нас файл xorg.conf).
Пример на скриншоте ниже.
И снимите галочку с Merge with existing file (совместить с существующим файлом).


Проверьте наличие файла xorg.conf и возвращайтесь к началу инструкции.

Всем спасибо за внимание. Надеюсь это кому-то поможет.

P.S. Если вы знаете другие способы решения данной проблемы, поделитесь ими в комментариях.

Автор статьи  Максим Жилкин.