Драйверы Nvidia - Невозможно проверить "Force полный состав конвейера"

Я прочитал, что во избежание разрыва экрана я должен включить опцию "Принудительно использовать полный состав конвейера" в настройках nvidia [¹]. Однако эта опция не доступна в моей системе.

Я думал, что nvidia-settings могут быть отложены, но согласно сообщению в блоге ниже, эта опция должна быть доступна в этой версии:

Я что-то пропустил?

Спасибо

[¹] https://www.gamingonlinux.com/articles/how-to-an-update-on-fixing-screen-tearing-on-linux-with-an-nvidia-gpu.8892

2 ответа

Приведенные выше решения не работают с Ubuntu 20.04, но проблема, похоже, сохраняется. Но рабочее решение довольно простое:

sudo nano /lib/modprobe.d/nvidia-kms.conf
sudo update-initramfs -u
reboot

Исходное содержимое nvidia-kms.conf:

# This file was generated by nvidia-prime
# Set value to 1 to enable modesetting
options nvidia-drm modeset=0

Как говорится, modeset=0 нужно изменить на modeset=1.

Интересно, почему это не включено с самого начала.

Я чувствую твою боль. У меня всегда возникают проблемы, когда я пытаюсь понять, как избавиться от разрывов на моих ноутбуках, оснащенных как Nvidia dGPU (выделенный графический процессор), так и iGPU (встроенный графический процессор).

Я собираюсь сделать удар в темноте и предположить, что ваша система является системой PRIME, и в этом случае параметры составного конвейера будут недоступны (даже добавление их вручную в файл xorg.conf не будет работать - это, вероятно, просто заставит ваш экран потемнеть).

Я думаю, что вы ищете (опять же, просто гадать) PRIME Synchronization - это новый способ синхронизации экранов Nvidia.

Попробуй это:

  • Создайте файл в своем /etc/modprobe.d каталог называется zz-nvidia-tearing.conf,
  • Добавьте следующую строку к нему: options nvidia_387_drm modeset=1 (измените "387" на версию вашего драйвера).
  • С терминала: sudo update-initramfs -u
  • Перезагружать.
  • Проверьте, включена ли PRIME синхронизация: xrandr --prop | less

Вы должны увидеть что-то вроде:

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
        EDID: 
                00ffffffffffff0030e4210500000000
                001a0104951f1178ea9d35945c558f29
                1e505400000001010101010101010101
                0101010101012e3680a070381f403020
                350035ae1000001a542b80a070381f40
                3020350035ae1000001a000000fe004c
                4720446973706c61790a2020000000fe
                004c503134305746362d535042360075
        PRIME Synchronization: 1 

Важной строкой является последняя строка. Если по какой-то причине ваша синхронизация PRIME по-прежнему не включена (т.е. установлена ​​на "1"), попробуйте отредактировать последнюю строку вашего /etc/modprobe.d/nvidia-graphics-drivers.conf - измените его на:

options nvidia_387_drm modeset=1

(опять же, очевидно, изменив "387" на версию установленного вами драйвера Nvidia).

Не забудьте запустить:

sudo update-initramfs -u

после внесения каких-либо изменений в любой файл в /etc/modprobe.d,

Если это по-прежнему не работает (что должно, если вы используете драйвер Nvidia 370 или выше), вы можете попробовать добавить следующее в GRUB_CMDLINE_LINUX_DEFAULT в /etc/default/grub:

nvidia-drm.modeset=1

Я не знаю, как выглядит ваш GRUB_CMDLINE_LINUX_DEFAULT, но после добавления строки выше он может выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"

Я нахожу поразительным, что Nvidia не включает синхронизацию PRIME по умолчанию на оборудовании, которое его поддерживает. Причина в том, что он плохо работает с SLI, но сколько пользователей Linux на самом деле используют SLI? Я еще не видел ни одного.

Если у вас есть еще вопросы, задавайте, я постараюсь на них ответить.

Удачи!

В последней (на момент написания этой статьи) Nvidia Binary Drivers 430.26 есть такая опция (конечно, я предполагаю, что драйвер правильно установлен и работает):

Но если он по какой-то причине не появляется, есть другой способ включить его через xorg.conf файл.

Вот как это выглядит в моей системе:

редактировать /etc/X11/xorg.conf файл и следующий код в разделе экрана (обратите внимание, что в вашем будет больше вариантов):

Section "Screen"
    Option "metamodes" "3440x1440_75 +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On};"
EndSection

Сохраните и перезагрузите систему.

Другим возможным способом является использование nvidia-settings:

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

Как пользователь Ubuntu, я столкнулся с этой ужасной проблемой, а также с проблемой зависания установщика, оба из которых связаны с использованием оборудования на базе NVIDIA GPU. Я хотел бы решить обе проблемы в этом единственном ответе, так что вот оно:

Я работаю с системой Ubuntu 18.04 LTS amd64, работающей на Core i7 со встроенным графическим процессором HD Graphics и графическим процессором NVIDIA GEFORCE GTX 960M.

Во- первых, установщик Ubuntu зависает при запуске: это вызвано наличием чипа NVIDIA, поэтому, чтобы исправить его, загрузите установщик и нажмите E когда GRUB обнаруживается. Перейти к концу строки LINUX и добавить nouveau.modeset=0, Затем продолжите процесс загрузки, нажав F10, Установите систему нормально и, когда закончите, удалите установочный носитель с компьютера, перезагрузите систему и войдите в свою учетную запись.

Продолжить ниже:

Во-вторых, ужасная проблема с разрывом дисплея или несинхронизированный дисплей PRIME: это вызвано неправильной настройкой дисплея PRIME (системе необходимо правильно разгрузить графику в конфигурации системы с несколькими графическими процессорами), поэтому, во-первых, установите соответствующие драйверы графического процессора в системе. В моем случае драйвер версии 390 соответствует графическому процессору GTX 960M, так что, например, потребуется выполнить sudo apt-get install nvidia-driver-390, Если доступна соответствующая версия драйвера, я бы предпочел делать это из основных репозиториев, а не из PPA.

После установки библиотек драйверов перейдите в терминал и откройте gedit как супер пользователь с sudo gedit, Затем откройте системный файл /etc/default/grub, найдите строку, которая показывает nouveau.modeset=0 код, который мы установили ранее, и удалите его полностью. Замените эту строку на GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1" и сохранить. Закройте gedit и в терминале выполните обновление GRUB, выполнив sudo update-grub,

После этого закройте все и перезагрузите систему. Теперь все должно работать нормально!

Заметки:

  1. Мои пошаговые инструкции - это краткое изложение советов других пользователей, и я выполнил эти шаги как минимум трижды с тем же отличным результатом. Я решил написать свое собственное руководство, потому что у тех, которые я использовал, всегда были некоторые обнаруженные проблемы, которые я должен был пройти, чтобы система работала должным образом.

  2. Чтобы определить вашу соответствующую версию драйвера NVIDIA, вы можете проверить их официальную страницу загрузки драйверов, выбрав подходящую модель и linux 64-bit в качестве операционной системы. Результаты покажут правильный номер версии.

  3. Если вы хотите узнать, что такое дисплей PRIME и почему он такой громоздкий, вы можете проверить эту ссылку: https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/

Удачи!

Нет, вам просто нужно сохранить конфигурацию X где-нибудь... тогда только настройка композиции будет продолжена для следующей перезагрузки... Так что нажмите "Сохранить в файл конфигурации X" успешно... вот и все.

Другие вопросы по тегам