LINUX.ORG.RU

NVIDIA Prime без тиринга (есть готовые пакеты)

 , , , ,


2

1

NVIDIA представила решение проблемы с тирингом в конфигурациях PRIME. Решение называется PRIME Syncronization. Патчи были приняты в GIT и войдут в состав X-Server 1.19.

NVIDIA выпустила подробную документацию о том, как это всё работает:

https://devtalk.nvidia.com/default/topic/957814/prime-and-prime-synchronization/
https://www.x.org/wiki/Events/XDC2016/Program/xdc-2016-prime-sync.pdf

Для того, чтобы включить, нужны:

  • Linux 4.5
  • X-Server 1.19
  • NVIDIA 370.xx

Так как X-Server 1.19 ещё не вышел, нужна версия из GIT (не старее этого коммита). Кроме того, до тех пор пока 1.19 не релизнулся, в xorg.conf надо добавить:

    Section "ServerFlags"
        Option "IgnoreABI" "1"
    EndSection

Я собрал пакеты для Ubuntu 16.10 x86_64. Надо протестировать! По ссылке DEB-ки. А вот DEB-SRC для тех, кто хочет создать PPA, или собрать для другой архитектуры или версии Ubuntu.

Кроме обновления с 1.18.4 до 1.18.99.1, внесены следующие изменения:

  • Исправлен ряд патчей, чтобы накладывались
  • На время убраны патчи fix-detach-gpu.patch, randr-adjust-masters-last-set-time.diff и randr-do-not-check-the-screen-size.diff (Upd: Приняты в апстрим)
  • Отключил сборку XMir (отправлен багрепорт). Версия 1.18.4 из репозитория в принципе не должна конфликтовать.

А вот репозиторий для Opensuse - спасибо Novell-ch!

Это чем-то лучше примуса?

anonymous ()

Спасибо, конечно, актуальная для меня новость.

Но ставить тег gentoo и не прикладывать ебилд - непорядок.

l0stparadise ★★★★★ ()

Я собрал пакеты для Ubuntu 16.10 x86_64.
tags: gentoo

не надо так :/

А вообще, крайний раз когда пробовал завести Prime на Xorg-server 1.18.4 и nvidia 370.28, отчего-то не определялся монитор ноутбука(черный экран). Внешний нормально показывал картинку. Гугление дало результат - монитор определился, но максимальное разрешение было около 800х600. Ни modesetting, ни драйвер intel не помог. Ума не приложу, как такое чинить?

fang90 ★★★★★ ()
Последнее исправление: fang90 (всего исправлений: 1)

Спасибо за новость, приятно, что допилили.

У меня правда 16.04 LTS (kernel 4.4), но все равно радует, что есть такое :-)

Twissel ★★★★★ ()
Ответ на: комментарий от fang90

>> Я собрал пакеты для Ubuntu 16.10 x86_64. >> tags: gentoo

> не надо так :/

Просто в Gentoo есть пакеты вида -9999. Правда, для xorg-server я его не вижу: https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-base/xorg-server

> А вообще, крайний раз когда пробовал завести Prime на Xorg-server 1.18.4 и nvidia 370.28, отчего-то не определялся монитор ноутбука(черный экран)

У меня то же самое с одним из двух ноутбуков на Optimus. На версии 361.xx команда Xrandr (для проброса картинки) не срабатывает, выдавая ошибку. А может в 358.xx - в общем, точно работает 355.xx. При этом на втором ноутбуке всё работает с любой версией драйвера!

Работает с 740M. Не работает с 650M.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

У меня Quadro K1000M, экран все же определился с таким конфигом http://pastebin.com/4yx6Cb4E . Но, я не понял как иксам сказать читать настройки монитора(ноутбучного) из edid-файла.

Ну и кмк проблема в том, что монитор этот висит на intel'овом выводе.

fang90 ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Багрепорт есть похожий https://bugs.freedesktop.org/show_bug.cgi?id=94577 . Мой конфиг-костыль:)

