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 ()

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

anonymous ()

Надеюсь, это несколько угомонит красноглазых нытиков

Un ()

И после этого я все равно не понял, зачем нужен вейленд.

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

Потому что иксы монструозны, протухли, имеют кучу проблем, и они сами об этом знают.

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

> Потому что иксы монструозны

Если сравнивать с другим софтом, то не страшно.

имеют кучу проблем, и они сами об этом знают.

Например?

damnemall ()

>Поддержку X11 никто не выкинет из дистрибутивов, пока она будет востребована.

Это вот вилами на воде писано.

Я не понимаю почему нельзя было вносить эти изменения в рамках проекта Xorg.

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

Они так и делали. Просто когда внесли все изменения, получился Wayland

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

>Я не понимаю почему нельзя было вносить эти изменения в рамках проекта Xorg.
Для многих изменений нужно менять протокол X11. Причём менять его достаточно серьёзно.
Написать xorg на X12 + xlib на X12 и портировать всё туда гораздо сложнее, чем написать wayland.

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

Потому что такие (или аналогичные) изменения даже если были бы возможны, всё равно бы сломали бы X11, и был бы несовместимый с ним X12. Слой совместимости был бы нужен всё равно. Плюс X12 тоже был бы не сахар, так как писался бы с оглядкой на X11.

Ну и чем это было бы лучше того, что мы имеем с Wayland?

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

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

Не только сложнее, а ещё и абсолютно бессмысленно.

ChALkeR ★★★★★ ()

>гнать картинку по сети

Какая тупость. Разумеется, сетевая прозрачность, работающая по сути как стримминг видео работает хреново и никому не нужна. Вместо ненужного вейланда лучше бы перетащили наконец рендеринг шрифтов обратно на иксы. Заодно избавились бы от разнообразия ШГ на одном экране.

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

Скажи честно, ты ниже читал или просто глупый? Иксы сейчас именно что гонят картинку по сети. Какой рендеринг шрифтов? Ты вообще понимаешь, про что говоришь?

Повторю для глупых:

  • Иксы когда-то были оконной системой + системой виджетов.
  • Иксовые виджеты уже никто не использует.
  • Сетевая прозрачность должна опираться именно на систему виджетов.

Какие отсюда следуют выводы?

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

>Плюс X12 тоже был бы не сахар, так как писался бы с оглядкой на X11.

Wayland тоже предлагает какие то прослойки для запуска приложений.

Ну и чем это было бы лучше того, что мы имеем с Wayland?


Тем что к примеру к X13 мы бы уже плавненько и без лишних споров перешли на Wayland, только этого бы никто не знал :-)

В основе X11 лежат архитектурные решения более чем 20-ти летней давности (см пост).


Я это понимаю, надо было отказыватья от этого когда форкали XF86.

splinter ★★★★★ ()

6. Смысла в создании и использовании wayland практически нет. Все эти пляски вокруг сетевой прозрачности не решают главного — тормозных тулкитов и драйверов с медленным 2д.

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

>Скажи честно, ты ниже читал или просто глупый?

Твою пятую правку увидел после отправки коммента.

Иксы сейчас именно что гонят картинку по сети.

Я как бы в курсе. Именно это и надо чинить, а не изобретать другие способы её гнать. Для глупых: то, что по сети гонится картинка - баг в тулкитах.

legolegs ★★★★★ ()

2. Сетевая прозрачность Х11 для современных приложений всё же подходит лучше, чем чистый VNC (гнать картинку по сети), потому что тулкиты всё ещё знают про пиксмапы.

PolarFox ★★★★★ ()

0. Wayland создавался для полутарооконных графических систем для мобильных телефонов. Для десктопа он готов и подходит не сильно лучше графической системы андроида.

PolarFox ★★★★★ ()

И да, я бы не стал доверять заявлением людей, родивших КДЕ4 чисто из желания всё сломать и заново построить.

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

> И да, я бы не стал доверять заявлением людей, родивших КДЕ4 чисто из желания всё сломать и заново построить.
Этот метод развития не всегда оправдан, но всегда приносит лучшие результаты, только при больших затратах времени.

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

> 2. Сетевая прозрачность Х11 для современных приложений всё же подходит лучше, чем чистый VNC (гнать картинку по сети), потому что тулкиты всё ещё знают про пиксмапы.
Объясни

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

Твою пятую правку увидел после отправки коммента.

Вообще-то, я про пункт 4.

Ты его читал?

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

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

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

> Объясни

Пиксмапы хранятся на сервере, а клиент отсылает лишь команды для их рисования. Те же шрифты или иконки только первый раз по сети передаются в виде пиксмапов (картинки), в следующий раз передаётся команда для рисования конкретного пиксмапа.

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

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

