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)

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

в адрес тормозящих винформзов

винформзов? рекомендованый вей - Windows Presentation Foundation, since 21 November 2006 (.NET 3.0) WPF умеет ускоряться, в восьмерке обещали еще плюшек на эту тему

и эта 2д можно ускорять через 3д забив на лишнее измерение, только придется свои виджеты писать :)

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

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

4.2 Не готово != нет.

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

Они делают то, что нужно им. Это как минимум. Раз тебе не нужно то что пилят они, сделай то что нужно тебе! Кто запрещает?!

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

4.2 Я тебе уже говорил что иксы рисуют медленее современых софтовых рендеров (man qtperf!).

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

Этот вопрос вообще никак к моему утверждению про кривость интерфейса не относится.

Нет, относится напрямую. Хороший интерфейс должен быть переносимым и платформонезависимым на уровне исходных кодов — то есть например иксы могут работать и на FreeBSD и на GNU/Linux и даже на винде через Xming и на андроиде. Из этого следует — что это хороший интерфейс в своей основе. Так всё-таки Direct X приложения на чём-нибудь нативно работают кроме настольных Windows?

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

Вот и сходите по ссылке, раз откопали.

Я сходил.

И вниз пролистать не забудьте

А давай конкретную цитату на тему «вяленд - это X12», а то знаю я вас - умный вид делать умеете.

tailgunner ★★★★★
()

Я думаю, иксмены понимают, что их аргументы «за иксы» - это полный бред.

Возможность просто работать здесь и сейчас это конечно полный бред.

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

шиндошс пхоне

а это что за зверь?

Windows Phone же

На мобильный устройствах OpenGL ES, который по API отличается от обычного OpenGL.

В основе тем не менее такой же. Кстати, лишенный единственного недостатка OpenGL — большого количество фич, нужных только для обратной совместимости.

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

4.2 Не готово != нет

Что не готово? Вяленый? Это говно не нужно.

сделай то что нужно тебе! Кто запрещает?!

Меня все устраивает. Почти все.

Я тебе уже говорил что иксы рисуют медленее современых софтовых рендеров

Чушь.

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

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

.. .который в свою очередь реализован как createbuffer()-> ... редактирование этого буфера...->createpixmapfrombuffer()->drawpixmap(), ага. Ну ещё бы оно не «тормозило», при таком то подходе.

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

На самом деле тормозит все, что рисует через GDI. Хочешь ускорения - рисуй нпрямую через DirectDraw. Это вызывает бугурт, особенно у тех, у кого пятнадцать лет поддержки легаси софта, где по сути только убергуй к бд.

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

А вот для быстрого обновления содержимого необходимо кидаться командами, а не пиксмапами.

Меня тут посетила безумная идея. Если у нас для отрисовки некоторого сущности (скажем, фона кнопки) надо отправить N команд, сопроводив их M параметрами (размеры, цвета...), то нельзя ли повысить эффективность, сохранив один раз эти команды на сервере в виде списка и в дальнейшем посылая только номер списка и параметры.

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

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

..... X11, каким он должен быть для сетевой прозрачности, кажется, уже изобрели. Он называется Хромиум в режиме приложения :) Там есть и структурная передача гуйни (HTML), и кэширование кода (JS), и удаленный код (Ajax), и натив (NaCl), и изоляция, всё есть.

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

в смысле? Сервер занимается логикой (тем, что нельзя отдать на клиента из-за сложности вычислений и требований по безопасности). Клиент рендерит гуй. Что перепутано?

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

А ещё можно иметь на сервере набор стандартных виджетов.

А ещё можно реализовать на сервере целый html, css и js (такие хреновины давно есть, браузеры называются). Для игрушек и прочей 3д-ерунды либо просто забиваем на клиент-серверность и даём приложению наименее непрямой возможный доступ к железу через всякие опенжл, либо рисуем в канвас (сомнительное решение).

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

Открой сто первую вкладку в лисе, и посмотри, чем интерфейс отличается от реализации.

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

Самое непосредственное. Мы ведь о скорости отрисовки говорим, да?

Нет, мы говорим о том, что лучше в целом. Я считаю что иксы лучше, поскольку работают достаточно быстро (на глаз тормозов не видно даже на мобильнике и даже на древнем КПК с 64 метра памяти) и обладают бОльшими возможностями. Значит в целом их архитектура удачна и надо её дальше развивать (X12), а не делать костыли с нуля.

Он тормозит и ругается всегда, иксы тут не при чём это руки авторов

