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)

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

>Хотя вайланд ни одну из проблемм не решит

Таки лучше бы пилили X12.


СЕНСАЦИЯ! Разработчики Wayland должны сделать X12 вместо разрабов X11. Скандалы! Интриги! Расследования!

Пилите, Шура, пилите.

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

Тебе мешает существование команды «нарисуй арку»? Спать по ночам не даёт

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

Еще один, не знающий про xrender. Вы прямо как на свет ползёте.

Я знаю про него. Вот если ты докажешь, что он прямо таки всем используется, то я буду неправ. Qt с raster рисует в картинку. Сам. Так быстрее.

Да и плюс это тоже не панацея, так как туда гонятся пиксмапы. Нахрена? Если сетевую прозрачность запихнуть в тулкиты, то будет общение высокоуровневыми командами без пиксмапов, кроме тех, что принадлежат самому приложению, а не тулкиту. Оно будет так же летать по сети как нативные виджеты иксов. В иксах так БЫЛО. Но протухло и отвалилось. Понимаешь, почему?

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

Сейчас от сетевой прозрачности иксов остались жалкие ошмётки, подпёртые костылями.

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

> Если сетевую прозрачность запихнуть в тулкиты, то будет

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

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

У вас тяжкая форма бреда.

Говори по существу, пожалуйста, не выпендривайся.

Я имею ввиду Xt, Xaw, Motif. Они делали как было задумано, они летали по сети.

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

Ответь мне на такой вопрос: ты понимаешь, что перенос вменяемой сетевой прозрачности в тулкиты выльется в огромное ускорение работы программ по сети, по сравнению с тем, что есть сейчас?

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

Мне надо держать тулкиты всех приложений, которые я использую, на терминале? Или как предлагается?

Кстати.

Почему это не обязательно, я уже написал. Это раз.

Но даже это (поставить два с половиной тулкита) было бы смешной ценой за то, чтобы не гнать пиксмапы вообще.

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

А в качестве приятного бонуса — подхватывание стиля, шрифтов, цветовой гаммы, которые выставлены на клиенте, и прочие мелочи.

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

Ну так вперёд, реализовывай. Как реализуешь, так приходи и рассуждай о нужности новых технологий.

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

geekless ★★
()

Рисование примитивами

Отмечусь и я. Не про X11, но суть та же - рисование примитивами и почему это плохо/не нужно. В текущем проекте на Яве понадобилось нарисовать стрелку. Самую простую:
_||_
\ /
\/

Так вот рисование примитивами (три с половиной линии) давало несимметричный результат. Рисовать 100500 мелких линий по 2-3 пикселя тоже не дело. Так что картинка единственный выход.

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

Я серезно. я вижу там в аргументах char*. В какой кодировке туда что посылают?

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

>Через астрал рисуют, вестимо. С вами всё ясно.

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

TheMixa ★★★
()
Ответ на: Рисование примитивами от Rubbiroid

> Так вот рисование примитивами (три с половиной линии) давало несимметричный результат.

ROFL

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

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

Не бравируй своим невежеством.

Коль сказать нечего лучше ниче не говорить особенно если не к тебе вопрос. Но если вдруг можешь ответить то пожалуйста. Иначе невежду тебе искать в зеркале.

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

>зачем нормальные разрабы (не студенты в качестве курсового проекта, а люди получающие деньгу) пишут какашку на замену конфетке?

потому что они получают деньги?
тру энтерпрайз он такой

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

по теме то забыл написать или нечего?

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

Об этом практически весь холивор, over1000 постов, если не заметил, причем обсосано с разных сторон — выбирай любую. Если лень читать, то кашкой кормить желающих нет.

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

Забавная эта программка qtperf. В зависимости от задаваемого стиля (от CDE до GTK+) Score может меняться на порядок - например на netbook'e native: CDE - 0.483889 msec GTK+ - 4.42111 msec

По сети с удаленного десктопа (ping ~ 25 msec) CDE - 0.0827778 msec GTK+ 254.844 msec (!)

Raster локально CDE - 0.427222 msec GTK+ 4.33889 msec

Raster по сети: CDE - 0.144444 msec GTK+ 301.228 msec

На обоих машинах Ubuntu 10.04 LTS - Gnome2.

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

>Но даже это (поставить два с половиной тулкита) было бы смешной ценой за то, чтобы не гнать пиксмапы вообще.

