LINUX.ORG.RU

GNOME on Wayland на Nvidia-блобе. История успеха

 , , , ,


3

5

Итак, свершилось! Мне наконец-то удалось запустить Wayland-сессию Гнома на проприетарном драйвере Nvidia. Для тех, кто не в теме: начиная с версии драйвера 364.12, Nvidia реализовала в нём начальную поддержку Wayland, однако несовместимую с тем, что используется в Mesa. В Mesa применяется библиотека GBM - Generic Buffer Manager, аллокатор буферов изображений. Реализация Nvidia основана на расширениях EGLStreams и EGLDevice, являющихся кроссплатформенным открытым стандартом Khronos. В списке рассылки разработчиков Wayland, Nvidia представила патчи для композитного менеджера Weston, однако разработчики их не приняли и, можно сказать, послали Nvidia подальше. Зато эти патчи адаптировали для Mutter и Sway, но о качестве работы будет ниже. Nvidia же в прошлом году анонсировала новый аллокатор, разрабатываемый совместно с разработчиками Mesa, но с момента последней новости - тишина. Nvidia не хочет создавать что-то платформоспецифичное, так как ей проще поддерживать единую кодовую базу для всех ОС.

Поддержка EGLStreams обеспечена в GNOME 3.24, однако для этого, оконный менеджер Mutter должен быть собран с --enable-egl-device Как оказалось, в Fedora 26 он собран без этой опции, также из-за применения библиотеки GLvnd, получаются лютые тормоза и лаги мышки. Аналогично в Arch Linux.

Поэтому для тестов я выбрал альфа-версию Ubuntu 17.10. Итак, что для этого нужно проделать:

1) установить драйвер Nvidia (sudo apt install nvidia-375)
2) включить DRM/KMS (по умолчанию в блобе он выключен из-за недоделанности и проблем со SLI-конфигурациями). Для этого в /etc/default/grub, в секцию параметров ядра, добавляем строку nvidia-375-drm.modeset=1 Номер драйвера указывать только для Ubuntu! Признаком успешного запуска DRM/KMS является Xorg, запущенный от юзера (в этом можно убедиться в менеджере процессов)

По идее, если всё сделано правильно, но сразу после перезагрузки Гном должен запуститься на Wayland, однако меня встречало окно входа в систему, и сеанс с Wayland никак не грузился. Поэтому я переключился на пятую tty-консоль, и стартанул сессию командой dbus-run-session -- gnome-shell --display-server --wayland

И о чудо! Оно запустилось! Начну с приятных моментов. Отрисовка значительно быстрее, чем с блобом на иксах. Курсор не отстаёт от окна ни на пиксель, анимации плавненькие, ресайз окон не тормозит. Может немного лагануть меню приложений, но я грешу на старый тормозной HDD, на котором я всё тестировал. Flatpak-приложения работают, но не все. Видео работает без проблем. Собственно, на этом приятное заканчивается. Далее оглашаю список ограничений:

1) Первое и самое главное - не работает Xwayland. В большинстве приложений. Из иксовых приложений успешно запустились лишь Firefox, Clementine и Chromium, остальные падают в корку с ошибкой Could not initialize GLX Потому запуск возможен только нативных Wayland-приложений. Чтобы запустить что-то на Qt5, нужно добавить переменную окружения export QT_QPA_PLATFORM=wayland, но тут тоже есть неприятные моменты.

2) Не запускается панель управления Nvidia (потому на скринах её нет), не работают приложения, юзающие веб-камеру (правда я только Cheese запускал), и как следствие предыдущего пункта - не работает ни одна игра (кроме встроенных гномовских) или эмулятор игровых консолей.

3) Иногда грузит CPU на 100%. Баг широко известен в сети, но я не знаю что думает на этот счёт Nvidia. От апстрима Гнома ответа не дождался.

4) KMS работает частично, в частности переключение между виртуальным консолями происходит секунды 2, а возврат в графическую может проходить и все 5. На свободном драйвере всё происходит мгновенно. Да, если вдруг кто спросит - нет, KMS в блобе не даёт высокое разрешение в консоли. Нету драйвера для fbdev, хотя с efifb вроде как разрешение высокое.

5) Родная панель управления Гнома не работает в такой конфигурации, потому запускается её сильно кастрированный вариант (скрин ниже)

Итог: я не знаю почему в Mesa выбрали GBM вместо открытого стандарта. Ведь Нвидию, по сути, обвинить не в чем. В кое-то веки смогла в стандарты. Я не думаю что будут какие-либо серьёзные улучшения как работы блоба с EGLStreams, так и оконных менеджеров куда эти патчи добавили, ибо апрстрим не принял, и тестировать некому. Хотя посмотрим как оно будет. На данный момент вердикт - неюзабельно.

