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)

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

>Фишка в том, что в иксах это было куда прикручивать.

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

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

ЗЫ я даже знаю что такое ООП и почему оно на функциональном ЯП не есть гуд, не по наслышке, в отличие от толстых.

Я надеюсь, это описка. У нас же контекст Иксы, вроде как?

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

Почему описка?! Чел начал кидаться терминами свзяными с ООП (особенно «инкапсуляция»), вот я и развил тему, один хрен переход на личности он уже осуществил (т.е. не по сабжу уже было до моего комента).

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

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

Интересный троллеприём: перевернуть логическую связь и сделать умное лицо.

На самом деле, разумеется, всё было точно наоборот: ICCCM не пришлось с особыми усилиями «накручивать» сверху как раз потому, что в иксах заранее был предусмотрен гибкий механизм обмена сообщениями. И тебе, полагаю, это прекрасно известно.

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

>перевернуть логическую связь и сделать умное лицо.

Рекурсия-с.

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

Это значит что через огл ничего тяжелее квин не работает, точне работает так, что проще проблеваться чем это юзать.

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

> И этот человек уверяет нас в тормозах иксов

+1 :D

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

Та же старая 8600 от nvidia (2007 год) на блобе в Tremulous выдаёт порядка 600 FPS, когда лучший радеон (2010 год) в приведённых тестах на подобных игрушках еле выдаёт 400.
> А результат блоба AMD здесь при чём?
А с чего бы иначе вы взяли, что сравниваемый Radeon заведомо лучше?
> То, что он хуже, не говорит о том что открытые дрова готовы.
Может тогда сравним GeForce 210 с блобом и Radeon HD 6970 с R600g? Если рассуждать следуя вашей логике результат получится противоположный тому, который вы получили сравнивая GeForce 8600 (точная модель не ясна; например у меня 8600M GT) и какой-то «лучший радеон». Что будет означать такой результат? Ровным счётом ничего, как и ваш.
> Та же старая 8600 от nvidia (2007 год) на блобе в Tremulous выдаёт порядка 600 FPS, когда лучший радеон (2010 год) в приведённых тестах на подобных игрушках еле выдаёт 400.
У людей задачи на практике немного другие. Свежий пример. С большей частью остальных задач (в том числе и игровых) свободный драйвер справляется, а проблемы (энергосбережение, декодирование видео) будут решены. В чём конкретно заключается ваше «драйвер не готов», а? Не готов для вас (потому что 400 FPS вас уже не устраивают, нужно обязательно не меньше 600 FPS) - да. Не готов для любителей погонять свежие AAA-тайтлы (а эти самые любители всё равно не будут делать это в WINE) - тоже да (но тут претензия скорее не к свободным драйверам, а к WINE). Про всех остальных я уже написал раньше - для них вполне хватит.

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

Помимо открытых драйверов и открытой Mesa есть закрытые. Закрытые драйверы умеют весь OpenGL 4.2, производительность такая же как в Windows, глюков столько же. Я сейчас собираю качественные нативные игры для своего home page, а также играю в Wine в новейшие игры.

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

>свежие AAA-тайтлы [br]Еще раз повторю я прошел Dragon Age 2 через несколько месяцев после выпуска на r600g, Oilrush еще не вышел но уже сейчас бета версии его идут без проблем на r600g. Да я не спорю производительность на открытых ниже чем на блобе и приходится ставить минимальные настройки, но радует тот факт что прогресс в открытых драйверах виден невооруженным взглядом.

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

Удивил мле :D Теперь моя очередь: «У каждого человека есть биологические мать и отец, а дети у них появляются после занятия сексом! Ну ты прикинь! Охренеть же можно!!!»

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

Твой комментарий в очередной раз доказывает что ты не понимаешь что такое Галлиум3Д. Рабочая(безглячная) реализация есть и это заслуга Галлиум3Д, низкая скорость работы это некачественная оптимизация драйвера на конкретную видео карту и дело тут не в Галлиум3Д.

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

Еще раз повторю я прошел Dragon Age 2 через несколько месяцев после выпуска на r600g
Ну вот, тем более. Gary вероятно до вашего комментария не дочитал.

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

И правда путаю функциональное программирование с процедурным :D надо выспаться :D

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

Твой комментарий в очередной раз доказывает что ты не понимаешь что такое Галлиум3Д. Рабочая(безглячная) реализация есть и это заслуга Галлиум3Д, низкая скорость работы это некачественная оптимизация драйвера на конкретную видео карту и дело тут не в Галлиум3Д.

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

erfea ★★★★★
()
Ответ на: комментарий от ekzotech
$ yaourt -S kcm-qt-graphicssystem

