Linux
November 5, 2022

Решаем проблему тиринга в linux (NVIDIA)

Что такое тиринг? Когда графическая система не успевает прорисовать картинку и на неё накладывается новый кадр до того как старый исчезнет. Получается разрыв

Разрыв картинки можно заметить не только в играх, но и при использовании графической среды, например в XFCE4.

Победить его очень просто, есть 2 варианта.

1 способ

Запускаем утилиту nvidia-settings, в разделе X Server Display Configuration выставляем параметры монитора(ов) и сохраняем конфигурационный файл xorg.conf в /etc/X11/

После этого открываем сохранный файл и удаляем запись ForceCompositionPipeline=On оставляя только ForceFullCompositionPipeline=On, должно получиться что-то вроде этого (у меня 2 монитора):

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "HDMI-0: 1920x1080_60 +0+0 {ForceFullCompositionPipeline=On}, DVI-D-0: 1920x1080_60 +1920+0 {ForceFullCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

После перегружаемся и смотрим на эффект.

2 способ. Убираем тиринг в xfwm

С версии xfce 4.14, Xfwm4 теперь поддерживает 3 режима vblank:

glx или auto — по умолчанию. Работает с картами Intel и некоторыми картами nvidia / ati.

xpresent — использует библиотеки xpresent. Работает с новыми картами ATI / AMD.

off — это отключает код vblank. Работает с картами nvidia.

Чтобы проверить, какой режим vblank лучше всего подходит для вашей системы, просто перезапустите xfwm и укажите в качестве параметра, какой режим vblank использовать:

xfwm4 --vblank=MODE --replace

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

xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "MODE" --create

"MODE" замените на одно из значений: "auto", "glx", "xpresent", "off".