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

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

В данной реализации вроде падают с сегфолтом, видимо что-то недореализовано.

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

на каждой видеокарте были отдельные иксы. Где проблемы с несколькими видеоустройствами?

в винде они - одно устройство, ЛОЛ.

иксмены реально невменяемы.

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

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

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

ну нету у мну дома нескольких мониторов, не проверял.

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

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

Разработчики дров для ATI, Nvidia и т. д. массово кинутся с нуля писать новые дрова для всех моделей под Wayland?

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

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

А сколько тот же raster просирает native если включить _простую_ тему в Qt, без алиасинга?

Всё это дерьмище с костылями в виде пересылки битмапов нужно исключительно для того, чтобы, едрить, сраный алиасинг линий был. Ну не думали создатели X-ов, что НТП выродится в унылое говно и вместо дисплеев с разрешением в 600dpi мы будем пялится в убогое говнище с теми же 96dpi. А чтобы это убогое говнище покупали как новизну навороченную, а не технологию 20-тилетней давности, надо всякие извраты с алиасингом и шейдингом народу впаривать.

Реализуют в X12 алиасинг и альфу в DrawLine всяких - и всё, проблема с говномониторами будет решена. И native в qtperf будет показывать крутые попугаи даже на темах с рюшечками.

ЗЫ: Вяленый, кстати, в лучшем случае станет очередным расширением Xов, на большее ему рассчитывать не приходится.

ЗЗЫ: Запускаю клиента на N9 через ssh c окном на X-сервере десктопа. Отрисовывается всё быстро и плавно, как и в телефоне. Где там какое-то мифическое хардверное ускорение виджетов? Откуда N9 знает какая у меня видимокарта в десктопе и как умудряется хардверно ускорять?

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

> в винде они - одно устройство, ЛОЛ.

А если бы в винде одно устройство было восемью устройствами, мы бы всё равно брали с неё пример?

> иксмены реально невменяемы.

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

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

>Реализуют в X12
>в X12
>X12
>X12
>X12

ХА-ХА-ХА-ХА. Этими сказочками можете кормить юных красноглазых товарищей. X12 сдохло не родившись.

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

Интересно, спасибо.

В голове уже вырисовывается структура GNU/Linux нового поколения. Wayland + systemd + printerd + Pulseaudio + новые драйвера + перенос фич Андроида в ядро. И никакого там bumblebeed.

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

X12 сдохло не родившись.

Ну хотя бы есть X11. А вяленда-1 даже вообще никогда не было. Так что вяленд - в утиль. Хрень без роду и племени, сделанная для единственной цели - прикрыть убогость современных мониторов всякими костылями.

ЗЫ: А вот будет смешно, если внезапно начнут фигачить мониторы с 600dpi. :) Вот где все эти сраные и ненужные пиксмапство, алиасинг и вялендство по полной программе обделаются, да так, что мало не покажется.

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

По задумке AMD(то есть моего работодателя) видеокарты в SLI работает как одна. Поэтому в нормальных системах они и видны как одна видеокарта приложениям.

мы бы всё равно брали с неё пример

у вас выбора нет. ваши кривые иксы не позволяют работать с видяхами как задумано. ни с muxless, ни с SLI

без каких либо доводов

я знаю, как это реализовано в железе, и как оно работает с приложениями. wayland - это шаг в направлении куда надо. нужно конечно пилить дрова, ибо 2D и видео пока в wayland не доступно. но это решаемо.

прогресс не остановить. скоро иксы станут чем-то вроде кобола. бгг

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

Плюсы Wayland - отсутствие этих минусов.

Как тонко.

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

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

Да, разрешить делать всё расширениями — дальновидный ход. От иксов сейчас осталась обработка ввода (впрочем, уже нехватает и лучше юзать XI2, да, ещё одно расширение), IPC и отрисовка окон. Плюс работа с железом.

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

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

Ну, это решается прокси. Правда, прокси тоже может упасть.

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

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

А что делать если стандартные средства — говно by design? В первую очередь применимо к Motif, да.

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

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

Ты про «перехватить ввод клавиатуры до иксов»? Да, это решение, но иксы таки говно.

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

Так всё-таки Direct X приложения на чём-нибудь нативно работают кроме настольных Windows?

Да.

Хороший интерфейс должен быть переносимым и платформонезависимым на уровне исходных кодов — то есть например иксы могут работать и на FreeBSD и на GNU/Linux и даже на винде через Xming и на андроиде.

А вот иксовые приложения — нет. На тачскрине они превращаются в неюзабельное говно. Отсюда вывод: metro — наше всё.

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

На самом деле тормозит все, что рисует через GDI. Хочешь ускорения - рисуй нпрямую через DirectDraw.

DDraw же устарел. D2D наше всё.

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

Нет, я предлагаю сделать X12 наконец, реализовать его и переписать тулкиты на него.

Вперёд, это опенсорс и никто тебя не остановит.

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

