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 по всем параметрам: флешки звук и даже скорость.

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

Ответ на: комментарий от Nebuchadnezzar

Всё это, конечно же, хорошо, но если у нас нет GPU?

где нет GPU - не нужен UI

JFreeM ★★★☆ ()

Всё это прекрасно, но напомните мне, пожалуйста, как там у нас дела со стабильностью, да и вообще с развитием упомянутого wayland?

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

если у вас нет gpu, рисуйте в софте например. можно создать dummy-драйвер, который будет уметь только «создать surface». причем драйвер на уровне вообще userspace, тут ядро не нужно.

ckotinko ☆☆☆ ()

народ всегда новшества воспринимает с сопротивлением. Достаточно посмотреть на systemd

«Знаешь как узнать первопроходца? У него вся спина истыкана стрелами».

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

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

В принципе, я с вами согласен - Иксы разрабатывались для терминалов и для современных систем их функционал избыточен. Хотя облакабелокрылыелошадки могут снова создать спрос на подобные решения.

Nebuchadnezzar ★★★★ ()

Отлично, хоть 1 развёрнутый ответ на вопрос:«почему иксы надо закопать».

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

тут дело даже не в новшествах. просто дрова пишутся под винду. это факт. 90% десктопов дают о себе знать.

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

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

Местная публика, вообще, обладает интересным мышлением. Например, ненавидит BSD в пользу GPL, но не проявляет подобной предвзятости к CC.

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

просто дрова пишутся под винду. это факт. 90% десктопов дают о себе знать.

Да, но это ещё не повод слепо копировать винду. Прелесть линуха в том что он (ещё) не винда.

сделать дрова с расчете на минипор

не спец в дровах. поверю на слово что это поможет в написании.

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

уверен, у винды тоже багов хватает.

true_admin ★★★★★ ()

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

Под Linux у меня такого ни на одной машине нет.

Вот и вся разница. А шашечки — это уже не ко мне.

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

И это говорит человек, который пару часов назад хотел класть картинки в бд? :)

Он меня давно расстраивает, хотя кажется адекватным.

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

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

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

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

Вот блин :( А я надеялся, что, хотя бы, к 7-ой версии Windows стала многозадачной системой.

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

кстати, в линуксе тоже можно завесить gpu. я 915й вешал, через 10 сек GEM сгоняет приложение и закрывает его контекст к чертовой матери.

ckotinko ☆☆☆ ()

Я не понял, автор за Wayland или предлагает еще одно чудо городить?

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

вопрос был не про стабильность. Вопрос о нужности проектов типа wayland.


В начальном сообщении вообще нет вопросов. Там одни повествовательные предложения.

blackst0ne ★★★★★ ()

наброшу ка я еще.

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

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

требуется пинок бодрости.

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

1)на экран той же видеокарты 2)на экран другой видеокарты. 3)сожмут силами gpu, ими же зашифруют и отправят в инет.

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

ckotinko ☆☆☆ ()

Ну а с дровами-то что делать? На ноутбуках на свободных не посидишь, SI амдешные в свободных дровах нормально не поддерживаются. Без телодвижений блобостроителей не обойтись. Есть правда вариант на интеле сидеть...

Rakot ★★ ()

...И поэтому майкрософт(а не красноглазые) придумали шейдеры. Поэтому они придумали стандарт на API для ускорения видео. Микрософт а не «опенсорс сообщество» задает направление развития графики...

ЕМНИП OGL старше DX. DX же по сути лишь его не совместимый клон (как и всё что, делают мелкомягкие, DX, AD, виджеты на рабочем столе, ну и конечно же это «инновации») навязанный повсеместно чтобы анально отгородить всех и вся от конкурирующих систем и жестко прибить гвоздями к своей экосистеме, которая страшнее Квазимоды. Шейдеры придумали вообще пиксар... Короче у ТСа (а ведь он посетитель моего ЛОРа!), как и у 99% пользователей ПК, шиндавс головного мозга... пичаль...

ЗЫ X в современных реалиях не в тему, тут согласен. ЗЗЫ про «сетевую прозрачность», проблема высосана из пальца. Реализовать какой-нить сраный vnc поверх того же вяленого не проблема и будет даже быстрее и лучше пахать. ЗЗЗЫ А что ТС хотел от унылых нытиков? Им лищь бы ныть, только повод дай. Не дашь, высосут сами из пальца на ровном месте...

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

если бы у вас подвис драйвер

Я же говорил, мне пофиг на шашечки. Мне важно, чтобы ехало. Да, дело не в драйвере. Но что мне до него?

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

Он меня давно расстраивает, хотя кажется адекватным.

Да ну нафиг, он из тех кому про Фому, а оно в ответ про Ерёму.

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

Ну а с дровами-то что делать? На ноутбуках на свободных не посидишь, SI амдешные в свободных дровах нормально не поддерживаются. Без телодвижений блобостроителей не обойтись. Есть правда вариант на интеле сидеть...

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

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

Ну так это из за наличия в винде 12309, но графика там совершенно точно быстрее и на вид плавнее бегает. На wayland'е же она столь же плавно работает как на винде, если не плавнее.

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

но графика там совершенно точно быстрее и на вид плавнее бегает

Увы, не замечаю таких шашечек. У меня графика в Linux ничуть не тормознее :)

KRoN73 ★★★★★ ()

Нет смысла что-то закапывать на лоре, все равно откопают.

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

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

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

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

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

Это конечно же считается за фатальный недостаток прямого вывода графики, хотя она тут вообще ни при чём? А вот то, что круизис работает с высоким фпс и при этом все детали и эффекты рендерит, а не как в wine - это не считается?

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

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

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

Дык а в чем трудности? Оставить основной поток только для рендеринга, а все считать в отдельном потоке, я сейчас так и стараюсь приложения писать.

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

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

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

Неправда, там вся графика в главном потоке, в котором main. Просто все вычисления принято делать в фоне, и язык позволяет это делать удобно.

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

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

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

не писали под топор

то есть наоборот, писали под топор уровня motif

To note173 (кастовать не буду ;)):

Неправда, там вся графика в главном потоке, в котором main

Ну по сути то же - графика в отдельном потоке; да и поддержка языка - понятие странное, вон питон почти единственный принуждает программиста форматировать код, а что имеем на выходе? Форматируют код все, потому что так учат повсюду. Вот если бы учебники и туториалы по SDL/Qt и прочим либам переписать так, чтобы учил в писать два потока с shared_ptr для передачи снапшотов...

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