Я о чём и говорю. Если в иксах сейчас что-то и тормозит — это вина не иксов

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

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

А что в этом такого?

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

то нельзя ли повысить эффективность, сохранив один раз эти команды на сервере в виде списка и в дальнейшем посылая только номер списка и параметры.

Смысла особого нет. Это усложнит обработку (ведение всех этих списков и параметров к ним), не дав особого преимущества, поскольку типичные часто используемые последовательности будут достаточно коротки. И опять таки, этой фишкой надо специально пользоваться, а Qt/GTK даже тем что есть пользуются через пень-колоду :-)

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

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

Кто тебе сказал, что сетевая прозрачность для вяленого не реализуема или будет хуже иксовой?!

Заметь, кстати, что X11 такая и есть — не смотря ни на что он работает лучше всего остального, хотя прошло уже лет 25...

4.2 Он работает хуже всех. Он даже, написанному на коленке, QWS просерает.

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

Сам же написал что всё плохо...

Насколько я знаю, такое уже есть в 9p, поэтому нужно делать новый протокол или на основе рефакторинга X11 (т.е. X12) или на основе идей 9p. Я не знаю, правда, достаточно ли 9p подходит для современных условий, но протокол это несомненно годный.

Ну сделай, чо. Если окажется лучше, вяленый издохнет сам.

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

Ты опять пердишь в лужу, давай не будем по кругу обсуждать одни и те же аргументы?!

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

Для игрушек и прочей 3д-ерунды либо просто забиваем на клиент-серверность и даём приложению наименее непрямой возможный доступ к железу через всякие опенжл

такая штука тоже уже есть, называется NaCl в Хромиуме =)

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

в смысле? Сервер занимается логикой (тем, что нельзя отдать на клиента из-за сложности вычислений и требований по безопасности). Клиент рендерит гуй. Что перепутано?

Клиент — это приложение. Дисплей — сервер.

Ты путаешь сервер как дисплей и сервер приложений.

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

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

Опять нездоровые тенденции? Как через эту штуку отлаживать ядро по serial terminal (например UART)? Я так понимаю, если TTY выкинуть из ядра — никак?

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

Что не готово? Вяленый? Это говно не нужно.
Меня все устраивает. Почти все.

Тебе не нужно, не пользуйся когда (если) допишут. Сиди до старости на этом костылированном монстре по имени X11.

Чушь.

Пруф!

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

>Я считаю что иксы лучше, поскольку работают достаточно быстро (на глаз тормозов не видно даже на мобильнике и даже на древнем КПК с 64 метра памяти) и обладают бОльшими возможностями. Значит в целом их архитектура удачна и надо её дальше развивать (X12), а не делать костыли с нуля.

Перевод: WORKSFORME WONTFIX STOP REOPENING :D А может ты просто слоупок. Что про qtperf то скажешь? Опять про скриптоту запоёшь?

>Я о чём и говорю. Если в иксах сейчас что-то и тормозит — это вина не иксов
В исках тормозят иксы. qtperf это не браузер и не жабаскрипт. Вывод?

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

А ещё можно иметь на сервере набор стандартных виджетов.

Нет. Дисплей должен заниматься только обработкой графики и ввода.

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

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

Давай тогда зафиксируем терминологию. Дисплей состоит из трех частей: дисплей-железо (на компьютере пользователя) дисплей-клиент (прога на компьютере пользователя, рисующая пиксели на ) и дисплей-сервер (бизнес-логика). Под просто «клиентом» пусть проходить приложение.

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

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

Скорость отрисовки программы на Qt зависит от кривизны рук программиста. О чем выше и говорилось.

Когда ты меняешь бэкенд, не трогая остального кода и видишь разницу в производительности до десяти раз... Криворукость прикладного программиста тут не причём. Если речь о руках разрабов бэкендов, обоснуй почему они на твой взгляд такие быдлокодеры, слабо?! Или очередное безграмотное школо-ло с завышеным ЧСВ и не хреновым ИМХО?!

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

хотят убрать высиралку буковок на экран.

Которая во фреймбуфер буквочки кажет?

Вангую баттхерт гентушнеков «пачиму я нимагу использовать фреймбуферную консоль без initramfs?!11»

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

Не надо переизобретать терминологию. В контексте иксов иксы — сервер, а всё, что на иксах рисует — клиенты. При этом клиент Х11 может быть сервером чего угодно, а сервер Х11 — клиентом (того же wayland), но это к делу не относится.

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

