Crossroads » Linux » nVidia. Вертикальная синхронизация в Linux

nVidia. Вертикальная синхронизация в Linux

  • Dislike
  • +1
  • Like
Если вы используете современную видеокарту nVidia с проприетарными драйверами в Linux, то наверняка сталкивались с так называемым «разрывом картинки».

Вертикальная синхронизация (V-Sync) синхронизирует частоту кадров монитора с кадрами в секунду, генерируемыми вашей видеокартой. Другими словами, если ваш монитор не в состоянии воспроизвести и половину FPS, генерируемых видеокартой, то вы не увидите разницы между 60 FPS и 160 FPS. Учитывая тот факт, что видеокарта не генерирует равное число кадров постоянно и FPS может резко изменяться в зависимости от множества факторов, визуально это выражается в разрывах изображения на экране. V-Sync занижает FPS до возможностей вашего монитора, что в итоге снимает излишнюю нагрузку с видеокарты и визуально картинка на экране выглядит более плавной, без разрывов.

Практически во всех современных играх есть настройка V-Sync, как и в некоторых приложениях. Однако, например, при просмотре HD фильма через браузер меня не оставляют мысли, что я не получаю то качество, за которое плачу.

Современные композитные окружения рабочего стола, такие как KDE или Gnome (при соответствующих настройках и наличии проприетарного драйвера) используют аппаратное ускорения для сглаживания картинки, но не всегда это работает. Дело в том, что на слабом железе V-Sync незначительно, но иногда заметно снижает производительность в некоторых приложениях, использующих OpenGL. Судя по всему в последнее время в nVidia проделали работу по исправлению этой неприятности, однако разработчики Linux дистрибутивов не спешат давать пользователям возможность включить V-Sync в один клик, без тыканья множества галочек и оттачивания навыков использования поисковых систем.

Для карт nVidia есть две опции: «ForceCompositionPipeline = On» и «ForceFullCompositionPipeline = On» для принудительно включения V-Sync для всей системы в целом. По их виду видно, что первая более «щадящая», а вторая более «бескомпромиссная». Вторая не будет работать без первой и какую конфигурацию включить — дело индивидуальное. Мне с моим рабочим столом KDE и картой GTX 1060 только «ForceFullCompositionPipeline» помогло полностью избавиться от «разрывов» в видео.

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

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


Если не помогло, то следом используйте туже команду, но с параметром «ForceFullCompositionPipeline».

Экран погаснет на пару секунд и включится снова. Если не включится, то не стоит паниковать, так как изменения действительны только на протяжении текущей сессии. После перезагрузки компьютера всё вернётся к состоянию «как было».

Если результат вас устраивает, то вы можете захотеть включить данную опцию перманентно. Для этого нужно отредактировать файл /etc/X11/xorg.conf. Для этого воспользуйтесь любым удобным для вас текстовым редактором и с правами root внесите следующие изменения: В секцию «Screen» (Section "Screen") перед строкой «SubSection "Display"» добавьте строку

Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"


Уберите из неё запятую и «ForceFullCompositionPipeline=On» если вас устраивает вариант с «ForceCompositionPipeline=On». Должно получиться нечто подобное:


.......

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
    SubSection     "Display"
        Depth       24
    EndSubSection
    EndSection

.......


Те же изменения можно внести через графический интерфейс настоек nVidia, если запустить его с правами root. Так же в нём можно посмотреть активна ли в данный момент прописанная в xorg.conf опция.

Вносите изменения в xorg.conf только в том случае, если понимаете что делаете и если временное включение опции дало ожидаемый результат. В противном случае можно столкнуться с необходимостью восстановления системы без использования X-сервера. Перед внесением изменений сделайте бэкап xorg.conf.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
Like Dislike

___
Tatyana K. По материалам The Linux Rain



Tags: Linux, nVidia


 
  • Creative Commons Licence
  • Norton Safeweb
  • Website Uptime Monitoring By ServiceUptime.com