LINUX.ORG.RU
ФорумTalks

Почему иксы надо закопать

 ,


10

6

Как задолбало смотреть на деградантов, агитирующих сидеть на иксах. Для тех, кто хоть немного разбирается в современных GPU - иксы это дикость. Это такое же legacy как терминалы в ядре.

Так получилось, что пока SGI со товарищи занимались ИБД, и надували щеки - вот прям также, как местные ололо, «разбирающиеся в архитектуре иксов», компания микрософт день и ночь думала о том, как сделать графику быстрее. И поэтому майкрософт(а не красноглазые) придумали шейдеры. Поэтому они придумали стандарт на API для ускорения видео. Микрософт а не «опенсорс сообщество» задает направление развития графики.

В невидии, амд и интеле есть подразделения, которые первыми узнают о том, что выйдет новый директХ или новая винда 9. Эти отделы получают список фич, которые будут в винде и бегут к железочникам, чтоб узнать, что есть в железе уже, что будет сделать сложно, а что - дорого по ваттам. После чего начинается перетягивание одеяла между амд, невидией,интелом и микрософтом, где каждая сторона норовит облегчить себе задачу.

А опенсорс идет по остаточному принципу. И главным образом благодарить за это вы должны сраные иксы.

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

То же самое и для 3д: есть api, есть драйвер, есть минипорт. На выходе получаешь surfacы. Их можно поставить в очередь отрисовки(flip queue) откуда их будет подбирать DWM и собирать в окошки.

И то же самое для 2Д. каким надо быть идиотом, чтоб городить всякие XAA/EXA/UXA/XAXAXA вместо того, чтоб дать приложению самому отправлять команды на gpu. Там есть полная поддержка всей графики-2д 3д и видео. тот же интелоGPU можно проинструктировать программой, и он сам будет отдавать команды на blit-функцию, рисовать градиенты, глифы печатать, и кривые малевать.

Вот ровно то же самое делает wayland. он подбирает surfacы из flip queue и собирает их в картинку.

Никакого геморроя с bumblebee и прочими костылями для убогих иксов: surfacы которые видит интегрированное видео - они в памяти. mmapнул памяти, занес ее в GTT интеграшки - есть окно. открыл драйвер мегаgpu, занес в его GTT ту же область. все работает. gpu рисует и блитит, интеграшка под чутким руководством оконного манагера собирает и показывает.

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

Эти деграданты просто идут на принцип. Все они понимают, поэтому как полоумные повторяют про «сетевую прозрачность»: видят, что ничего больше в активе нет.

☆☆☆

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

Да. А в идеале — не должно. Есть над чем работать.

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

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

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

По сравнению с пересылкой команд протокола рисования - это деградация. А OpenGL тоже через растровые кадры гнать?

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

А квадрат Малевича рисуется за 5 минут при определённом подходе. Получается, остальные художники - криворукие мудаки? Ведь они же так долго рисуют! В отличие от xmotif, Малевича и того «художника», что «написал» картину «Битва негров в глубокой пещере тёмной ночью».

Не для вас (вы хороший собеседник), а для остальных поясню: если какие-то там приложения не тормозят, это не значит, что иксы быстрые - в контексте иксов это значит лишь, что авторы тестировали свои программы. Плача кровавыми слезами, отказываясь от привлекательных интерфейсов, поневоле реализуя топорную графику и не имея возможности хоть как-то покреативить, они делали то, что работает, а не то, что работает качественно. Спасибо иксам за жигули заместо мерседеса.

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

Клиент/серверная архитектура в случае web просто становится более размытой, чем в случае с Х11 и другими графическими серверами. Тут лучше сравнивать, к примеру, с теми же игрушками. Клиент кваки не только рисует модельки на экран и посылает обратно события от устройств ввода, но по сути выполняет у себя копию игрового мира, синхронизируя её с сервером.

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

Ты так и не обозначил зачем оно нужно... Раз не получается придумать зачем, значит не надо.

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

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

Откуда инфа, что падение композитора убивает вяленого?! пахнет аццким 4.2

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

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

игры, которые не переживают ждущий режим

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

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

не имея возможности хоть как-то покреативить

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

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

