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

>>> Просмотр (1600x900, 453 Kb)

★★★★★

Проверено: 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)
Ответ на: комментарий от Sunderland93

Да, это весьма оптимистичный прогноз..

enso ★★★★★
()
Ответ на: комментарий от 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 ★★★
()
Ответ на: комментарий от Exmor_RS

А карта у вас какая? Моя не поддерживает режим 1920x1080, только 1920x1200 и подобные. Потому выставил 1024x768x24

Sunderland93 ★★★★★
() автор топика
Ответ на: комментарий от 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
()
Ответ на: комментарий от Satou

Просто есть копрофилы, которые до сих пор это юзают.

BceM_IIpuBeT ★★☆☆☆
()

А оно вообще хотя бы где нибудь полноценно работает? Сейчас кажется что даже померший 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.