Ещё скриншоты:

Firefox и LibreOffice
Activities
SMplayer (Qt5) нативно в Wayland
Панель управления
Nautilus и Clementine

🤡

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

Что за приложение для получения системной информации на скрине?

Может немного лагануть меню приложений, но я грешу на старый тормозной HDD

Меню приложений у меня на Fedora 25 и 26 тоже немного подтормаживали. Это когда зажимаешь кнопку мышки (тачпада) и перемещаешься по-очереди File => Edit => View

Именно на Wayland'е.

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

Что за приложение для получения системной информации на скрине?

GTK Inspector. Ставится с пакетом libgtk3-dev, включается где-то в Gsettings, открывается по Ctrl+Shift+I

Sunderland93 🤡
() автор топика

«my gut feeling is that wayland isn’t ready yet» (c) Ubuntu Desktop team lead Will Cooke 2017/07/10

А в Ubuntu уже и не уверены пихать ли Wayland по умолчанию в 17.10, а значит и в 18.04 LTS

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

Пока по умолчанию стоит Wayland, там уже видно будет. А так согласен - многое не готово.

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

Ну стим вот таскает с собой 32 битное окружение пятилетней ubuntu 12.04 :D

Ну и про Wayland пока не думают.

fornlr
()

Да, если вдруг кто спросит - нет, KMS в блобе не даёт высокое разрешение в консоли.

У меня в дебиане (тестинг/бастер, блоб 375.66) наоборот даёт высокое разрешение в консоли (без uvesafb).
`nvidia-drm.modeset=1` в параметры ядра (CMDLINE в грабе);
`GRUB_GFXMODE=1920x1080x16` и `GRUB_GFXPAYLOAD_LINUX=keep` в конфиг grub'а.
Ну в дебиане это всё идёт в /etc/default/grub и update-grub.

Только сама консоль медленная.

Exmor_RS 🤡
()
Ответ на: комментарий от Sunderland93

Ну это мой конфиг, для вашей системы нужно смотреть в grub'е командой `vbeinfo` или от рута `hwinfo --framebuffer`.

Exmor_RS 🤡
()
Ответ на: комментарий от Sunderland93

GTK Inspector. Ставится с пакетом libgtk3-dev, включается где-то в Gsettings, открывается по Ctrl+Shift+I

Прикольная программа, спасибо.

http://esxi.z-lab.me:666/~exl_lab/screens/GNOME3_GtkInspector.png

У меня правда по Ctrl+Shift+D вызывается и ещё надо было сделать:

$ gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true
EXL ☕☕☕☕☕
()

Итак, свершилось! Мне наконец-то удалось запустить Wayland-сессию Гнома на проприетарном драйвере Nvidia. Для тех, кто не в теме: начиная с версии драйвера 364.12, Nvidia реализовала в нём начальную поддержку Wayland, однако несовместимую с тем, что используется в Mesa. В Mesa применяется библиотека GBM - Generic Buffer Manager, аллокатор буферов изображений. Реализация Nvidia основана на расширениях EGLStreams и EGLDevice, являющихся кроссплатформенным открытым стандартом Khronos. В списке рассылки разработчиков Wayland, Nvidia представила патчи для композитного менеджера Weston, однако разработчики их не приняли и, можно сказать, послали Nvidia подальше.

Типичный опенсорс.

Sunderland93 ★★★★★  «GNU/Linux - самая продуманная ОС»

Deleted
()

Бедный NVIDIA-блоб. На нём запустили ненужно через ненужно!

a1batross
()

Из иксовых приложений успешно запустились лишь Firefox, Clementine и Chromium, остальные падают в корку с ошибкой Could not initialize GLX Потому запуск возможен только нативных Wayland-приложений.
История успеха

Однако....

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

Злобный зоопарк.

Ну хотят люди играть стимовские игры...пусть играют.

Odalist
()

я не знаю почему в Mesa выбрали GBM вместо открытого стандарта.

Потому что когда делался GBM, этих стандартов ещё в проекте не было.

Dark_SavanT 👍
()

Я слежу за темой и все прочитал. Спасибо, за подробности тест-драйва! Молодец, качественно получилось.:)

crypt
()

кто-то из троицы rh-gnome-nevidia явно перебирает с упорином и тянет одеяло на сИбя, идиёты.

Deleted
()

вся суть линукса

1) Первое и самое главное - не работает Xwayland. и т.д

ggrn
()

Эх… Ну гном-то давно уже работает. Вот бы по Sway или хотя бы ещё чему-то (чему угодно, что не Gnome, не KDE и не Weston) под блобом Nvidia истории успеха.

upd: а хотя

1) Первое и самое главное - не работает Xwayland

