LINUX.ORG.RU

Какие для Вас самые важные недостатки X-сервера и/или протокола X11?

 


1

4

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

Поскольку у меня самого продвинутого железа типа экрана в 4к и пр. нету, я решил спросить посетителей ЛОРа, что им наиболее мешает жить с текущей реализацией X-сервера.

Возможно по выявлению самого неприятного мета-бага (пишите в ответах версию х сервера и ДЕ/wm, и прочие подробности, желательно со ссылками на баги в багтрекерах) удастся собрать деньги на оплату (а скорее - также частичное дообучение) работы C developer(s).

Но сначала давайте попробуем определится, что же конкретно не работает. Одним из первых я поставил HDR потому что на phoronix кто-то утверждал, что поддержка hdr потребует-таки переписывания или обхода значительной части Х протокола. Проблема в том, что я где-то читал что абстрактные пиксели в Х могут быть и 16 бит на канал, и к тому же рабочие станции SGI (mips) явно умели в 10 бит на канал, а работали там собственная реализация X, glx, да OpenGL (ещё 1.2 или около того). Ссылки надо заново искать, но я это сделаю :)

edit: https://marc.info/?l=freedesktop-xorg-devel&m=148338322225159&w=2

вот тут обсуждение HDR (в 2016-ом) еще есть пдф-ка с XDC 2017 про Deep color.

DPI stuff https://www.mail-archive.com/xorg-devel@lists.x.org/msg57714.html

