LINUX.ORG.RU

Когда графику наконец перенесут в ядро?

 , ,


3

0

Где ей самое место.

Я ведь правильно понимаю, что сейчас при перемещении мыши происходит следующее:

  • Ядро ловит прерывание, пишет читающим из /dev/input/... инфу о перемещении мыши и пробуждает ждущих данных с соответствующего дескриптора (Xorg-сервер). Это первое переключение контекста.

  • Xorg, прочитав о перемещении мыши, дёргает drmModeMoveCursor чтобы переместить изображение курсора на экране. drmModeMoveCursor — это переключение контекста обратно в ядро.

  • Далее, Xorg-сервер посылает клиентам событие о перемещении мыши, записывая в сокет — опять переключение в ядро.

  • Клиенты читают из сокета — опять переключения контекста.

В общем, куча переключений контекста, поэтому графика заметно тормозит, что порождает темы вроде Windows работает плавнее и четче

Почему многие плюются от микроядер, говорят, что FUSE — это игрушка и реальные ФС должны быть в ядре, но при этом к идее всунуть графический сервер/композитор в ядро относятся отрицательно?

Ответ на: комментарий от rukez

не заброшенный графический сервер (вяленый) не работает (с кучей приложений и в целом находится в стадии «глючное фуфло»)

Пишу это сообщение с fedora 32 из-под гнома на вяленом. Все работает, ВСЕ. Даже всякое проприетарное говно типа зума. Анимации плавные, прокрутка и масштабирование в огнелисе тоже. Что я делаю не так?

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

Это был нанятый вальвой контрактор, пилил он в основном DRM бекенд и композитинг.

Подожди, подожди. Я про Martin’а Flöser’а (он же Martin Gräßlin). Не знал, что он был нанят вальвой. Или ты про кого-то другого?

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

Все работает, ВСЕ.

Не работает:

  1. Тени у окон Qt 5 приложений, баги с ресайзом их окон, баги в заголовке окна.

  2. У SDL2-приложений, запущенных нативно SDL_VIDEODRIVER=wayland под Wayland, нет заголовка окна.

  3. Мучаюсь с проблемами захвата курсора во всяких QEMU, VirtualBox и пр., когда окно перестаёт вообще реагировать на события мышки.

Та же Fedora 32.

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

Страдалец сделай уже initrd/initramfs с любым ПО. Не только xorg да хоть целый LibreOffice туда запихай до кучи. Напиши этому свой init. И включи свой initrd/initramfs в ядро. Опции для этого есть. Профит.

init_6

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

Вот только процессор в это время ещё исполняет полезный код, а не переключает сраный контекст. Кроме того, для говнокодеров 3000 переключений это достижимая величина.

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

Да, протокол и реализацию завезли с помощью XDG-порталов и PipeWire.

Оно zero-copy? Вот тут чувак пилил zero-copy захват для Linux и Wayland:

https://obsproject.com/forum/threads/experimental-zero-copy-screen-capture-on-linux.101262/

https://github.com/w23/obs-studio/

Правда фиг знает чем всё закончилось.

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

Первые 2 пункта это гномопроблемы, им тараканы не позволяют просто поддерживать SSD.

Да, я знаю. Это был контраргумент к тому, что всё работает на Fedora 32, GNOME 3, Wayland.

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

Из проприетарщины - Zoom уже умеет в него

Они давали какие-то заявления/новости об этом?

Я читал другое - что зум под вяленым работает только под гномом через гномоспецифичное API и буквально фигачит screensharing скриншотами

https://www.reddit.com/r/swaywm/comments/dr8yld/zoom_screenshare_via_screensh...

https://gitlab.com/jamedjo/gnome-dbus-emulation-wlr

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

Бггг, как будто SP2 ставили все подряд. Некоторые ждали сразу 3 (после первых сообщений по «ОБС-нету» о глюках SP2) большинству было вообще плевать что там за SP. И часто у них не было ни одного.

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

Правда фиг знает чем всё закончилось.

