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)
Ответ на: комментарий от erfea

А такие: современное приложение (обычно использует Qt, GTK, Cairo, етц) рисует растровую картинку и передаёт её иксам в готовом виде. Изначальный протокол иксов идёт лесом

Это недостаток приложений и тулкитов, а не иксов

Тут проблемы и без игр - это раз.

Какие? У меня так и с играми особенных проблем нет.

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

Приличная реализация возможно только если задуманное прилично. Архитектура wayland не учитывает сетевую прозрачность, поэтому она изначально ущербна.

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

Жить захотят - портируют. А держать бедных родственников авторы иксов (которые кстати и пишут wayland) вряд ли хотят.

В конце концов, wayland на X должен же работать.

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

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

Если для этого нужен OpenGL ES, то правильно, ату их в юзерспейс.

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

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

Работает нормально — зачем сравнивать? Тем более, что других систем и нет.

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

Если бы кое-кто не «рисовал как все в обход иксов», то всё было бы нормально.

Тут говорят, что через иксы невозможно рисовать UTF8, это правда?

В таком случае нужно просто улучшить иксы таким образом, чтоб можно было всё рисовать через них и чтоб его не понадобилось перестраивать так же долго как X11, а лучше вообще не понадобилось. То есть нужно всё-таки допилить X12, а не маяться ерундой типа вяленда. Если же нужно что-то быстрое и лёгкое для малопроизводительных устройств — DirectFB уже есть,

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

Это недостаток приложений и тулкитов, а не иксов

С фига ли?! Тулкиты виноваты что сегодня любой современный способ отрендерить картинку в разы шустрее иксов?!

Какие? У меня так и с играми особенных проблем нет.

Рад за тебя.

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

Абсолютно верно.

Архитектура wayland не учитывает сетевую прозрачность, поэтому она изначально ущербна.

В лужу пердишь.

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

Это недостаток приложений и тулкитов, а не иксов

Ты предлагаешь переписать _все_ приложения ? Если бы иксы были так хороши, то думаю, что в приложениях не стали делать отрисовку в битмапы.

Какие? У меня так и с играми особенных проблем нет.

ога, нет игр — нет проблем

Архитектура wayland не учитывает сетевую прозрачность, поэтому она изначально ущербна.

Не нужна сетевая прозрачность на уровне архитектуры. Сбоку её прикрутят и ладно.

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

Работает нормально — зачем сравнивать?

ВНЕЗАПНО: 1 - может работать в разы, десятки раз лучше; 2 - сносно пашет ибо костыль с рендерингом (используется по дефолту любым современыми тулкитами) со стороны приложений хоть немного позволяет обойти никчёмность иксов.

Тем более, что других систем и нет.

Если нет чего-то нужного, значит надо делать. ЗЫ не используй компы вообще, остальные блага цивилизации тоже, поймёшь о чём я.

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

Всего в 3-100 раз медленнее

За счет JIT. Плюс память все это дело жрет немеряно.

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

то чем некоторым не угодил терминал в ядре (который в убунте при загрузке и не видно) — не понимаю.

Мне не угодил как раз этим — ненавижу загрузочные заставки! Из-за загрузочной заставки я никак не могу например увидеть почему у меня GNU/Linux на андроидодевайсе не грузится (ядро то же которое в андроиде), был бы там лог, я бы всё уже сделал, а тут приходится извращаться... Надо как-то пересобрать это ядро что ли — но это ставить армтулчейн и прочее...

Xenius ★★★★★
()

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

Что говоря о винде, то там GPU тоже работает не напрямую, об этом как-то AMD жаловалась.

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

vnc и RDP не быстрее. «Быстрее» они могут казаться только за счет сжатия. По mc в gnome-terminal или xterm поверх ssh -XC отрисовывается быстрее и плавнее, чем FAR в RDP-сеансе на «симёрочке максимальной».

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

А если это векторная видеокарта? Или вообще девайс CGH?

Держите чуточку Алана Купера:

Программисты разделяют присущий математикам взгляд на сложные системы, а потому неудивительно, что они смотрят на вещи не так, как большинство людей. Что я имею в виду? Представьте, что вы подбросили монету 1000000 раз; из них 999999 раз монета упала орлом вверх, и только один раз вверх решкой. Для математика утверждение «монета всегда падает орлом вверх» является ложным. Единственный раз, когда монета упала вверх решкой, опровергает утверждение. Говоря математическим языком, утверждение верно, если оно верно всегда. Этот образ мысли привычен и кажется разумным хомо логикус, поскольку именно так ведут себя компьютеры.

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

сетевая прозрачность, которая по факту не работает — не нужна

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

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

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

Я говорил про Wi-Fi через китайский роутер

Нормальные приложения (не те, которые кидаются пиксмапами) и по 1Мбит (который выдаст даже самый китайский китайский раутер) работают нормально.

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

Дык, по такой сети вообще даже в текстовом режиме тормоза будут ☺

В текстовом режиме тормозов нет.

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

Из-за загрузочной заставки я никак не могу например увидеть почему у меня GNU/Linux на андроидодевайсе не грузится

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

Внутри устройства наверняка есть отладочный разъём, enjoy.

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

может работать в разы, десятки раз лучше

Только ни у кого нет желания влезать в нутро иксов и править, править, править…

Если нет чего-то нужного, значит надо делать

Надо. Было бы неплохо создать полноценную OpenGL замену иксам. Вот только косяк: на дохлом железе оно работать вообще не будет.

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

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

Я там вполне однозначно про шашечки и ехать.

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

Иксовая работает не всегда хорошо

я бы сказал, что почти всегда она работает плохо

например в винде

в винде есть rdp, который работает, в том числе и на полудохлых каналах

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от no-dashi

они все тормозят. Чуть быстрее, чуть медленней - как на специальной олимпиаде.

Вот ты скажи, X же не умеет хранить логическое дерево гуйни на клиенте? Только последовательность команд отрисовки. Вяленый тем более. Может, с этого стоило бы начать?

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

Ну, при скорости 8кБ/с тормоза жестокие. Особенно когда что-нибудь большое в less листаешь…

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

Только ни у кого нет желания влезать в нутро иксов и править, править, править…

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

Надо.

Ну вот и делают, а ты тут говно поливаешь людей.

Было бы неплохо создать полноценную OpenGL замену иксам. Вот только косяк: на дохлом железе оно работать вообще не будет.

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

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

С фига ли тогда иксы рендерят в десять раз медленнее чем бэкенд растер в Qt?

Во-первых, пруфлинк давай.

Во-вторых, Qt-приложения локально в иксах работают достаточно быстро даже для мобильника (конкретно Nokia N9), быстрее андроида например.

В-третьих, производительность не так важна как гибкость и прозрачность.

А где ты увидел платформозависимость в вяленом?

А я говорил, что я её увидел? Я просто написал, что производительность — не самое важное, лучше пусть будет на 10% меньше производительность, но зато добавится сетевая прозрачность, чем так.

дойдёт ли караван до пункта назначения от тебя всё равно не зависит.

Про Wayland разговоры уже сколько лет, а он до сих пор никому не нужен. Вердикт — не дойдёт.

Боишься что не сможешь графические конфигураторы на своём быдло-бубунто сервере запускать? :D

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

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

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

Только одна беда — нет ее.

ты тут говном поливаешь людей

Ну дык делают-то совершенно не то, что надо.

можно сделать софтовый бэкенд для крайнего случая

И будет что-то из разряда «подождите 10 минут, пока ваше окошко нарисуется».

Eddy_Em ☆☆☆☆☆
()

Упоролся? А теперь давай разберемся.

Начнем с 2D. Да будет тебе известно, что в Win7 отсутствует (полностью) ускорение 2д отрисовки (GDI). См. тонны кирпичей на вендофорумах в адрес тормозящих винформзов. Сначала бы полуркал как обстоят дела с 2д ускорением в винде.

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

Судя по всему с тем, ЗАЧЕМ нужен такой дизайн ускорения, ты вообще не разобрался. Иди в школу.

По 3д:
bumblebee в его реализации это костыль, сделанный на время пока народ пишет kernel-код. Просто в иксах его можно было запилить парой сотней строк на баше через virtualgl, и спокойно играть, пока бородатые мужики в апстриме думали как сделать правильное решение в kernel-space.