SGI hardware (10/12 bits per component) http://www.sgidepot.co.uk/ir_techreport.html

  1. Всё устраивает 222 (48%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Тиринг 117 (25%)

    ************************************************************************************************************************************************************************

  3. Сложности работы двух мониторов с разным dpi или частотой обновления 108 (23%)

    ***********************************************************************************************************************************************************

  4. Неплавность анимаций или ввода 84 (18%)

    *************************************************************************************************************************

  5. Устаревшая кодовая база, с которой сложно работать 76 (16%)

    *************************************************************************************************************

  6. Дробное масштабирование 70 (15%)

    ****************************************************************************************************

  7. Задержка (latency) в несколько кадров 64 (14%)

    ********************************************************************************************

  8. Поддержка HDR (high dynamic range, 10bit/channel or more) 59 (13%)

    *************************************************************************************

  9. Изоляция приложений 47 (10%)

    *******************************************************************

  10. Поддержка переменной частоты развертки (vrr) 43 (9%)

    *************************************************************

  11. Невозможность (?) сохранить состояние сессии при обрыве 32 (7%)

    **********************************************

  12. Отсутствие поддержки новых версий GL в протоколе glx 32 (7%)

    **********************************************

  13. Автоподключение внешнего GPU 31 (7%)

    ********************************************

  14. Мультикасание, трансформация координат ввода 24 (5%)

    **********************************

  15. Отсутствие поддержки множества слоёв (поверхностей) видеовывода 19 (4%)

    ***************************

  16. Другое 14 (3%)

    ********************

  17. Нестандартные устройства ввода (указать какие) 6 (1%)

    ********

Всего голосов: 1048, всего проголосовавших: 461

★★★★

Проверено: hobbit ()
Последнее исправление: Andrew-R (всего исправлений: 8)

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

Изначально, в базовом наборе протоколов графики,

С чего бы это? Зачем это в базовом протоколе графики? Потому что так сделано в иксах?

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

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

У меня есть возможность сделать скриншот и скринкаст. Это тебе зачем-то эта возможность нужна в базовом протоколе.

и до сих пор в 95-98% случаев система не спрашивает у пользователя разрешения.

В 100% случаев спрашивает, если захват делается не штатной утилитой.

Захват клавиш — та же история. «Приложение virt-viewer хочет осуществить перехват нажатий клавиш» — никогда не видел такое сообщение? А я видел, у меня Wayland.

И выход из захвата клавиш осуществляет композитор, поэтому даже если virt-viewer зависнет, я смогу вернуться в сеанс.

уже реализовали бы какую нибудь блокировку захвата из буфера и прикрутили бы интерфейс запроса.

См. выше про кодовую базу. Ну и не реализовали, как видишь.

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

Данные передаются через dbus а не напрямую? Это костыль и лишние действия.

А pipewire вообще сторонний проект и работать должно без него. А если признать его необходимой базовой зависимостью тогда придётся признать что все реализации до него были шлаком (а он ещё далеко не везде внедрён). И самое главное: реализация pipewire. Одно из двух ,или pipewire-сервер будет встроен в вайланд-композитор, или в системе оказывается лишний процесс и точно такая же лишняя сущность, как Х-композитор с которым так фанатично борятся фанаты вайланда.

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

О ней надо думать с самого начала. Иначе придется изобретать велосипеды типа TearFree

V-Sync в драйвере это велосипед? Лол.

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

Если бы Поттеринг проектировал вяленд, там был бы ад и израиль, но это бы работало и по фичам уделывало иксы. Но вяленд похоже проектировали реальные академические рептилоиды.

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

Да вообще, pipewire - это аудио-сервер, как те же иксы - графический сервер. Запись экрана там только по приколу, а то что в вяленде не смогли сделать реализацию скринкастинга - это итог вялендовской фрагментации и «Wayland is a protocol» х*йни, которую я слышу от каждого кто с пеной у рта защищает вяленд.

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

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

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

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

корпорасты-рептилоиды хотят убить иксы

Я просто напомню, что корпорасты-рептилоиды как раз и создали иксы. Не Linux-тусовка. При этом эти иксы постоянно обкладывали всякой мерзопакосной проприетарщиной вроде Motif, CDE, IRIX Desktop и пр., и когда эти проекты были убиты (тем же Linux-десктопом, кстати) исходники некоторых из них выкинули в паблик за ненадобностью.

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

Но в этой теме многие почему-то думают что ИКС он такой родной и свободный и делался в первую очередь для Linux-десктопа. И разрабатывается неким СВОБОДНЫМ СООБЩЕСТВОМ, лол. А вот хрен там, разработчики Linux-дистрибутивов в своё время не смогли создать собственный оконный сервер, который бы они могли контроллировать сами и подвязались на коропоратские иксы и их технологии? Значит сегодня они пожинают плоды своей собственной глупости. IBM создал иксы – Linux-дистрибутивы к козырьку, взяли иксовую поделочку. Надоело корпоратам из IBM ковыряться в замшелом иксовом коде? Взяли под крыло новую поделочку – все Linux-дистрибутивы снова под козырёк!

И сегодня уже Wayland сеанс по умолчанию предлагается к использованию в:

  • Ubuntu LTS
  • Debian, см. https://www.opennet.ru/opennews/art.shtml?num=40659
  • RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux
  • Fedora
  • SUSE Enterprise Linux (эти козырнули вперёд всех, первым корпоративным дистром на Wayland был именно SLE)
  • Steam Deck от Valve
  • Может быть ещё что-то забыл?
EXL ★★★★★
()
Ответ на: комментарий от Skullnet

Да. SJW – лучшие друзья линукс-луддита. Одно лишь проклятие в адрес б-гмерзких западных леваков позволяет разбить в пух и прах аргументы вменяемых людей гнусные инсинуации врагов десктопного линукса.

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

Поттернинг на фоне авторов вейланда - это Энштейн.

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

А ведь mir пытался решить обе проблемы. И всё бы у Космонавта получилось (и ещё юнити-8 и убунтофон в придачу), но деньги кончились.

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

Скриншоты через dbus, епт. Pipewire нужен для скринкастов.

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

Тиринг вообще возник не на пустом месте и не потому что програмисты были ленивыми идиотами. Он возник из здравого предположения, что если уж кадр к нужному моменту не готов - надо показывать что есть а не висеть до победного. Принципиально эту проблему решить не возможно, либо тиринг либо лаги.

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

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

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

Принципиально эту проблему решить не возможно, либо тиринг либо лаги.

На половину решили, через создание VRR (Freesync/GSync).

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

Данные передаются через dbus а не напрямую

Почему? Графический сервер прозрачно интегрируется в уже существующую систему IPC. Что в этом плохого?

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

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

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

Почему? Графический сервер прозрачно интегрируется в уже существующую систему IPC. Что в этом плохого?

В том что это лишний оверхед. С Pulseaudio было так же, если все программы загружали процессор на 100%, то сервер начинал пшпшпшпшкаться и падать. Пришлось это всё выкидывать и писать нормальную альтернативу, которая будет заточена под низкие задержки, вот и появился Pipewire. Запись кадров в сотни РАЗ тяжелее чем передача звука, поэтому в данном случае прослойки - это лишнее. Где ты, например, видел чтобы в винде аудио-сервер занимался записью экрана?

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

Вот! Об этом я и говорил. SJW дают ллудиту возможность ловко выкрутится из затруднительного положения, компенсируя недостаток аргументов и переводя дискуссию в совершенно другое русло. В данном случае вообще не важно, кто они такие. Важно то, что у луддитов есть коронная фраза про корпоративных шавок. Вместо того, чтобы опровергнуть утверждения оппонента про недостатки любумой технологии, луддит сводит разговор к конспирологической *уете.

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

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

Нельзя сделать что то с тем, чего нет. А его нет, но это функция нужная периодически каждому пользователю и это очевидно уже 30 лет. Именно поэтому при проектировании протокола надо было изначально заложить туда и api захвата, ну и разграничение прав тоже.

А вот закладывать разграничение прав не реализовав самой возможности просто физически невозможно. И кстати, насколько я помню, в гноме нет никакого разграничения прав на скриншоты и скринкасты, так что мимо.

У меня есть возможность сделать скриншот и скринкаст.

Ну, ты вот фанат гнома а я нет. Я хочу делать скриншот через spektakle, там кнопочки красивее. В чём пролема?

В 100% случаев спрашивает, если захват делается не штатной утилитой.

А штатной это какой? ffmpeg очень штатный, он спрашивает? А чем это принципиально отличается от тогоже X11+xfce+kwin_x11+спектакль, ведь спектакль точно так же спрашивает и он точно так же штатная утилита.

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

Почему, когда патчи шлет systemd – фанатики иксов громко негодуют и писают кипятком от возмущения, а когда в ядре обнаруживаются костыли, исправляющие баги иксов – просто игнорируют проблему как таковую?

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

Кто-то ставил цель уделать иксы по фичам?

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

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

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

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

это не повод придумывать новый костыль в виде вайланда, который приносит еще больше проблем, чем рефакторинг нормальных иксов

Ну проведи этот рефакторинг. Шапка вон 20+ лет рефакторила код иксов, за что все любители X11 должны сказать Red Hat большое спасибо. Не будь поддержки Red Hat, иксы бы протухли ещё 15 лет назад без какого-либо развития вообще.

Сегодня как видно ковыряться в авгиевых конюшнях иксового говнокода сотрудникам Red Hat’а стало настолько дорого, что им стало проще выкинуть этот хлам на свалку:

https://www.opennet.ru/opennews/art.shtml?num=58145

Объявлен устаревшим X.org Server (по умолчанию в RHEL 9 предлагается сеанс GNOME на базе Wayland), который планируют удалить в следующей значительной ветке RHEL, но сохранить возможность запуска X11-приложений из сеанса Wayland при помощи DDX-сервера XWayland.

Иксы убьют и это радостная новость. Давно нужно было так сделать, как везде:

  • Нужны иксы в Mac OS X? Вот тебе пожалуйста XQuartz ставь и используй.
  • Нужны иксы в Windows? Вот тебе пожалуйста Xming, ставь и используй.
  • Нужны иксы в Android? Вот тебе пожалуйста XSDL, ставь и используй.
  • Нужны иксы в Haiku? Вот тебе пожалуйста Xlibe, ставь и используй.
  • Нужны иксы в Linux? Вот тебе пожалуйста XWayland, ставь и используй.

Но водружать этот корпоративный хлам оконным сервером, а потом 20 лет крехтя и скуля откусывать от него куски, что кстати стало мемом:

Это только разработчики Linux-дистрибутивов могли подобное выдумать. И ладно бы родовые травмы протокола X11, которые обозначены в этой теме, на ЛОРе вообще, да в постыдных пакетах вида xorg-server-bug865 исправлялись. Так ведь нет же, мало того что корпоративный иксовый копрокод тянет Linux-десктоп в пучину неюзабельности, так ещё и в само ядро Linux метастазирует такими костылищами, за которые нужно железной линейкой по рукам бить.

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

Приложение virt-viewer хочет осуществить перехват нажатий клавиш» — никогда не видел такое сообщение? А я видел, у меня Wayland.

А у меня virtualbox и dosbox и я тоже видел такие сообщения. Со стороны самих виртуалок разумеется.

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

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

systemd шлет патчи в ядро чтобы исправить ошибки разрабов systemd

Давай пруф. Только ошибки, ага? Патчи, способствующие интеграции systemd с ядром не считаются. Только костыли, как в недавней истории с иксами. Много ли разрабы systemd заслали в ядро патчей типа этого?

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

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

Над качеством иксовых патчей в ядро Linux уже все похохатали. Вот только непонятно, где был Linus когда коммитили это дерьмо. Вряд ли код из systemd сможет переплюнуть тот иксовый костыль с поиском первой буквы X в названии процесса с надеждой на то что это запущена священная иксовая корова.

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

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

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

Вот только непонятно, где был Linus когда коммитили это дерьмо

Он же не всемогущее монотеистическое божество, которое одновременно везде и всегда.

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

Цель вайланда – решение детских проблем иксов

Но в этом случае он априори непригоден для десктопа потому что не может его реализовать из за недостатка фич! Вот для одноклеточной андроидной схемы с несколькими изолированными однозадачными приложениями на полный экран - вполне приемлимо. Как прослойка между игрой и железом на игровом терминале - вполне. Для работы - нет.

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

в ядро не должно ничего интегрироваться

Ах, значит не должно! Почему тогда иксофанатики молчат, как рыбы, когда в ядре обнаруживают костыли, поддерживающие работоспособность иксового говнокода? Что позволено Юпитеру – не позволено быку, да?

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

Но в этом случае он априори непригоден для десктопа потому что не может его реализовать из за недостатка фич!

Он его уже успешно реализует. Рассказывай свои басни разработчикам убунты, дебиана и федоры

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

в ядро не должно ничего интегрироваться

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

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

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

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

И именно поэтому пока гномошел грузит иконки - vlc не может воспроизводить видео? А если hdd этот LagFree занимает 1500-2000мс или целых 90-120 кадров. А если в гномошеле открыто слишком много окон и все идеальные кадры не пролазят в бутылочное горлышко то тормозит вообще ВСЁ, а не только то что опоздало.

Кстати, я ещё что то не слышал что с переходом на вайланд kwin стал менее тормозным и лагучим.

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

Например то что pipware-сервер не встроен в gnome-shell

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

Ну, вообще верно. Осталось повсеместно внедрить и расширить до возможности монитора обновлять разные части экрана с разной частотой.

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

dbus не ставил своей задачей передачу большого объёма данных за гарантированно низкое время, а для скринкаста и даже скриншота это важно. dbus, даже если он запущен, справится с работой плохо. А ещё проталкивание мамонта по шине может создать неожиданный эффект в каком то другом месте. А ещё сам факт прослойки требует клиенту и серверу реализовать проверку доставки и обработки сообщений, иначе они могут (и периодически будут) уходить вникуда.

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

Ну проведи этот рефакторинг. Шапка вон 20+ лет рефакторила код иксов, за что все любители X11 должны сказать Red Hat большое спасибо.

Что-то пизд*ж не сходится. То есть, шапка рефакторила код 20+ лет и код по идее должен быть нормальным, но потом я слышу, что код в иксах непонятный и вообще сложный. Либо вы врёте и ничего не рефакторилось, а просто делались относительно мелкие правки, либо рефакторилось, но люди, которые это делали уволились, а в компании остались только одни долбоящеры, у которых мозгов не хватает, чтобы понять как работает код иксов. Выбирайте.

Сегодня как видно ковыряться в авгиевых конюшнях иксового говнокода сотрудникам Red Hat’а стало настолько дорого, что им стало проще выкинуть этот хлам на свалку:

Что-то сильно мне это Google напоминает. Вы когда нибудь видели, чтобы та же корпорация зла Microsoft вдруг психанула и начала выкидывать например тот же GDI из MS Windows?

Иксы убьют и это радостная новость. Давно нужно было так сделать, как везде:

Уже 14 лет убивают, а умирает только Wayland.

главный контрибутор X.Org удалил в 10 (sic!) раз больше кода, чем добавил

Ну давайте теперь писюнами мериться и рассказывать какой Wayland легковестный кусок говна без фич. А потом смотришь на wlroots.

Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 60,000 lines of code you were going to write anyway.

Шикарно.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.