Чем оно лучше fbcon?

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

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

Например возможность поменять оконный менеджер прямо на лету не перезапуская приложений. Нужно ещё как-то сделать чтоб можно было перезапускать икс-сервер без убийства приложений и/или перекидывать окно уже запущенного приложения на другой сервер — вот это действительно было бы полезно. В wayland такое планируется?

Предполагаю такую фичу при интеграции с systemd. С жонглированием сокетом.

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

От иксов сейчас осталась обработка ввода (впрочем, уже нехватает и лучше юзать XI2, да, ещё одно расширение), IPC и отрисовка окон. Плюс работа с железом.

Вот и дайте нам нормальное IPC. А отрисовку пусть вяленд и тулкиты курочат как хотят.

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

Unix Way

Его придумали задолго до появления разделяемых библиотек.

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

Единственое что от него требуется - уведомление «я начало рисовать» и «я закончило рисовать».

Насколько я помню, в вяленде от них оставили только второе.

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

Архитектура wayland не учитывает сетевую прозрачность

Можно пруф?

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

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

В иксах есть core text. Делается иксовыми шрифтами. Максимальное количество codepoint — 64к, в юникоде одних иероглифов больше. Плюс нет комбинирования. Плюс приложению потом догадываться, как иксы нарисовали. Плюс нет даже bidi, не говоря о более сложных вещах. В общем, году этак в 95м прокатило бы как базовая поддержка юникода, сейчас — нет.

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

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

Да, жонглировать указателями в гуе — это так увлекательно. А потом в софте дырки находят.

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

Да, жонглировать указателями в гуе — это так увлекательно. А потом в софте дырки находят.

«Легковесный док на питоне», 27% CPU load при ведении мышью по иконкам — это так увлекательно...

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

Быдлокодить можно на любом языке. Хотя pygtk — это отдельная тема.

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

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

>А вот будет смешно, если внезапно начнут фигачить мониторы с 600dpi. :) Вот где все эти сраные и ненужные пиксмапство, алиасинг и вялендство по полной программе обделаются

Какие у тебя эротические фантазии.

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

Разработчики дров для ATI, Nvidia и т. д. массово кинутся с нуля писать новые дрова для всех моделей под Wayland?

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

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

кстати зря. это должен сообщать драйвер. в винде так.

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

Руки бы оторвать тому, кто нормальный OpenGL этой дрянью пытался заменить!

ололо.

у меня слов нет.

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

Какие у тебя эротические фантазии.

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

А мониторы с высоким разрешением вполне могут очень внезапно появится, так же, как внезапно появились всякие 3D видяхи, смартфоны или там планшеты. Рынок железа часто преподносит сюрпризы. Чаще чем рынок софта, кстати.

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

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

Вроде такая возможность и сейчас есть — что-то вроде screen для X-ов, правда относительно недавно эта программка появилась. Там ещё прокси реализован в её рамках.

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

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

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

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

С такими мониторами этот ваш рендеринг внезапно нахер не нужен. Рендеринг виджетов, особенно когда они натурально попиксельно рисуются тулкитом - это костыль разновидности ара-тюнинх для говномониторов из начала 90-х. Виджеты рисуются примитивами - текст, рамка, заливка фона. И как раз именно по этому вопросу Х-ы уделывают сегодня всех по всем пунктам, начиная от скорости и заканчивая сетевой прозрачностью.

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

Вроде бы, на ARM, MIPS и всяких экзотических архитектурах, часто, нет отдельного ускорителя.

Есть. Там где нет, там и иксы overkill, хватает фреймбуфера

Сам пользуюсь на своём ноутбуке, ибо под старый Radeon дров нет.

Это что за говно мамонта? вменяемые открытые дрова начинаются ЕМНИП с R300, если не с R200

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

Ты прямо с 80х к нам или раньше? Этого недостаточно, хоть с текущими мониторами, хоть с будущими. Подход ущербен и никто его не использует.

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

Логи — отладочный рудимент, по большому счёту. Представляют интерес только исследователям-разработчикам.

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

Как я по-твоему буду отлаживать загрузку без tty на arm железке? особенно ранний этап, когда инициализированы только клоки, рам, флеш да отладочный tty. только через jtag? пройдите в направлении ближайшей стены, пжалста.

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

Т.е. по существу не будет. Всё понятно, можешь не продолжать :}

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

Виджеты рисуются примитивами - текст, рамка, заливка фона.

Про стоимость векторного рисования тебе известно?

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

Сейчас идут обсуждения по замене (по умолчанию, можно будет вернуть взад) на разрабатываемый kmscon.

Этот самый kmscon умеет рисовать на USART? Если нет - то в топку.

Суть простая - инициализация USART - дело очень простое. Сложность в том, что терминалы очень дорожат legace совместимостью с совсем уж динозаврами эпохи телетайпов. Оттуда все костыли и мат в сторону tty подсистемы. VT100 принудительно и идите все нафиг.

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