И в SystemSettings появится такой модуль. Он тебе предложит на выбор Native (X11), Raster, и OpenGL (сырой). Выбор подействует после перелогина.

Ну, если хочешь руками, то вообще-то из

$ QT_GRAPHICSSYSTEM=native qtperf
очевидно, что надо просто добавить
QT_GRAPHICSSYSTEM=native
в переменные окружения. На эту переменную смотрит само Qt, а не конкретная программа qtperf, так что подхватят все программы (кроме тех, где graphicssystem указывается в коде, например Marble, там надо в настройках Marble выбирать). Подействует опять же при перелогине (перезапуске приложений).

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

А недостатки у варианта использования raster есть? Ну там какие-то эффекты отвалятся, или бешенная нагрузка на процессор?

В любом случае спасибо, сегодня же вечером дома попробую.

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

С каким драйвером и Кутями? Пробовал блобы и свободные - всё окружение ни с одним не взлетело. Отдельные приложения вроде нормально работают.

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

>Не работающее сглаживание,

Согласен MSAA не работает, MLAA сделали в рамках текущего gsoc. Но без этого жить можно.

не работающие шейдеры, даже самые простые,

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

всё сопровождается «низкой скоростью работы»

Я выше писал скорость да не идеальна но играть можно.

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

Когда-то (libre/open)office взыбрыкивал (со включенной интеграцией в KDE). Можешь погуглить. Но там и так гуй кривой до невозможности.

А вообще, использую raster везде, недостатков не обнаружил.

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

Цитирую: OpenGL (experimental). Я перевёл.

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

Блин, полез проверять, стоит растер (видать по запаре не применил). Ты прав кеды целиком с ним не заработали... Отдельные приложения летают на ура. Хотя и фиг бы с ним, qtperf у меня показывает c opengl не такой безумный разрыв как в сравнении с native.

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

Судя по треду, всё с точностью до наоборот. Сравнивать VNC с иксами это вообще какой-то нонсенс...

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

Вообще, можешь (если хочешь) сравнить результаты всех трёх режимов в qtperf. Они должны различаться (если они одинаковые — скорее всего, ты не поменял параметр), причём OpenGL может быть как медленее, так и быстрее. Если заработает.

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

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

Согласен MSAA не работает, MLAA сделали в рамках текущего gsoc. Но без этого жить можно.

ХЗ, у меня не заработало.

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

Где-то месяц назад...

Я выше писал скорость да не идеальна но играть можно.

Я пользую такого монстра, который даже не на самых крутых настройках на 6970 выдает около 40 фпс с пропиетарным драйвером. И комфортного фпс ни при каком раскладе со свободным.

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

>> Я их все прочитал еще в начале первого вялендосрача здесь. Я бы не имел против вяленда вообще ничего, если бы он планировал быть бэкендом отрисовки X-сервера. Но он хочет быть чем-то большим и с тупым подростковым упорством форсит «иксы тормозят и устарели!!!11». Хотя бы поэтому его стоит закопать.

Если тебя просто пугают перемены

Перережь себе горло. Не хочешь? Тебя пугают перемены?

тебе надо не вяленого обсерать а к доктору наведаться.

Не говорите мне, что делать, и я не скажу вам, куда идти.

А дельфикодеры жутко глупы.

А можно поинтересеваться, они то тут причём?!

Оппонент - дельфикодер, который любит с апломбом рассуждать о Unix.

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

Зацитируй меня, когда я говорил про виджеты в протоколе иксов. Ты эту фразу придумал. :)

Дело вот в чём: именно эти виджеты используют командную отрисовку, и работают с протоколом иксов как задумано изначально в давние года, передавая низкоуровневые команды отображения разной фигни. Именно для родных виджетов сетевая прозрачность работает хорошо. Они наверняка даже пиксмапов сами по себе не используют, если кнопки рисуют через команду «нарисуй арку». Больше никому команда «нарисуй арку» нафиг не сдалась.

А остальные тулкиты переходят на приговление картинки самими тулкитами (или даже использование OpenGL). Это быстрее (для Qt — в восемь раз). Вот тут-то и отваливается нормальная сетевая прозрачность иксов, и иксы начинают гнать картинку.

Способ решить эту проблему: перенос хорошей (основанной на командах) сетевой прозрачности в тулкиты, а плохой (картинкой) — в композитор с сетевой прозрачностью. Командная прозрачность в тулкитах будет ещё (гораздо) быстрее, чем она же в иксах, потому что можно будет гнать более высокоуровневые команды (например, «используй стиль такой-то», «нарисуй там-то виджет такой-то») а значит, меньше загружать канал. Опять же, даже пиксмапов для кнопок гнать не придётся.

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

