LINUX.ORG.RU

Wayland — разъяснения от разработчиков KWin

 , ,


0

3

Дисклаймер. В связи с тем, что очень многие (почти все) здесь не понимают, зачем нужен Wayland, пишу в новости, благо есть источник, где кое-что разжёвано. Текст чуть-чуть подсократил, чтобы не захламлять.

Итак, приступим.

  1. В Wayland может быть реализована сетевая прозрачность.

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

  2. Сетевая прозрачность X11 не подходит для современных приложений.

    Она давно устарела, будучи сделанной с расчётом на то, что приложения используют простые команды для отображения содержимого окна, и эти команды можно отправлять по сети. Когда-то это было разумно, но современные приложения не используют X11 для рендеринга, они используют такие технологии как Cairo, Clutter, QPainter (Raster) или OpenGL. В этом случае X11 вынужден отправлять по сети готовую картинку, а для этой ситуации есть технологии, которые делают это гораздо лучше, чем X11. Сетевая прозрачность в X11 померла и так, без участия Wayland.

  3. X11-приложения будут поддерживаться.

    Никто не хочет ломать систему, переход на Wayland будет произведён если и только тогда, когда X11-only приложения будут в ней хорошо работать (через слой совместимости). Сетевую прозрачность X11, очевидно, тоже можно будет использовать.

  4. Сетевой прозрачности не место в оконной системе. Если вы хотите быстрой сетевой прозрачности, ей место в тулките виджетов.

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

  5. «Дистибутивы выкинут иксы, моё любимое X11-only приложение не заведётся!»

    Для этого уже есть слои совместимости (X11 приложения можно запускать из композитора Wayland). Поддержку X11 никто не выкинет из дистрибутивов, пока она будет востребована, даже Mac OS X всё ещё поддерживает X11 для совместимости. Постепенно количество X11-only приложений будет уменьшаться (переписывание, естественная смерть), и даже если из вашего дистрибутива поддержку X11 уберут, вы всегда сможете её собрать сами.

Прекратите повторять ошибочные утверждения.

P.S. Отвечу на вопрос «Зачем вообще нужен Wayland, давайте улучшать X11».

Такие (или аналогичные) изменения даже если были бы возможны в X, всё равно бы сломали X11 и дали несовместимый с ним X12. Без слоя совместимости обойтись невозможно, а сам X12 тоже был бы не сахар, так как писался бы с оглядкой на X11. И чем это было бы лучше того, что мы имеем с Wayland?

В основе X11 лежат архитектурные решения более чем двадцатилетней давности (см выше). Так делать уже не надо, очень много функциональности иксов перешло в тулкиты, ядро, D-Bus, и другие системы. Замену легче написать с нуля, которая делает только свою прямую работу, а не пытается объять всё.

>>> Подробности

★★★★★

Проверено: svu ()
Последнее исправление: cetjs2 (всего исправлений: 11)

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

Ну будет вместо «ssh -X» что-то вроде «ssh --cool-net-tool-kit-option» или «ssh --vnc»

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

> А почему этим должен заниматься протокол wayland?

Вот ия не понимаю, с чего ради linux-специфичный backend оконной посистемы объявили самой оной системой и носятся теперь с ним как с писаной торбой.

Сетевую прозрачность на уровне тулкитов(когда ее сделают)? Зачем вообще сеть и сетевая прозрачность в композиторе? Это-же по сути прокладка между тулкитом и дровами.

Столько вопросов, а ответ один: ничего этого не сделано и не будет сделано. Как только вейланд и 2 тулкита допилят достаточно, чтобы можно было локально запустить гномокеды, сбоку их подопрут костыликами в виде новых протоколов поверх dbus, и на этом так всё и оставят. Сама логика разработки свободного ПО ведёт к этому.

Потом, через 5-10 лет, кто-нибудь решит, что всё это надо срочно переделать, и цикл начнётся заново. Опять под крики о инновациях, прогрессе и о том, что в прошлый раз всё было сделано не правильно.

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

Ну, тогда будем использовать VNC. Или HTML5, кстати.

В опенсорсе, как правило, реализуют любую востребованную фичу.

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

>Потом, через 5-10 лет, кто-нибудь решит, что всё это надо срочно переделать, и цикл начнётся заново. Опять под крики о инновациях, прогрессе и о том, что в прошлый раз всё было сделано не правильно.

No pain, no gain. Я бы не сказал, что иксы прожили мало. Я пробовал разобраться в том коде. Не подъемно.

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

> В опенсорсе, как правило, реализуют любую востребованную фичу.

Это скажем, ты ко мне, как разработчику конкретной мелкой софтины, можешь обратиться и попросить реализовать фичу. А попробуй повлияй на развитие гнома, кед или FF. Эта корпоративщина в принципе не способна к диалогу со своим пользователем.

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

Мне всегда казалось, что второй гном теперь называется «xfce»

FF - отдельная тема. У них наверное в отряде затесалось пара диверсантов, не иначе.

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