Я не понимаю, а зачем это делать в тулкитах вообще, когда *уже* есть прототулкит (я так назову графические примитивы X11), который есть общий знаменатель для любого тулкита, а не избранных. Мы сначала выкинем X11, а потом опять будем собирать вместе людей из Qt и Gtk, чтобы они начали обсуждать реализацию общей библиотеки, чтобы опять переизобрести рисование X11? А EFL, FLTK и других позовем попереизобретать?

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

К тому же, что мешает делать макросы (в виде расширения иксов), которые будут представлять из себя «более высокоуровневые команды» для экономии трафика?

Необходимость велосипеда в каждом тулките вообще непонятно, чем обоснована.

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

И для полноты картины - gtkperf
Локально:

GtkEntry - time: 0,24
GtkComboBox - time: 6,28
GtkComboBoxEntry - time: 4,00
GtkSpinButton - time: 1,26
GtkProgressBar - time: 1,86
GtkToggleButton - time: 1,85
GtkCheckButton - time: 3,00
GtkRadioButton - time: 5,91
GtkTextView - Add text - time: 4,35
GtkTextView - Scroll - time: 1,82
GtkDrawingArea - Lines - time: 12,34
GtkDrawingArea - Circles - time: 25,52
GtkDrawingArea - Text - time: 17,85
GtkDrawingArea - Pixbufs - time: 1,35
---
Total time: 87,68

Удаленно:

GtkPerf 0.40 - Starting testing: Mon Aug 22 16:17:55 2011

GtkEntry - time: 0.31
GtkComboBox - time: 31.75
GtkComboBoxEntry - time: 32.15
GtkSpinButton - time: 0.85
GtkProgressBar - time: 1.91
GtkToggleButton - time: 1.82
GtkCheckButton - time: 2.08
GtkRadioButton - time: 2.10
GtkTextView - Add text - time: 1.08
GtkTextView - Scroll - time: 1.55
GtkDrawingArea - Lines - time: 10.45
GtkDrawingArea - Circles - time: 26.98
GtkDrawingArea - Text - time: 6.47
GtkDrawingArea - Pixbufs - time: 16.21
---
Total time: 135.73



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

> А EFL, FLTK и других позовем попереизобретать?

EFL устроен так, что X11 - они из многих бекендов, FLTK - аналогично( платформозависимый код минимален ), причем рисование через cairo уже есть, так что ничего изобретать не надо, учите матчасть

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

На самом деле, гаджим и тандербёрд у меня через иксы летают так, будто работают локально (сеть где-то 10-30 мбит, наверно, провайдерская), а вот Qt-шные аппликухи — тормозят.

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

>EFL устроен так, что X11 - они из многих бекендов, FLTK - аналогично( платформозависимый код минимален ), причем рисование через cairo уже есть, так что ничего изобретать не надо, учите матчасть

Ай, слушай, перестань, а? Мы о сетевой прозрачности говорим, а не о том, кто какие бекенды имеет. Большинство тулкитов имеет разные бекенды. Мы говорим про бекенд, который дал бы сетевую прозрачность на Wayland. Обрати внимание на предмет разговора.

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

>Об этом практически весь холивор, over1000 постов

И? Тулкит должен иметь отдельный бэкенд рисующий примитивами X11? Должен возродиться X font server? Все это уже закопано, камень преткновения - производительность. Желающие отправиться в прошлое пока не нашлись. Для реалистов запилили XRender с которым вся эта сетевая прозрачность сводится к гонянию пиксмапов.

Фактически wayland это композитор, в иксах композитор это подсистема Xserver. Здесь же композитор работает напрямую с TTM/GEM/KMS. Разработчики wayland говорят что «наш код будет делать только вот это и это но делать будет хорошо, возможно запилим еще сетевую прозрачность». И тут начинается - «умер король да здравствует король», вдруг вспомнили «X11 core protocol» который никто не использует уже.

Никто никому не запрещает развивать X11, X12 итд

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

> Для реалистов запилили XRender с которым вся эта сетевая прозрачность сводится к гонянию пиксмапов.

Несколькими сообщениями выше:

Я знаю про XRender.

Выходит, что не знаешь. :D

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

вдруг вспомнили «X11 core protocol» который никто не использует уже.

СЕНСАЦИЯ! Ничего из этого, оказывается, не используется.

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

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

если говорить про рисование - cairo, он уже умеет записывать и «воспроизводить» последовательность действий

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

>И? Тулкит должен иметь отдельный бэкенд рисующий примитивами X11?

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

Должен возродиться X font server?