А ещё он сулит возможностью допросрать остатки нормального десктопа.

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

> Смысл с сбросе жира.

Так жир-то не в иксах (там он есть, но незапущенный жир не тормозит), а в тулкитах.

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

> Из Qt5 жир тоже повыкидывают.

Я слышал, что его перепишут с С++ на жабаскрипт, это правда?

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

Мне казалось, что сейчас, по крайней мере в Qt, все компонуется прямо у клиента, а не на сервере. Нет?

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

Нет. Джаваскрипт там можно будет использовать наравне с плюсами при написании приложений, но заставлять никто не будет. Сам Qt будет на плюсах, очевидно.

А вот основанную на X11 систему рендеринга выкинут (она самая медленная и никому не нужная).

ChALkeR ★★★★★ ()

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

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

Запусти qtperf (есть в AUR) c „--graphicssystem native“ (X11) и „--graphicssystem raster“ (Qt делают картинку сами). Задумайся.

Если попросишь — дам результаты. Raster заметно быстрее.

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

> А вот основанную на X11 систему рендеринга выкинут (она самая медленная и никому не нужная).

Дык там уже есть система ренедеринга в растр. Зачем в оконную систему-то лезть? Под андроид (линукс с графикой не на Х11) до сих пор нет джаббер клиента с поддержкой нескольких аккаунтов и muc одновременно, хотя, казалось бы, есть даже порт Qt.

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

То есть это подтверждает, что отправлять на отрисовку скомпонованные изменившиеся части окна все-таки быстрее, чем отдать это X?

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

Qt там, кстати, в трудном положении — до версии андроида 2.3 вообще нельзя было из нативного кода рисовать на экране, кроме как через OpenGL (glTexSubImage2d).

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

Только с помощью копирования в массив int и доставанием обратно на яве, это сравнительно медленная операция.

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

Вру, не принимает параметр. Надо делать так:

$ QT_GRAPHICSSYSTEM=raster qtperf
$ QT_GRAPHICSSYSTEM=native qtperf

Raster (Qt складывает картинку): 0.792278 msec.
Native (X11 складывает картинку): 6.42 msec.

ChALkeR ★★★★★ ()

Я сейчас запустил Qt приложение по сети. Результат: ШГ, убогие градиенты, пропадающие контролы и тормоза. То же самое через vnc — отсутствие тормозов, и лишь едва заметные искажения картинки (из-за сжатия)

AST-PM-105 ()
Ответ на: комментарий от note173

Смотри мой пост чуть-чуть выше этого ответа.

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

>Запусти qtperf (есть в AUR) c „--graphicssystem native“ (X11) и „--graphicssystem raster“ (Qt делают картинку сами).

При прокрутке скроллбаром в режиме native тормозит так, что скроллбар запаздывает за курсором, в режиме raster прокрутка плавная и никаких запаздываний скроллбара. И никаких бенчмарков не надо.

AST-PM-105 ()
Ответ на: комментарий от PolarFox

Дык там уже есть система ренедеринга в растр. Зачем в оконную систему-то лезть?

Вот-вот. Native появился раньше. Потом допилили Raster, который уже работает гораздо лучше. Native в Qt5 выкинут.

ChALkeR ★★★★★ ()

в целом всё вроде логично, но...

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

недавно, из любви к искусству (ибо любви к терминальным технологиям как таковым в большинтсве рашкинских ИТ-«инфраструктур» не наблюдается - дело заканчивается на запуске Сытрикса из-под венды, иногда из-под Линуксов), поднял LTSP5 (Ubuntu-версия) - работает с ветерком. Правильное разрешение что на 22", что на 10.1", звук, все дела (жаль только, что железного тонкого клиента нету). ЧЯДНТ?

и хочется уже что бы хоть какая-нибудь реализация этой сетевой прозрачности в тулките была в наличии. а то эти фразы давно произносились. как это работать-то должно?

anonymous ()

1000 постов. Не меньше.

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

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

и хочется уже что бы хоть какая-нибудь реализация этой сетевой прозрачности в тулките была в наличии. а то эти фразы давно произносились. как это работать-то должно?

Для GTK3 есть пример, работающий по http и с клиентом на HTML5. Это не лучший вариант, но точно так же можно сделать свой протокол со сжатием или взять другой готовый, а клиент нарисовать на сях/плюсах/чём угодно.

ChALkeR ★★★★★ ()

все как всегда - чем больше человек не разбирается, тем больше он кричит и защищает старое

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

>Разработкой иксов занимались ученые мужи

Поэтому их нужно закопать как можно скорее.

Un ()
Ответ на: комментарий от AST-PM-105

Но циферки-то объективнее. Native (X11) медленнее в 8 раз :-).

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