LINUX.ORG.RU

NVidia Optimus / Primus / Vulkan

 , , , ,


1

2

Привет, ЛОР!
Если ты не в курсе, то на онтопике в лэптопах в конфигурациях с двумя видеокартами (Intel+Nvidia) при использовании нормальных проприетарных драйверов и bumblebee/optirun — не работает Vulkan: https://github.com/Bumblebee-Project/Bumblebee/issues/769

Тут какой-то чувак запилил враппер, который рендерит на дискретной видяхе и перенаправляет вывод на встроенную — то есть, так, как это должно работать и работает в шиндошсах.

Сабж: https://github.com/felixdoerre/primus_vk

Я скомпилировал, протестировал — действительно работает, однако, FPS в несколько раз ниже как в тестах, так и в игрульках.

Просьба счастливых обладателей ноутбуков с оптимусом скомпилять и проверить у себя (хотя бы в том же vulkan-smoketest) — сколько сантиметров выдаёт по сравнению с Интелем

Мои результаты:

Intel = 210 FPS
Nvidia + primus_vk = 40 FPS
Nvidia + nvidia-xrun (отдельный X-сервер) = 560 FPS

Особенно приветствуются пользователи рачика, у которых свежие драйвера/вулканы/пуканы, потому что в моём тухлодебиане всё протухло ещё до того, как успело релизнуться.

★★★★☆

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

Там же написано, что кадр копируется три раза. Разумеется производительность будет дно.

anonymous
()

Зато дрова нормальные проприетарные.

Behem0th ★★★★★
()

Тут какой-то чувак запилил враппер, который рендерит на дискретной видяхе и перенаправляет вывод на встроенную — то есть, так, как это должно работать и работает в шиндошсах

Так оно работает везде и всегда, а какой-то чувак запилил костыль к мёртвому bumblebee. Фанатеешь от трупачинки?

no-such-file ★★★★★
()

проприетарных драйверов и bumblebee/optirun — не работает Vulkan:

Что это значит? Выложи vulkaninfo.

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

Это значит, что Vulkan работает только при запуске отдельного X-сервера с картой NVidia.

При использовании технологии Optimus — Vulkan не работает и «так и задумано» по словам разработчиков Bumblebee (ссылка на гитхаб в ОП-посте)

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

так ведь наоборот хорошо что отдельный сервер. а то представь картину например wayland -> xwayland -> virtualgl ух! нужно больше прослоек!

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

Это не очень удобно, переключаться в tty, логиниться, запускать оконный менеджер, а оттуда игрульки

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

А ну-ка открой секрет

Открываю. В 99% случаев экран ноута не подключается к дискретке напрямую. Т.о. единственный вариант её использования со встроенным экраном это «враппер, который рендерит на дискретной видяхе и перенаправляет вывод на встроенную».

Вариант с запуском отдельных иксов только на nvidia тоже возможен, но это будет работать только с внешним монитором (внешний hdmi/dp обычно подключён к дискретке).

no-such-file ★★★★★
()
Ответ на: комментарий от annerleen

Зачем в tty? Я вторые иксы запускаю из первых, всё работает.

anonymous
()

Вулкан себя странно ведёт: на GNOME3 нормальный FPS, на Xfce - в два раза меньший. Во всяком случае, в игре War Thunder. Возможно что ты столкнулся с той же проблемой, что и Xfce-шники

Ну и как вариант, можно попробовать NVIDIA PRIME. В X-Server 1.20 даже работает переключение без перезагрузки «иксов»

ZenitharChampion ★★★★★
()
Ответ на: комментарий от no-such-file

Я сам не пробовал, а только читал Changelog версии 1.20. Жалко что в Fedora - 1.19

В 1.20 добавили GLvnd, и теперь одни приложения будут работать на GPU Intel, другие на NVIDIA, и всё это одновременно. Не знаю только как именно указывать, какое на чём. И обесточивается ли NVIDIA в тот момент, когда ей не пользуются

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

Наверное, __GLX_VENDOR_LIBRARY_NAME=mesa и =nvidia.

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

Да. Но в Mesa, X-Server и драйвер NVIDIA добавили GLvnd. Суть в том, что libGL.so.1 становится программным диспетчером, передающий вызовы OpenGL либо в одну, либо в другую реализацию OpenGL. Таким образом, в одном сеансе «иксов» можно запустить два разных OpenGL-а.

В Bumblebee рисуется виртуальный рабочий стол, с которого пробрасывается картинка на основной. Тоже неплохо

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

С твоей конфигурацией чёрный экран при запуске иксов
В логах из подозрительного только это

[ 1007.893] (II) NVIDIA(0): Setting mode «NULL»

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

Так, падажи, то, что описано в твоём посте — ровно то же самое, что делает nvidia-xrun

Т.е. весь рендеринг ведётся через дискретную NVidia

Соответственно, ноут греется и жрёт как очумелый, и все прелести конфигурации с двумя видеокартами сходят на нет



Я-то уже подумал, что всё «по уму» сделали

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

Взять из Bumblebee код работы с питаловом от дискретки и можно пользоваться.

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

GLvnd уже запилили?
На форуме невидии сообщения о том, что ещё нет.

Если да, есть ли мануал по настройке?

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

Мануал я искал - не нашёл. Теоретически, GLvnd стало возможно включить и использовать, и ничто этому не препятствует. Знать бы как. А вот пару месяцев назад ещё было нельзя: GLvnd был везде, кроме «иксов»: в драйвере NVIDIA 361 и выше, и в Mesa начиная с 18. И вот наконец релизнулся в X-Server 1.20

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

А где пишут на форуме NVIDIA? Это свежее сообщение? Я тоже хочу посмотреть

ZenitharChampion ★★★★★
()

Nvidia + nvidia-xrun (отдельный X-сервер) = 560 FPS

Это виндоусwin!

Shulman
()

Народ, мож я припозднился, но как запустить nvidia-xrun из текущего сеанса? Уменя проблема с переключением между терминалами (клава в ноуте дохнет, два ряда клавиш неработает), а из текущей, естественно, не разрешают. Пошарился по инетам, везде одно и то же:

— подправь /etc/X11/Xwrapper.config

—— подправил, не работает

и молчок дальше. Дык есть способ заветный?

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

угу, есть мысля. Создать другого юзера и создать ему скрипт автозапуска nvidia-xrun с опенбоксом, или енлайтмнтом. А в нём напхать игрулек. Но проблема, в него опять надо логиниться через терминал, ну допустим, из текущей сессии я переключусь, а обратно уже никак :)

Deleted
()

Посоны, там новый коммит завезли и обещают нативную производительность (как у nvidia-xrun)

Потестите там, а то мне негде пока.

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

У меня рачик, как ты заказывал. Там только:

usr/bin/cube
usr/bin/cubepp
usr/bin/vulkaninfo
При запуске консоль на секунду зависает и приложение завершается. На экране ничего нет.

Собрал исходники из дебиановского пакета. Там vulkan-smoketest нет, но есть просто smoketest. История та же самая. Без ENABLE_PRIMUS_LAYER=1 optirun сегфолт.

Короче ниасилил.

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

Пишу из горящего танка

Оказалась, что у меня не установлены драйвера на nvidia. Поставил, перезагрузился и комп не грузится в графическую сессию. Еле починил. Нахер такие эксперименты.

ox55ff ★★★★★
()

Последний коммит из мастера даёт такую же производительность, как и запуск на отдельном X-сервере.

Это вин, ящитаю.

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