Потому что базы данных работают с полями фиксированной длины. Потому что для выделения строк переменной длины приходится фрагментировать память. Потому что для выделения массива для 1000 строк из указателей придется вызвать malloc 1000 раз, что не ускоряет программу.

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

> rdp работает не несколько лучше. Для edge соединения разница между X11 и rdp как между «не работает» и «работает».

RDP надо сравнивать не с чистым X-протоколом, а с NX

хочешь сказать xterm, xclock и xeyes - образец красоты и удобства?

xterm рулит, xclock и xeyes - это просто sample code, написанный 25 лет назад. Речь об их «красоте и удобстве» могут вести только малограмотные вроде тебя.

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

facepalm.xpm

Иксы и так рисуют прямо в видеокарту,

ДА ТЫ ШТО?!!!111

бэкэнд им точно не нужен

Ну я же говорю - ты малограмотный, и не читал ничего о вяленде. Он мог бы быть честной попыткой рефакторинга X-сервера.

Почитай этот текст http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graph...

Я понимаю, ты трепетно любишь венду. Но возьми себя в руки и ответь какое отношение рекламные материалы венды имеют к дискуссии вяленд vs X?

и сравни описанное с многократным копированием памяти в иксах.

В вяленде.

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

В идеале в системе должен быть «нативный» вид с «нативными» шрифтами, чтобы все выглядело одинаково независимо от тулкита. Единственное место для этого в современном линуксе - иксы. К сожалению развитие иксов заторможено староверами которые говорят «не нужно».

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

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

>комфортного фпс ни при каком раскладе со свободным.

Возможно когда ни будь ) Да это не аргумент. И уж тем более не проблема Галлиума с которого наш разговор и начался.

ХЗ, у меня не заработало.

MSAA, не реализованны в текущей месе, именно они используются в играх/программах. MLAA новая технология появившаяся в DX 10(не уверен) и ее мало какие игры используют. Вот как раз MLAA был реализован в рамках gsoc 2011, код в основную ветку еще не принят, но будет. Поддержка MLAA будет в релизе Mesa 7.12(8.0) который выйдет в январе 12го года.

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

MSAA, не реализованны в текущей месе, именно они используются в играх/программах. MLAA новая технология появившаяся в DX 10(не уверен) и ее мало какие игры используют. Вот как раз MLAA был реализован в рамках gsoc 2011, код в основную ветку еще не принят, но будет. Поддержка MLAA будет в релизе Mesa 7.12(8.0) который выйдет в январе 12го года.

Это всё конечно круто, но хочется уже чего-то реально работающего уже сейчас, осбенно на фоне такой вкуснотищи как kms.

Возможно когда ни будь ) Да это не аргумент.

Искренне надеюсь.

И уж тем более не проблема Галлиума с которого наш разговор и начался.

Почему, я так и не понял.

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

>Это всё конечно круто, но хочется уже чего-то реально работающего уже сейчас,

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

Почему, я так и не понял.

Наверно из меня плохой «обьяснятель» Gallium3D это новая архитектура драйверов в mesa, которая позволила упростить разработку драйверов за счет того что для поддержки API OpenGL 1.x/2.x/3.x, OpenVG, Direct3D достаточно писать единый back-end (state tracker), в отличии от «классической архитектуры mesa» когда в каждом драйвере приходилось лепить свой back-end под каждое API. В этом достоинство галлиума.

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

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

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

> Больше никому команда «нарисуй арку» нафиг не сдалась.

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

А остальные тулкиты переходят на приговление картинки самими тулкитами (или даже использование OpenGL). Это быстрее (для Qt — в восемь раз). Вот тут-то и отваливается нормальная сетевая прозрачность иксов, и иксы начинают гнать картинку.

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

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

>Работать с иксами реально муторное дело.

Тут уже несколко раз тыкали в PDF с тезисами автора блога, что в теме (Martin .... (забыл)), так там на стр. 14 одна из проблем Wayland обозначена вопросом «EWMH for Wayland?». Аналог EWMH в Wayland будут делать, но только механизм другой будет из-за соответсвующей архитектуры Wayland, где WM в сервере (или сервер в WM). Чего отбрыкиваться и поливать грязью механизм, о котором людям удалось договориться и сделать не один WM, я не понимаю? Слова автора Wayland (Kristian Høgsberg): http://lists.freedesktop.org/archives/wayland-devel/2010-November/000270.html

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

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

при отрисовке битмапов вероятно да, но вот есть люди которые говорят что это нужно лишь GTK/Qt приложениям, которые не юзают возможности иксов, а wmaker в результате в вайленде не запуститься или для него придеться писать кучу кода

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