Сиди до старости на этом костылированном монстре по имени X11.

С удовольствием буду сидеть. Но, чует мое сердце, всякие гады и иксы закопают в конце-концов… И вообще весь линукс закопают, превратив его в бубунту.

Пруф!

Ничего, что твои «софтварные рендеры» работают через иксы?

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

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

А на страничке, которую вы же и привели, внизу

(last edited 2011-10-19 07:06:19 by AlanCoopersmith)

Вот вам и доказательство, что wayland суть X12.

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

Wayland и есть X12.

Пруф

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

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

Клиент соединяется с сервером, не наоборот.

Файрфокс соединяется с linux.org.ru, файрфокс — клиент, linux.org.ru — сервер. Таких файрфоксов у linux.org.ru много.

Файрфокс (или любая другая иксовая программа, например eclipse) соединяется с Х11, Х11 — сервер, файрфокс или любая другая иксовая программа — клиент. Таких клиентов у Х11 много.

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

Давай тогда зафиксируем терминологию.

Терминология иксов давно зафиксирована.

Дисплей-клиент - это Хромиум, дисплей-сервер - любой сервер веб-приложений.

Ты, однако, ничерта не понял опять. :} Хромиум является клиентом, по отношению к любой сетевой службе, которую ты в нём открываешь. В иксах всё наоборот. Там как раз ПРИЛОЖЕНИЕ (клиент!) устанавливает соединение с ДИСПЛЕЕМ (сервером!).

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

С удовольствием буду сидеть. Но, чует мое сердце, всякие гады и иксы закопают в конце-концов… И вообще весь линукс закопают, превратив его в бубунту.

Не обоснованное нытьё.

Ничего, что твои «софтварные рендеры» работают через иксы?

4.2 Они рендерят растровую картинку своими средствами. А иксы её уже только выводят. Но т.к. эта возможность пришита сбоку иксы делают и это отвратительно. Вяленый же задуман делать тоже самое но более эффективным способом. Учи матчасть, а потом уже сри на моем ЛОРе.

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

Ну и да, то что Х11 при этом что-то выводит на экран — побочный эффект :3

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

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

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

Ты предлагаешь переписать _все_ приложения

Нет, я предлагаю сделать X12 наконец, реализовать его и переписать тулкиты на него. Всякие Qt и GTK можно даже на винде компилировать, а значит переписывать приложения на этих тулкитах целеком не нужно.

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

А давай конкретную цитату на тему «вяленд - это X12», а то знаю я вас - умный вид делать умеете.

Вот тут нынешний ментейнер иксов разъясняет

То есть цитаты нет, а по указанной ссылке X12 даже не упоминается.

Вот вам и доказательство

То, что страницу редактировал человек, связанный с вялендом, является доказательством X12 == Wayland? Уровень аргументации вялендофилов радует, как всегда.

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

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

Я Amarok (ещё который от KDE 3.5) запускать пытался, он нормальный?

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

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

А слабо таки, наконец, сказать ЗАЧЕМ оно нужно?!

Нет, я предлагаю сделать X12 наконец, реализовать его и переписать тулкиты на него. Всякие Qt и GTK можно даже на винде компилировать, а значит переписывать приложения на этих тулкитах целеком не нужно.

Люди, которые могут это сделать и разбираются в этом, выбрали другой путь. Почему же ты считаешь что они не правы?! И раз в этом так уверен, что же не сделаешь «как нужно»?

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

Вяленд устроен так, что приложение должно само откуда-то допетрить: рисовать себя blit'ами или через какой-нибудь opengles. Llvmpipe — костыль хороший, можно не задумываясь всё 2д гнать через опенгл, но архитектурно выходит херня не лучше иксов.

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

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

Ничего, что твои «софтварные рендеры» работают через иксы?

:D

Они рисуют картинку и пересылают иксам.

Это как если бы вахтёр жаловался, что все вокруг дофига зарплату получают, а он больше всех вкалывает и заслуживает прибавки эдак $4000. А на вопрос «как же ты-то вкалываешь» ответит: так они же каждое утро мимо меня идут на работу, вот закрою им дверку вечером...

Кстати, маргиналы с векторными фидонетами видеокартами, старыми компами пентиум-два, на которых не дай бог потеряется 5% скорости или не поставится свежий софт, и прочим ненужно иначе как вахтёрами и не являются. В конце-то концов, дороже проапгрейдить 0,01 % устройств, чем вахтёрствовать над остальными 99,99% и заставлять их не делать ничего нового.

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