> Я бы не сказал, что иксы прожили мало.

Это не повод их хоронить. Нужные конкретные технические аргументы. Их нет.

Я пробовал разобраться в том коде. Не подъемно.

В одну харю — не подъёмно. Но это не значит, что код xorg невозможно эволюционировать во что-то иное. Но для начала, надо понять, как это иное должно выглядеть. Когда результат известен, можно спланировать всю последовательность рефакторингов и изменений функционала, которые приведут к нему.

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

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

И мне скорее нравится то, что твориться с кедами и гномом.

Хочешь win7-like - юзай кеды.
Хочешь планшетного интерфейса - гном3.
Хочешь классики - xfce/lxde.
Разнообразность-же!

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

Еще раз - появление конкурентов иксам <> иксы хоронят. Может это напротив, подстегнет разработку иксов?

Сейчас два основных тулкита стараются сделать все, что бы как можно дальше отвязаться от иксов. Может это неспроста? Если иксы хороши, то зачем их оборачивать в кучу абстракций? Зачем все рисовать пиксмапами?

Их надо улучшать и развивать всячески. Если текущая команда не успевает - то это тоже проблемы иксов.

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

Ну, дома я использую гном3 на нормальном компе. Все достаточно удобно для меня.

На нетбуке у меня вообще compiz+awn. Одно окно - один виртуальный воркспейс.

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

> Сейчас два основных тулкита стараются сделать все, что бы как можно дальше отвязаться от иксов. Может это неспроста?

Логичное объяснение: Они попросту рвутся занять нишу на мобильных девайсах. Если где и есть смысл применять вейланд, то там.

Объяснение ЛОР-style: Когда коту делать нечего, он яйца лижет.

Выбирай любое. :)

Если иксы хороши, то зачем их оборачивать в кучу абстракций? Зачем все рисовать пиксмапами?

Скорее вопросы я бы поставил так:

Что заставило Паккарда вслед на разработкой xrender взяться за создание cairo, которая работает уже на клиенте, а не сервере?

Насколько затратно перенести один из вариантов полотна cairo на сторону граф.сервера и есть ли в этом практический смысл?

Т.е. провести разделение рендеринга графики между клиентом и сервером по линии API cairo.

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

Кстати, насчет тем... Вот сейчас GTK3 использует CSS.

Прикрутить CSS к Qt и можно рендерить формочки на сервере. Передавая от клиента только css-ку с темами, может еще несколько пиксмапов связанных с этой темой и текстовые данные самой формочки.

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

>Логичное объяснение: Они попросту рвутся занять нишу на мобильных девайсах. Если где и есть смысл применять вейланд, то там.

Особенно гном3 со своими гигантскими тулкитами. Скорость? Ну, счас некоторые смартфоны быстрее моего нетбука.

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

> Скорость?

Если вся экосистема GUI состоит из одного DE, работающего на одном тулките, то запустить тулкит прямо поверх фреймбуфера — вполне логичный шаг. Не знаю, что насчёт скорости, но память, вероятно, это поможет несколько сэкономить. В этом плане вейланд ничего нового не предлагает, DirectFB уже давно успел родиться и протухнуть.

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

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

Napilnik ★★★★★
()

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

Я считаю, что это неправильно. «Гнать картинку» тоже может быть полезным, это позволяет не устанавливать весь ворох тулкитовиджетов, которые используются данным приложением. В Х11 это возможно, Wayland от этого отказывается. Жаль.

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

Я не говорю, что X11 это плохо. Оно работает и работает приемлемо. Просто я не люблю монопольных проектов. Сейчас альтернативы иксам нет. Это плохо. Есть много разных DE/WM, и это хорошо. Есть несколько разных офисных пакетов. Есть несколько браузеров. Есть даже альтернатива ядру в виде *BSD, hurd и прочих гаек.

А вот иксам альтернативы нет. И это на самом деле - совсем не хорошо.

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

Я пользуюсь кедами, начиная с 3.1.3. И я говорю: ничего ужасного, абсолютно. Просто у кого-то мозги превращаются в деревянную болванку.

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

>или не хотят разбираться в том, что им сейчас не нужно.

Ну и нефиг тогда комментировать то в чем совершенно не разбираешься.

Для кого-то и моно нужен а остальные не разбираются в вопросе,

Какая неудачная аналогия, ты специально старался такую неудачную придумать?

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

>DirectFB уже давно успел родиться и протухнуть.

Плохо-же. Я бы на нетбуке не отказался бы от такой штуки.

А кто мешает? В дистрибутиве Ubuntu имеется. Проблема DirectFB) в том что пилят его 2 и 1/2 человека без поддержки крупных фирм. На медиаплеерах c SDK Sigma Designs - это сейчас основной инструмент.

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

Местные чудо аналитики всегда найдут что нибудь что НЕНУЖНО!, и объяснят это остальным.)

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

> В дистрибутиве Ubuntu имеется

Во всех популярных дистрибутивах имеется.

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