edid для разрешения получал так: get-edid > /lib/firmware/edid/1920x1080_Clevo_W670SR.bin но ведь оно должно детектиться автоматически, чего не происходит :(

fang90 ★★★★★ ()
Последнее исправление: fang90 (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
Xorg -version

X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.13.0-95-generic x86_64 Ubuntu
Current Operating System: Linux localhost 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64

Но опять же, пофиг. Хорошо, что пилят.

Twissel ★★★★★ ()

Шматри, у меня Xorg-1.19.

Я беру дрова невидии 370.28.

Пишу в /etc/X11/xorg.conf

Section "ServerFlags"
	Option "IgnoreABI" "1"
EndSection

Section "Module"
	Load "modesetting"
EndSection

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    BusId	"PCI:2:0.0"
    Option "AllowEmptyInitialConfiguration"
EndSection

И получаю - No screens found.

Вот видюха:

nvidia-xconfig --query-gpu-info
[sudo] password for aslaikov: 
Number of GPUs: 1

GPU #0:
  Name      : GeForce 940MX
  UUID      : GPU-444cbade-7070-30d1-8423-f767521229f5
  PCI BusID : PCI:2:0:0

  Number of Display Devices: 0

А вот модули ядра:

lsmod | grep nvidia
nvidia_drm             24576  0
nvidia_modeset        778240  1 nvidia_drm
nvidia              11935744  1 nvidia_modeset
drm                   344064  5 i915,nvidia_drm,drm_kms_helper

Подскажи, куда копать?

P.S.

Ну и ядро:

uname -r
4.9.0-0.rc0.git9.1.fc26.x86_64

slaykovsky ★★★ ()
Последнее исправление: slaykovsky (всего исправлений: 1)
Ответ на: комментарий от slaykovsky

Привет! Давай попробуем сделать по мануалу. Сначала без изворотов с тирингом, а хотя бы как раньше.

Вот мануал. Включать PRIME нужно в три стадии: 1). Удовлетворение зависимостей 2). Правка /etc/X11/xorg.conf 3). Редактирование конфига GDM, KDM или LightDM.

1). Нужно ядро Linux 3.9 (или новее), XRandr 1.4, X-Server 1.13 и драйвер xf86-video-modesetting.

2). В мануале предлагают два xorg.conf: для X-Server <= 1.16 и для >= 1.17 (в мануале для 32-битных ОС второго конфига почему-то нет). Вот для 1.17:

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "<BusID for NVIDIA device here>"
    Option "AllowEmptyInitialConfiguration"
EndSection

3). Как именно править GDM/KDM и прочие менеджеры входа в систему написано в Gentoo Wiki и Arch Wiki. Например здесь.

После этого должно работать! А ты уверен что Bus ID = 2:0:0? Просто у меня 1:0:0. Проверять по sudo lspci -v

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 2)

Вот это инновации...

Конец 2016 года. Уже глючные Миры и Вейленды прилетели в убунты и федоры.

fornlr ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

1) Ядро 4.9, уж новее некуда :) Xrandr 1.5, Xorg 1.19

2) Xorg.conf -> поменял «PCI:2:0.0» на «PCI:2:0:0». Теперь находит screen, но segmentation fault!!!

Bus ID правильный 100% :)

slaykovsky ★★★ ()
Последнее исправление: slaykovsky (всего исправлений: 1)
Ответ на: комментарий от inchallah

NVIDIA Prime

Что это?

смори внимательно, что кастует визард-ТС:

 nvidia, opensuse, optimus, prime, <censored>

цэ ж попытка впихнуть матрицу лидерства в Оптимуса Прайма, Кэп! и знаешь что, если бы не нубская ошибка в конце каста закла - «всё могло бы быть иначе»(ц) всё бы завертелось и взлетело с полпинка!

Шматри, у меня Xorg-1.19.
Я беру дрова невидии 370.28.

молилась ли ты на ночь, Дездемона?! Товарищ, не надо лищних слов - просто ставь SuSE!

anonymous ()

Это всё, конечно, хорошо, но когда уже наконец блоб сможет в Render Offload?

intelfx ★★★★★ ()
Ответ на: комментарий от Deleted

Где тебе такое сказали? В Ubuntu он настраивается в 2 щелчка, а в остальных дистрибутивах он включается пердолингом в консоли. Это всё равно что сказать «кодеки только для убунту существуют».