Не, таких историй успеха по Sway у меня у самого завались, причём именно, что всё работает, и Xwayland тоже работает, и всё, что пробовал запускать иксового, но только вот в нём не работает 3D-ускорение, то есть игры дичайше тормозят или вообще отказываются запускаться.

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

Ёшкин кот, у одного меня все хорошо на линаксе штоль?

Нет, много у кого. Просто те, у кого всё хорошо, не пилят кулстори. Это же скучно, когда всё просто хорошо.

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

Под AMDGPU-PRO? Не знаю, но в теории должно, основной модуль ведь в ядре, KMS и все дела работают.

Sunderland93 🤡
() автор топика
Ответ на: комментарий от ipeacocks

На AMD я тестировал только с Месой, о работе с AMDGPU-PRO лишь читал, правда не помню где. Так что врать не буду. На месе работает прекрасно

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

Вот бы по Sway или хотя бы ещё чему-то

А другого больше и нет. Enlightenment не поддерживает EGLStream. А работа Sway будет аналогичной

Sunderland93 🤡
() автор топика
Ответ на: комментарий от Sunderland93

А другого больше и нет.

Есть way-cooler ещё, но я его не тыкал. И ещё что-то было, но не тайловое, а не тайловое меня не особо, честно говоря, интересует, хотя историю успеха бы всё же почитал.

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

В списке рассылки разработчиков Wayland, Nvidia представила патчи для композитного менеджера Weston, однако разработчики их не приняли и, можно сказать, послали Nvidia подальше.

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

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

Sunderland93 🤡
() автор топика
Ответ на: комментарий от Sunderland93

Они гнули линию в пользу стандарта, причём, кроссплатформенного, а не велосипеда. Пусть он появился до появления EGLStreams, но не повод ли это выпилить велосипед?

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

говорят Джобс с такими кадрами очень жестоко обходился, когда дело касалось заделов на будущее :-)

и решения принимались далеко не демократические.

а тут Красна Щепка задумала баламутить всю индустрию.

Deleted
()

А оно вообще хотя бы где нибудь полноценно работает? Сейчас кажется что даже померший Mir более доделан чем Wayland

Landgraf
()

история успеха

Пока что больше похоже на историю провала проекта Wayland.

grem 👍👍👍👍👍
()
Ответ на: комментарий от Landgraf

На Fedora 25, Fedora 26.

Если у тебя Intel вместо видеокарты. Три месяца на этом Wayland сижу, GTK+3 приложения работают нативно, остальное пока через XWayland.

Работать вполне можно. Глюки есть, но не критичные.

EXL ☕☕☕☕☕
()

> Поддержка EGLStreams обеспечена в GNOME 3.24, однако для этого, оконный менеджер Mutter должен быть собран с --enable-egl-device Как оказалось, в Fedora 26 он собран без этой опции

Вот тебе и «сделали Wayland „из коробки“». Пакет можно легко пересобрать с помощью «yum-builddep пакет» и «rpmbuild --rebuild пакет.src.rpm». А ещё лучше создать репозиторий OBS, в качестве цели указать Fedora 26, закачать официальный пакет, и внести необходимое изменение в ./configure

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

Нет, не повод. У EGLStream, как потом выяснилось, куча недостатков. И он вендорспецифичен

Sunderland93 🤡
() автор топика
Ответ на: комментарий от Sunderland93

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

Landgraf
()

Это успех! Ещё чуть-чуть и заживём. (не сарказм)

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

Потому что невидия всё правильно делает. Завтра студенты сдадут свою курсовую по Wayland, придут новые студенты и сделают новые велосипеды, а невидии это поддерживай. И зачем всё это, когда есть стандарт?

Х11 знаешь чем лучше? В нём уже вряд ли что-то поменяется. А стабильность важнее, при ней не тратятся деньги.

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

При чём здесь проект Wayland? Nvidia не смогла в существующие технологии, а виноват Wayland?

Сколько существует NVidia и сколько Wayland.

Реализация Nvidia основана на расширениях EGLStreams и EGLDevice, являющихся кроссплатформенным открытым стандартом Khronos.

Это не существующая технология? И что в итоге, реализованная в Wayland технология поддерживается нормально каким-либо сторонним вендором? На самом деле виноваты они все, так как до сих пор не договорились о сотрудничестве.

grem 👍👍👍👍👍
()
Ответ на: комментарий от Sunderland93

Мы делаем квадратные колеса и ставим на них квадратные шины. Тут пришел какой-то производитель шин (при чем очень популярных) и предложил сделать нам колеса круглыми в соответствии с принятым стандартом. Но мы же уже делаем квадратные колеса, технология отработана. Почему мы должны подстраиваться под этого производителя и какие-то там стандарты и делать колеса круглыми?

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