В линаксе я в таких случаях по ssh с мобилки заходил. Некоторые игрушки умудряются виснуть так, что даже ctrl+alt+bksp не работает, хотя после killall -9 игрушка всё путём.

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

А если нет монитора или видеопамяти, в которую можно писать ASCII?

Тогда есть serial console например. В том-то и суть, что ядро само по себе должно поддерживать любое терминальное железо, хоть экран, хоть RS-232, хоть там USB-tty. Эта штука удаляет поддержку экранной консоли из ядра — а значит она не нужна и вредна

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

Дык я и не спорю.

Блин, даже не знаю, как сформулировать... Наверное так: хранение данных осуществляется на стороне сервера. А всё остальное, от html-страниц до 3d-моделек — просто гуй.

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

А то что приложение знает, что у него отобрали вывод, но программисты решили не делать корректную обработку. Лучше чтобы не знало, просто все команды тихо и не заметно уходили в /dev/null. Если что я такое поведение наблюдал не у поделок школоло-быдлокодеров, а у вполне «серьёзных» игр.

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

ЗЫ падение иксов убивает все окна...

А я тебе что говорил? Вот этот недостаток у иксов и надо исправлять. Wayland приложения при падении вайланда останутся работать? Нет? Значит он ещё хуже чем X.org+WM

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

1) В венде есть Ctrl + Alt + Delete, который отбирает у любого приложения управление и показывает полноэкранную менюшку.

2) А вот в Linux с иксами можно просто сделать Ctrl + Alt + F1 и написать pkill -9 $GameName. Это всё же корректнее и правильнее, чем так шаманить. Может система вообще из саспенда не выйдет.

Да и вообще, как раз абстракция позволит свернуть приложение даже если оно повисло. Просто потому что это обычное окно и по Alt + Tab я попаду на рабочий стол, какой бы важной работой не занималось приложение. А дальше уже терминал/какой-нибудь диспетчер задач и убиваем игрушку.

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

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

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

Иксы - это единый графический API никсовых систем. Пока он есть, его реализацию можно оптимизировать и даже модернизировать. Производители GPU (в теории) могут также затачивать свои драйверы под работу иксовых функций, как они это делают для GDI и DirectX. Выкиньте его - и останется кучка разрозненных тулкитов, которые придется оптимизировать по отдельности.

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

Не костыльнее rdp и vnc, да и работает лучше.

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

Также, известная «фича» SDL - в полноэкранном режиме не реагировать на Alt+Tab и Alt+F4, если только программа сама на это не согласится

В лорвики были решения

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

Что мешает переключиться на текстовый терминал и убить?

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

Кривизна Qt.

Школо-ло-тулкитофоб?

Ну и совсем не в десять

Ладно, уболтал. ~7 (мне лень сейчас перезапускать кеды с QT_GRAPHICSSYSTEM=native для демонстрации «зомби апокалипсиса»)

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

90% приложений не нужны все эти сюрфейсы, шейдеры и прочие обдроченые тобой идеи. Им достаточно fillrect(), drawpixmap(), line(), drawtext().

а вот разработчикам Qt достаточно stencil-буфера, заливки полигонов, и пиксельных шейдеров. вас они спросить почему-то забыли. и да, у них все работает :)

хотя ваш подход мне нравится - назад в прошлое. и это правильно, вам место в 80х. вот там и оставайтесь

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

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

даже не рассмотреных ещё проблем с imput method, многомониторными конфигурациями

да не смешите мои тапочки. многомониторная конфигурация уже давно не проблема ни для кого, кроме вас. это работа на 1, ну 2 дня для wayland. нет у wayland таких проблем, которые нельзя было бы решить за приемлемое время: дни, недели, месяц.

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

с иксами она тормозит еще сильнее. что в qt, что в cairo. иксы вообще в пролёте.

возможность реализации нормальной «сетевой прозрачности» является синонимом хорошо продуманной архитектуры.

Останетесь скоро вообще без дров, я предупредил. Архитекторы херовы.

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

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

RDP и X11 это протоколы с разными задачами и разной идеологией

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

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

Просто при фразе «разработчики приложений креативят» у меня сразу же встают перед глазами окна программ типа Megafon Internet, утилиты управления драйверами видео- и аудио-карт и т. д.

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

Что мешает переключиться на текстовый терминал и убить?