Что касается 3Д, разработка 3д дров под винду как была геморроем первой категории, так и осталась. В то время как с появлением галлиума жить стало _НАМНОГО_ проще и девелопить дрова быстрее. Домашнее задание: сравнить производительность 2д на нвидии в винде, линуксе на блобе, и в линуксах через nouveau.

RDP свой можешь засунуть куда подальше. В отличие от X11 форвардинга через SSH, он затыкается легко даже на 3г соединении. В то время, как работа с более или менее сложным софтом (Xilinx ISE, например) через X11 без проблем.

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

Вот с консерватории и начните изменения. Нефиг битмапами баловаться.

Приходится, иксы медленно рисуют

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

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

синхронный обмен

Я может и путаю но для иксов в замен синхронной xlib написали асинхронный xcb.

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

производительность не так важна как отзывчивость

Починил.

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

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

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

Qt-приложения локально в иксах работают достаточно быстро даже для мобильника (конкретно Nokia N9), быстрее андроида например.

На N9 аппаратно ускоренная отрисовка, которая быстрее бэкенда raster, который, в свою очередь, значительно быстрей иксового native.

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

Про Wayland разговоры уже сколько лет

четыре года

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

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

У них задумка — типа «современные машины давно уже однопользовательские и графику по сети никто не гоняет, поэтому нужно выкинуть эти возможности и сделать как в винде»? Такая задумка ни к чему хорошему не приведёт. Хорошая задумка должна изначально включать в себя возможности для развития в любую сторону.

Заметь, кстати, что X11 такая и есть — не смотря ни на что он работает лучше всего остального, хотя прошло уже лет 25... Протокол расширяемый и потому им до сих пор можно пользоваться. Да, он слишком оброс расширениями и потому нужен новый протокол, но этот протокол должен наследовать все лучшие качества иксов — их гибкость, сетевую прозрачность, переносимость и всё такое, и не только наследовать, но и дополнять ещё большими фишками, например возможностью приложений продолжать работу даже если икс-сервер упадёт или возможностью прозрачно для приложения перекидывать его окно на другое сетевое устройство. Насколько я знаю, такое уже есть в 9p, поэтому нужно делать новый протокол или на основе рефакторинга X11 (т.е. X12) или на основе идей 9p. Я не знаю, правда, достаточно ли 9p подходит для современных условий, но протокол это несомненно годный.

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

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

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

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

Во-первых, пруфлинк давай.

qtperf

Во-вторых, Qt-приложения локально в иксах работают достаточно быстро даже для мобильника (конкретно Nokia N9), быстрее андроида например.

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

В-третьих, производительность не так важна как гибкость и прозрачность.

Какую такую адскую гибкость тебе дают иксы?! Огромный выбор костылей сомнительного качества? Зачем прозрачность из коробки, прибитая гвоздями? Что мешает сделать прозрачность для вяленого, раз уж так хочется?! И главное зачем вообще нужна прозрачность?!

Про Wayland разговоры уже сколько лет, а он до сих пор никому не нужен. Вердикт — не дойдёт.

На стадии разработки и не нужен - мягко говоря, не одно и то же.

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

Роди, давай!

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

X же не умеет хранить логическое дерево гуйни на клиенте?

Гыгы. При нормальной архитектуре «хранить логическое дерево гуйни на клиенте» нет необходимости, и достаточно только хранить пиксмап прорисованного окна, для кэширования и организации быстрого перемещения и сворачивания/разворачивания окна. А вот для быстрого обновления содержимого необходимо кидаться командами, а не пиксмапами.

no-dashi ★★★★★
()

Как и ожидалось - пять страниц из фразы: «зато в Иксах есть сетевая прозрачность» - повторённой на разные лады. Остро не хватает, кого-нибудь вроде Irsi, чтобы талдычить: «GDI, GDI, GDI...»

То есть нужно всё-таки допилить X12, а не маяться ерундой типа вяленда.

А может переименовать Wayland в X12 и дело с концом? Латекс-фетишистам - по-барабану, зато ретрограды будут довольны.

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

Феерично. Читать следует так: если дашь мне пруфлинк - я скажу, что производительность и так нормальная; если возразишь - я скажу, что главное гибкость и прозрачность.

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