В случае с OBS это закончилось этим патчсетом, основанным на коде w23 и других вкладчиков:

https://github.com/obsproject/obs-studio/pull/2478
https://github.com/obsproject/obs-studio/pull/2482
https://github.com/obsproject/obs-studio/pull/2484

Но он, вроде бы, не добавляет поддержку записи. Этим до сих пор занимаются out-of-tree плагины. В частности, https://gitlab.gnome.org/feaneron/obs-xdg-portal и https://hg.sr.ht/~scoopta/wlrobs.

Насчёт вопроса про zero-copy я не знаю, потому что obs-xdg-portal дёргает стандартный API протокола записи экрана. Какая реализация внутри я не смотрел. ¯\_(ツ)_/¯

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

Некоторые ждали сразу 3

Вот это терпение! Почти 4 года ждали. Вот это любовь!

большинству было вообще плевать что там за SP. И часто у них не было ни одного.

До той поры, пока не начал появляться sp3-only совместимый софт.

Сидеть в xp с разграничением прав тот ещё ад - на любой чих нужно было переключаться на другого пользователя, т.к. никаких окошек «введите пароль» как в 7 ее было. Виндокеры появились когда уже была как минимум Vista. А вирусам, гулявшим в сети до той поры было глубоко начать что у тебя за привилегии, т.к. они использовали уязвимости самой системы (привет sasser), как недавний шифровальщик, которого и запускать то самому не нужно. Достаточно просто быть в локальной сети.

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

Вот это терпение! Почти 4 года ждали. Вот это любовь!

Ставить упдейты выборочно тем кто «в теме» никто не мешал и тогда :) Особенно после того как их проверят админы на работе и сделают подборку для наката того что точно не глючит.

До той поры, пока не начал появляться sp3-only совместимый софт.

У «для учебы» не появлялся, а разницу между сортами офсисов они воспринимали скорее негативно («опять все поменяли!») :) А вот всякой дряни с флешек — этого у них было как у постоянных клиентов КВД и прочих любителей «случайных связей».

Сидеть в xp с разграничением прав тот ещё ад - на любой чих нужно было переключаться на другого пользователя, т.к. никаких окошек «введите пароль» как в 7 ее было. Виндокеры появились когда уже была как минимум Vista.

Так никто кроме тех кто понимает чем чревато и не сидел — эникеи бы без работы сидели, если б все «предохранялись» :) Ну и кому она нужна была твоя виста, все ж и так работало :) И то что она появилась — совсем не повод на нее переходить. Точно так же как с 98SE на ME или XP. Многие рядовые юзеры терялись от новья, когда им эникеи ставили это самое «новье-новье» и требовали «вернуть как было». Добросовестные эникеи объясняли чем это чревато, но «деньги не пахнут, а клиент всегда праф!»

slackwarrior ★★★★★ ()

В общем, куча переключений контекста, поэтому графика заметно тормозит, что порождает темы вроде Windows работает плавнее и четче

В Винде же вроде как даже планировщик заточен на то, чтобы пользователю показать все плавнее и четче. А остальное может и подождать. В Линухе же наоборот какое-нибудь копирование кучи гигабайт на флэшку может поставить все ГУИ раком. Это, конечно, пример нехорошего бага ядра. Но все равно в целом подходы к реализации противоположные.

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

всякой дряни с флешек

Лечилось отрубание автозапуска (хоть это редко кто делал) и любым самым плешивым антивирусом.

Виста о винлокера никак не защищала, да и действительно так всё работало при меньшем количестве проблем. Смысл был только на 7 переходить сразу с хп.

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

А еще шиндовс только на 70% может процессор нагрузить и есть производители процесморов указывающие «пиковую производительность» процессора в эти самые 70%. Отсюда лютые бонусные фпсы под линуксом в ряде игр встречается, если оптимизации реализованы правильно.

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

Лечилось отрубание автозапуска (хоть это редко кто делал) и любым самым плешивым антивирусом.