Много чего мешает. Неработоспособность иксовых комбинаций (ctrl-alt-backspace, ctrl-alt-f1 ...) в современных дистрибутивах, кривые драйвера, которые ставят систему колом при переключании в текстовую консоль и обратно ....

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

По сравнению с пересылкой команд протокола рисования - это деградация. А OpenGL тоже через растровые кадры гнать?

То-то на узких каналах, vnc нормально пашет. А прозрачность иксов не алё.

erfea ★★★★★
()

В линаксе я в таких случаях по ssh с мобилки заходил. Некоторые игрушки умудряются виснуть так, что даже ctrl+alt+bksp не работает, хотя после killall -9 игрушка всё путём.

О, оказывается в Линуксе тоже так бывает.

В венде есть Ctrl + Alt + Delete, который отбирает у любого приложения управление и показывает полноэкранную менюшку.

Отбирает, да, равно как и Win-key. А вот что-либо показывает далеко не всегда. Сделать комбо: Win+Up+Enter+Space - вслепую, гораздо проще, чем прибить нужный процесс в диспетчере задач.

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

Школо-ло-тулкитофоб?

Не угадал.

Ладно, уболтал. ~7 (мне лень сейчас перезапускать кеды с QT_GRAPHICSSYSTEM=native для демонстрации «зомби апокалипсиса»)

Принципаильно разницы нет, хотя может зависеть от видюхи и драйверов.

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

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

Контрамоция как она есть.

не 8ка, так 9ка вас добьет

Уж 20 лет ждем, ага.

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

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

Вот изврат...

В иксах такого нет...
А в вейленде изкоробки это не предвидится.

/0 но вяленый всё равно хуже...

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

Плача кровавыми слезами

Пусть себе глаза выковыривают, если их тянет в интерфейсах ``креативить".

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

А я тебе что говорил? Вот этот недостаток у иксов и надо исправлять.

Что-то никто не чешется...

Wayland приложения при падении вайланда останутся работать? Нет?

А вот хз... не проверял. А что дальше будут делать разрабы хз, не экстрасенс...

Значит он ещё хуже чем X.org+WM

/0 Падают иксы -> тащат окна == падает вяленый -> тащит окна (и то не факт ещё)

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

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

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

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

да, DRI не идеально. но, я думаю, все поправимо.

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

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

Ну то есть вернуть обратно клиент-серверные иксы, да.

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

Не угадал.

Ну и откуда тогда инфа о хреновом качестве X11 бэкенда в Qt?! пахнет 4.2 ЗЫ хреновый экспериментальный бэкенд OGL тоже рвёт иксы... По твоему стабильный иксовый бэкенд написан ещё хуже экспериментального и глючного OGL?!

Принципаильно разницы нет, хотя может зависеть от видюхи и драйверов.

В 7 это не принципиальная разница?! Оо

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

вы чо, иксмены, все что ли психические?

GEM в ядре сидит.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от annulen

ОК, продолжай дрочить на свой бенчмарк

Не я лучше буду наслаждаться ощутимо более быстрой работой через бэкенд raster. И когда (если) влетит вяленый и ещё более быстрой работой ))) А ты можешь дальше страдать тулкитофобией и манией 4.2...

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

во всяких федорах это сто лет как отключено

Reset ★★★★★
()

Пользуюсь несколькими видеокартами без проблем. SLI/Crossfire - работают. Но у меня выставлены установки так, чтобы на каждой видеокарте были отдельные иксы. Вот и сейчас я пишу с такого компьютера. Где проблемы с несколькими видеоустройствами? Насчёт интелов - интелопроблемы. Насчёт Microsoft - волнующий текст, надо развернуть до статьи. Насчёт Bumblebee - NVIDIA просто не хочет делать Optimus, таково моё мнение. По той же самой причине, по которой не делает возможность разгона для новых видеокарт, поддержку UEFI вместо BIOS, и прекратила разработку открытого драйвера nv - ухудшение отношения к Linux.

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

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

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

да не смешите мои тапочки. многомониторная конфигурация уже давно не проблема ни для кого, кроме вас. это работа на 1, ну 2 дня для wayland. нет у wayland таких проблем, которые нельзя было бы решить за приемлемое время: дни, недели, месяц.

Да умеет он многомониторность, гуглите видео на ютубе

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