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