Нет, этого недостаточно :) «Антивирусы же тормозят» — ну так-то они реально тормозят. Некоторое время юзер вздрагивает от визга свиньи в динамиках по ночам — потом отключает нафиг.

Виста о винлокера никак не защищала,

Спасибо кэп :) Нанятые по объявлениям «одмины» игроклубов думали еще их 2003 защитит — потом играли в увлекательную игру «сервер зоблокирован».

да и действительно так всё работало при меньшем количестве проблем. Смысл был только на 7 переходить сразу с хп.

Примерно так все и сделали, когда юзеры стали встречать эникеев и друзей тыжпрограммистов фразой «пришла пора купить новый цомпьютер, а в магазине сказали жрите чо дают что в семерке работает новое железо, а для хрюши драйвера ищите сами».

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

поэтому графика заметно тормозит

Наверное зависит от конфигурации железа. У меня не тормозят ни вяленый ни иксы. Поэтому меня все устраивает. Разве только лиса открывается рывками, но это мелочь.

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

Эпичнее были темы «я купил ноутбук с чистой и удалил её. Поставил хм, а звук, сеть и ещё что-то не работают». Выясняется, что под это ноут дров под хп никогда не было; диск восстановления исходной системы не был создан и теперь нужно качать драйвера по висту на полотна со стоимостью трафика 2р./мб.

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

У меня AMD, где всё прекрасно, так что сказать не могу. На данный момент пользователи Nvidia всё ещё в пролёте, вроде бы, но начальная поддержка в GNOME уже реализована, а в KDE обещают:

Кроме того, в Fedora 34 предложено перевести по умолчанию сборки с рабочим столом KDE на использование Wayland по умолчанию. Сеанс на базе X11 планируется перевести в разряд опции. В настоящее время работа KDE поверх Wayland относится к экспериментальным возможностям, но в KDE Plasma 5.20 данный режим работы намерены довести до паритета в функциональности с режимом работы поверх X11. В том числе в сеансе KDE 5.20 на базе Wayland будут решены проблемы с ведением скринкастов и вставкой средней кнопкой мыши. Для работы при использовании проприетарных драйверов NVIDIA будет задействован пакет kwin-wayland-nvidia. Совместимость с X11-приложениями будет обеспечена при помощи компонента XWayland.

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

В F33 включили вейланд сессию в гноме по умолчанию на официальных нвидия дровах. Раньше надо было конфиг gdm править, сейчас работает сразу.

Я вчера запускал и на первый взгляд работает, но ничего кроме терминала и браузеров не запускал. Единственное что могу сказать, что ресайз окна хрома глючит и тормозит (хром не wayland native). Если дальше поюзать, наверняка всплывут какие-нибудь баги, типа кривого позиционирования окон/менюшек (в багтрекере вижу такие вещи регулярно).

3Д ускорения в XWayland по прежнему нет, насколько я понимаю. Последняя инфа на эту тему:

We meet with NVidia on a regular basis to discuss topics of shared interest and one thing we been looking at for a while now is the best way to support Nvidia binary driver under XWayland.

(c) https://blogs.gnome.org/uraeus/2020/08/31/first-lenovo-laptop-with-fedora-now...

Посмотрим что он напишет после релиза F33, общение у них идет не по публичным каналам

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

3Д ускорения в XWayland по прежнему нет, насколько я понимаю.

Значит Wayland пока не пригоден к использованию. Многие игры и научные и т.п. 3D визуализации основаны на xlib.

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

говорят, что FUSE — это игрушка и реальные ФС должны быть в ядре

Зря говорят, NTFS-3G работает отлично, как и GIO. А вот ядрён драйвер SMB запросто может повесить системные вызовы при отвале сети.

И вообще, Linux — не графическая ОС.

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

Некоторое время юзер вздрагивает от визга свиньи в динамиках по ночам

А у Нас на будильнике украинец ;) Надо бы найти и поставить того самого украинца из Касперыча, спасибо, что напомнили.

mertvoprog ()