В продолжение темы о X-Window System и Wayland

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

https://www.linux.org.ru/forum/talks/8000377

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

Как задолбало смотреть на деградантов, агитирующих сидеть на иксах. Для тех, кто хоть немного разбирается в современных 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 по всем параметрам: флешки звук и даже скорость.

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

В общем ждем Wayland! Скорее всего он будет "юзабельным" примерно к Fedora 19. Кстати, массовое внедрение Wayland поможет еще больше унифицировать "традиционный" Linux и Android. Но, конечно, массовый переход на него, это плохие новости для устаревших Unix. Может пора их закопать?