>Ну и нефиг тогда комментировать то в чем совершенно не разбираешься.

Во первых, ты сам навязался, во вторых досконально разобраться в вопросе не сложно, но он пока того не стоит. Будут стоящие вещи на сабже, будет и вопрос, а пока вопроса нет. И на имеющихся дровах можно было бы запилить что-то ценное, потянули бы, но с открытыми трёхмерными технологиями пока всё очень тускло. Можно пилить дрова а использоваться они будут лишь для wine и vmware.

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

>Будут стоящие вещи на сабже, будет и вопрос, а пока вопроса нет.

Уже есть. (пример мои комменты выше)

И на имеющихся дровах можно было бы запилить что-то ценное, потянули бы

Нет не потянули бы, самим разработчикам надоело тянуть и он упростили и оптимизировали процесс.

но с открытыми трёхмерными технологиями пока всё очень тускло.

OpenGL, OpenGL ES открытые трехмерные технологии и с ними все достаточно ярко.

Можно пилить дрова а использоваться они будут лишь для wine и vmware.

Смысл этого предложения не понял.

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

>А вот иксам альтернативы нет.

Эта альтернатива позиционируется как замена. И потому было бы очень неплохо, если бы эта замена умела бы то же самое, что и заменяемое. Однако, разработчики этой самой замены говорят, что универсальной сетевой прозрачности в их продукте нет и не будет.

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

Плоха та альтернатива, которая не мечтает стать заменой. )

kir2yar
()

Погонял приложения под x11trace, вставив в коде оного usleep(10000) после select(). Результаты закономерны:

lesstif работает быстрее всего, т.к. использует под виджеты отдельные иксовые окна и минимум рисующих примитивов. Но из-за этого при резайзе моргает.

FOX Toolkit тоже любит отдельные иксовые окна. Обновляет содержимое при перерисовке довольно грамотно. Но моргает.

FLTK рисует чуть медленнее, чем FOX. Сильно моргает.

Gtk2 и Gtk3 используют двойную буферизацию, благодаря чему сначала идёт пауза на отрисовку, а потом область обновляется сразу целиком. Работает быстрее всех (за исключением lesstif).

Qt4 сильно тупит и отправляет серверу ТЫСЯЧИ команд при каждом обновлении. Совершенно, правда, не понятно, почему и зачем. Не моргает, то тормозит.

Worker, который не использует тулкитов, а пашет на голой xlib, представляет собой тихий ужас в плане перерисовки интерфейса. Тупит. Моргает. Делает избыточные обновления.

Все тулкиты (кроме lesstif) интенсивно используют XRender, и, как минимум, Gtk и FOX используют его _грамотно_. (За грамотность в Qt4 остальные ничего сказать не могу, т.к. в логи особо не всматривался)

Выводы:

Вейланд не нужен. Qt не нужны. Worker следует переписать на FOX.

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

А можно ли весь гуй рисовать силами видюхи? Я просто немного не в теме, но не быстрее ли было бы, если бы отрисовкой кнопочек и шрифтов занимался не проц, а видеокарта?

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

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

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

> А можно ли весь гуй рисовать силами видюхи?

_Весь_ гуй — вряд ли. А вот примитивы XRender и так ускоряются аппаратно. Еще, полагаю, растеризацию шрифтов можно было бы делать на GPU. В иксах для этого можно было бы завести отдельное расширение, при помощи которого отсылать иксам шрифты в векторном формате, а они уже будут заниматься растеризовывать из в битмап заданного размера.

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

Блин. Я уж вознадеялся, что оно платформонезависимо. Если не путаю, каиро может-же рисовать в файл. А значит - оно умеет рисовать примитивы без xrender. Так-же?

Вот бы сделать прозрачность на уровне инструкций cairo... Или заменить xrender на cairo?

Я просто хочу иметь возможность сделать ssh -X на сервер, у которого только 64кб/с исходящего канала...

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

А как это будет сделано - мне как пользователю плевать.

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

> Блин. Я уж вознадеялся, что оно платформонезависимо. Если не путаю, каиро может-же рисовать в файл. А значит - оно умеет рисовать примитивы без xrender. Так-же?

У него поддерживается дофига типов поверхности для рисования: http://cairographics.org/manual/cairo-surfaces.html
Но API backend-а в отдельный сетевой протокол не выделено. Я так понимаю, ты хочешь именно этого.

Вот бы сделать прозрачность на уровне инструкций cairo... Или заменить xrender на cairo?


Не вполне ясно, насколько это ускорит отрисовку, по сравнению с. Но теоретически это возможно.

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

> А значит - оно умеет рисовать примитивы без xrender. Так-же?

конечно, в том числе и записывать действия для их хранения/пересылки и отрисовки на новом месте

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

> xlib - всего лишь один из бекендов и не больше

Ну в треде речь явно не о виндах. И не о рисовании в файл, для которого сетевая прозрачность не нужна. Так что, очевидно, речь идёт о конкретном типе поверхности.

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