ZenitharChampion ★★★★★ ()

Есть истории успеха? Я на своём ноуте внедрил. Только установить новые иксы и новый драйвер - недостаточно. Вот тут пишут что уже имеющиеся команды:

$ xrandr --setprovideroutputsource modesetting NVIDIA-0
$ xrandr --auto

нужно дополнить этой:

$ xrandr --output <output> --set "PRIME Synchronization" 1
ZenitharChampion ★★★★★ ()
Ответ на: Как вы думаете? от anonymous

Nлет это у амуды. У нвидии или был приказ поддерживать или нет.

anonymous ()

Факинг фак

Я забыл что после мажорного обновления X-Server надо пересобирать его драйверы

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Xasweil

На Unity че-то не исчез. Команнда тут выше, включающая фичу, превращапт тиринг из «вау как бьет по глазам!» в «хрен разглядишь». У меня есть подозрение, что в Compiz из состава Unity конфигурации NVIDIA Prime занесены в черный список, и там нельзя включить Vsync.

Буду пробовать на MATE с compton

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Xasweil

Расскажу подробнее.

Установил Ubuntu 16.10. Подключил репозиторий graphics-drivers, затем установил драйвер NVIDIA 370.xx с помощью «Менеджера проприетарных драйверов». Перезагрузился.

Вижу тиринг. А теперь устанавливаю X-Server 1.18.99.1 из своих пакетов. Три скрипта: install.sh, install-with-dev.sh и install-dbg.sh. Выбрал первый. Прописал IgnoreABI в новый файл в /usr/share/X11/xorg.conf.d/. Перезагрузился.

Вижу тиринг. Выполняю xrandr, чтобы узнать outputs. Затем xrandr --output LVDS-1-0 --set "PRIME Synchronization" 1 Экран мерцает. Вижу тиринг! Только если в прошлый раз он бросался в глаза, то сейчас - нет. Лезу в настройки Compiz. Ага, 50 герц. Меняем на 60. Не помогло. Убираем VSync. Визуально ничего не меняется. Похоже что Compiz из состава Unity DE не применяет VSync для PRIME, даже если галочка VSync стоит.

Окей, выключаю VSync в Compiz и включаю в игре. А в какой игре? Ну давайте Bioshock Infinite. Походил вправо-влепо перед сияющим дверным косяком. Тиринг. Давайте War Thunder. Ну надо же - нет тиринга! Это успех.

Сейчас буду пробовать Ubuntu MATE. Врублю там compton --vsync opengl

P.S. А ещё я сломал APT. Делаю «sudo apt-get install compton» и вижу «Драйвер NVIDIA хочет API 18, 19, 20, 21, 22, а у вас 23». Пришлось делать низкоуровневую правку DEB-пакета. Я решил выпустить видеоролик, если у меня всё получится.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 3)

На дворе Ноябрь 2017. Уже вышла вторая Ubuntu с X-Org 1.19. Уже похоронили Unity, и теперь она Ubuntu 17.10 с модифицированным GNOME. Но тиринг в Nvidia-Prime никуда не делся. Почему? А главное, не только тиринг на месте, но и все молчат, даже эта тема заглохла, что происходит?

sciencel ()
Ответ на: комментарий от ZenitharChampion

Что запускаться с параметром --vsync opengl ? Менеджер compton? А как? Я незнаю, есть ли он у меня. У меня Ubuntu 17.10 всё по умолчанию в том числе DE, я пробовал запускать с данным параметром саму игру, это ни как не повлияло на тиринг, как был он, таким и остался.

sciencel ()
Ответ на: комментарий от sciencel

В GNOME3 и Unity есть невыключаемый композитный менеджер

compton имеет ключ запуска --help, который перечисляет все возможные параметры запуска. Например "--vsync opengl". А ещё есть "--vsync drm". В теории, это только для драйверов с открытым исходным кодом. Так что "--vsync opengl" - наш выбор.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от sciencel

> Могу установить дистрибутив с mate. DE не принципиально, это дистрибутив для тестов.

Это можно сделать, не переустанавливая систему. Установить пакет ubuntu-mate-meta. Затем в окне входа в систему можно будет выбрать это DE.

ZenitharChampion ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.