X font server никакого прямого отношения к X11 не имеет. Это была вспомогательная *реализация* в XFree86 для раздачи server-side fonts. Никаких установок в X11 по поводу наличия X Font Server нет: абсолютно все равно, есть он или его нет.

Все это уже закопано, камень преткновения - производительность.

Нет, камень был не в этом.

Для реалистов запилили XRender с которым вся эта сетевая прозрачность сводится к гонянию пиксмапов.

Пожалуйста, почитай про XRender.

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

И? Тулкит должен иметь отдельный бэкенд рисующий примитивами X11?

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

Разработчики wayland говорят что «наш код будет делать только вот это и это но делать будет хорошо

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

вдруг вспомнили „X11 core protocol“ который никто не использует уже.

No comments. Запусти любое приложение под x11trace.

Никто никому не запрещает развивать X11, X12 итд

Особенно в свете обмейнстримливания вяленого самыми популярными дистрибутивами. Gnome2 тоже никто не запрещал использовать. Меня серьезно беспокоит будущее иксов на волне этого бредового хайпа вокруг wayland.

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

Основная проблема — они хотят дропнуть иксы

4.2

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

пруф?

В пдфке Мартина (ссылка здесь была), как идеальный вариант (конечная цель) рассматривается только kwin, работающий с железяками и ядром, плюс клиенты. Иксов на диаграмме нет.

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

>В пдфке Мартина (ссылка здесь была), как идеальный вариант (конечная цель) рассматривается только kwin, работающий с железяками и ядром, плюс клиенты. Иксов на диаграмме нет.

4.2

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

В пдфке Мартина (ссылка здесь была), как идеальный вариант (конечная цель) рассматривается только kwin, работающий с железяками и ядром, плюс клиенты. Иксов на диаграмме нет.

Посмотрите на секундочку вот сюда. Видите? Ленин постоянно с разными людьми, посмотрите внимательно, справа стоит мальчик какой-то (мы ещё к нему вернёмся). Вот он снова, видите? У Ленина всё время какой-то мальчик рядом. Так, вот видите, мы перешли на другую часть фильма… опять тот же самый мальчик. Видите, вот он, вот прошёл. Немножко уже по другому стрижен, но тот же самый мальчик. Дело в том, что с Лениным рядом постоянно находится какой-то мальчик. Саша находился при Ленине неотлучно, потому что знал каждую тропку, он знал все грибные места и водил Ленина по всем грибным местам, как мы могли убедиться из фильма. Это никакие не домыслы.

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

Учти ещё вот что: разница в скорости между raster и native и разница в скорости между двумя стилями — это очень разные вещи.

Разница в скорости между стилями, очевидно, влияет только на виджеты, отображаемые в этом стиле. Разница в скорости между системами отрисовки, по идее, влияет вообще на всё, что рисуется. Например, на графики и отображение карты в Marble.

Как пример: если в приложении мало тратится на стандартные виджеты (которые используют стиль) и много тратится на что-то своё, то изменение скорости от смены системы отрисовки будет заметно, а от смены стиля — не очень.

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

Поправьте меня, если я не прав.

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

Мальчик в пдфке на переднем плане и только один. Поэтому мимо.

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

> перенос хорошей (основанной на командах) сетевой прозрачности в тулкиты
Мне тут стало интересно, как это сделают, тулкит всё-таки разделяемая быблиотека, а не 9P-сервер.
---

xterm рулит

http://img.flashtux.org/img132dd181b748x61dcf90b.png
Переходи на что-то чуть менее перегруженное анахронизмами, например urxvt.

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

Мне тут стало интересно, как это сделают, тулкит всё-таки разделяемая быблиотека, а не 9P-сервер.

Да элементарно. Бэкенд к системе отрисовки, который гонит все команды по сети. А что не так?

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от quantum-troll

Вспоминаем гтк и хтмл5.

Там можно воротить что угодно, было бы желание.

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

ты не осилил просмотреть три десятка слайдов? это самый простой вариант, когда X-клиентов вообще нет, чуть дальше предлагается диаграмма, когда X-клиенты будут сосуществовать с wayland-клиентами.

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

Просто тогда уже тулкит будет тяжёлым, и он будет в одном процессе или во множестве?

quantum-troll ★★★★★
()

> нормальная современная графика

это иксы, а «херота» - это высеры неосиляторов, которые ни на что иное не способны, как «изобрести» кастрированный X и продвигать под модным брэндом Wayland.

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