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)

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

И? Выражайся яснее.

Микроядро во все поля.

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

пруф или не было. Не забывай, что QNX - это RTOS реального времени и там важна не мифическая «производительность», а вполне конкретное время обработки события. При таких раскладах про виртуальную память вполне можно сказать что «не нужно», а то и «вредно».

В основном, существующие ОС всех устраивают. Но, если смотреть внимательно, увидишь Cyclone, BitC, Singularity, House.

Про Singularity знаю, про остальные посмотрю. Тем не менее, ЕМНИП та же singularity вполне себе реализует концепцию микроядра. Так что сказать, что это новое слово именно в построении принципиально иного вида операционок - ИМХО нельзя.

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

cairo-drm-radeon уверенно гуглится. но вот в чем беда: не предоставляет libdrm унифицированного api. потому кайрописцам приходится хардкодить команды gpu

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

Тащем, за десктопами и серверами жизнь есть и жизнь эта весьма активна, чего «уверенные пользователи ПК и админы локалхоста» не видят и видеть не хотят.

Ну да. И эта жизнь показывает, что у каждой ОС есть сфера применения. То, что сразу разрабатывали под микроконтроллеры — юзается на них. То, что делали для десктопов (или воркстейшнов, на худой конец — эмуляторы терминалов) — на десктопах.

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

MS первыми их стандартизировали.

Это была очень хреновая стандартизация. Шейдеры писались на ассемблероподобном языке, причём существовало несколько несовместимых реализаций под разное железо.

важно кто сделал их юзабельными. это сделал микрософт

Это сделала nvidia, создав Cg. Который у них позаимствовал M$, обозвав HLSL. (Я немного утрирую, но по сути - так.)

Опять же, ARB тупо просрало все полимеры. Само. Своими сраными ручками.

В котором тусовалась M$, тормозя развитие OpenGL, а так же кинув всех с проектом-обманкой фаренгейт. Вы, конечно, имеете право считать такое поведение нормальным и одобрять. Только жить тогда следует где-нибудь в Сомали. Там больше единомышленников найдёте.

Хватит жить прошлым.

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

Поймите уже простую ведь: сейчас графику рисуют НАПРЯМУЮ.

Поймите простую вещь: это НЕВОЗМОЖНО. В многозадачной системе ни один процесс не получает монопольный доступ к железу. А GUI не получает даже того, что в ранних DirectX называлось «монопольный доступ», т.е. с минимальной прослойкой. Собственно одной из причин провала Vista было узкое место в оконном менеджере в процессе композиции окон, приводившей к тормозам.

Все бенчмарки qt и кайры вопиют

Бенчмарк понятие синтетическое. Визуально в моей гномощели ничего не тормозит. Впрочем, как я сказал - я не собираюсь обсуждать конкретно X.

atrus ★★★★★
()
Последнее исправление: atrus (всего исправлений: 1)
Ответ на: комментарий от x3al

При таком отношении можно сказать что на десктопах линукс должен сдохнуть и остаться только на серверах и в embedded. А для десктопов есть семёрочка максимальная.

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

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

Так пользуйтесь DRM. Еще, для примера Андроид имеет нормальный интерфейс к GPU ? Чем не линукс ?!

ef37 ★★
()

Вопрос: кому нужна высокая скорость отрисовки графики? Ответ: игроманам. Дальше все само собой становится понятно.

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

Выражайся яснее.

Микроядро во все поля.

Спасибо, Кэп.

ЕМНИП та же singularity вполне себе реализует концепцию микроядра.

В Singularity всё (то есть вообще всё) работает в едином адресном пространстве.

сказать, что это новое слово именно в построении принципиально иного вида операционок - ИМХО нельзя.

Не говори. Я вот не говорю.

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

Это была очень хреновая стандартизация. Шейдеры писались на ассемблероподобном языке

OpenGL Assembly Language is a low-level shading language. It was created by the OpenGL ARB to standardize GPU instructions controlling the hardware graphics pipeline.(С)педивикия

В котором тусовалась M$, тормозя развитие OpenGL

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

Только жить тогда следует где-нибудь в Сомали.

линуксоиды и так живут «в сомали» ибо еле одолевают 1% десктопов.

Поймите простую вещь: это НЕВОЗМОЖНО

что ж вы все такие прямые как полено. Драйвер из юзерспейса посылает команды в минипорт, те по дороге проходят через шедулер, предоставляемый виндой, а потом всё, в ringbuffer. На подходе DXGI1.2 где будет(т.е. микрософт требует под угрозой анальной кары) preemption. и путь до железа станет еще короче. А в линухе почему-то сперва посылают в иксы.

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

А в линухе почему-то сперва посылают в иксы.

Только в случае indirect opengl. Если мы говорим не про игрушки, а про тырфейс, то тут вообще пофиг, потому как формочка, которую Вася Пупкин накидал в вижулбейсике, даже в самой распоследней восьмёрочке не будет хардварно ускоренной.

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

Дык, если можно будет в из-под waylandа пускать полноценные иксы, то никуда иксовые плюшки не денутся, так ведь?

Rakot ★★
()

сколько тут, однако, специалистов...

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

И приложения все иксовые юзать? Ну и нахрен тогда этот вяленд нужен, если все костыли иксов останутся вместе с нами еще на 20 лет?

geekless ★★
()

И вообще, зачем интерфейсу хардварное ускорение? В пальмос (да и к слову, в древних mac os) ничего не тормозило на софтварной отрисовке на m68k процессорах с считанными мегагерцами.

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

Что интересно, в мак ос и сейчас при софтварной отрисовке с тенями и прочим композитингом ничего не тормозит.

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

У нас в теории есть llvmpipe, который сможет софтварно рисовать хоть компизокубики. Но блин, на древних гуёвых осях всё нормально было на более чем в 100 раз более слабом железе.

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

Зачем же все-то? Если нужна сетевая прозрачность, то для неё можно и иксы запустить.
В любом случае с разработкой иксов творится что-то неладное. Когда David Airlie запостил свои патчи для включения в X-сервер 1.13, не нашлось даже человека, который бы их просмотрел. Точнее на это ушло много времени. Плюс пассивность Паккарда. Тут и без вяленого иксы могут загнуться...
Статистика по коммитам в Х-сервер, фороникс, да.

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

В теории есть...

Игры-то тоже раньше не тормозили. Помню, в дюка играл на четверке, — летало.

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

Зачем же все-то? Если нужна сетевая прозрачность, то для неё можно и иксы запустить.

Мне не нужна сетевая прозрачность. Мне как разработчику нужны 2 фичи, которые я выше называл. В вяленде их нет.

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

OpenGL Assembly Language

Там был DirectX Asm. ;-)

Драйвер из юзерспейса

О, как прогресс шагнул. Я и не знал, что приложения под вендой теперь сразу драйвер вызывают. :) P.S. Про indirect уже сказали.

ибо еле одолевают 1% десктопов

Это сильно зависит от точки зрения. Вон, по мнению окупайцев с уолл-стрит 1% населения живут даже очень не плохо. :) К тому же, с точными цифрами можете пройти куда-нибудь на винфак. А то, знаем мы эти подсчёты... По заказу M$, на деньги M$, при содейтсвии специалистов M$ было проведено независимое исследование. :)

дядя, ты не в сказку попал, это жизнь

Дооо, как страшно жить. Плевать. Вчера они поимели, завтра их так же кто-нибудь.

M$ уже ухитрились пролюбить мобильный рынок, а десктопы то уже и не столь важны. И их попадание туда теперь не в категории «когда», а в категории «если». Чем им поможет их прямой хэ, когда у серьёзных конкурентов OpenGL во все поля и что они предложат для web, в том числе и мобильного?

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

во все поля и что они предложат для web, в том числе и мобильного

Переведут IE на webkit? Это же просто счастье будет.

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

При таком отношении можно сказать что на десктопах линукс должен сдохнуть

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

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

даже в самой распоследней восьмёрочке не будет хардварно ускоренной.

вы дураки и не лечитесь. отрисовка 2д-окон ускоряется еще со времен 95й винды. 486й с тупой vga тормозил неимоверно в сравнении с той же s3triov64

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

часть команд идет в драйвер. а часть не менее важных команд, связанных с созданием surfaceов идет в иксы.

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

Как там тулкитчики вместе с вейландовцами перехерачат алгоритмы отрисовки, мне вообще по барабану. Самые грязные интимные хаки верните назад

fixed

И да, хаки суть порочный круг:

1) Программист занимает свою голову иксопроблемами и не имеет моральных сил на что-либо полезное. А если и захочет делать более качественное встраивание одного окна в другое - придётся ещё раз окунутся в иксопроблемы. Да ещё и коллеги, ранее уже в**авшие говна поимевшие проблем, испытают боли и накричат на беднягу. Вызывает проблему №2.

2) Все занимаются иксопроблемами и рогаликами и никто не упрощает работу с IPC или создание таких виджетов, до которых раньше ещё никто не додумался (не путайте с интерфейсом а-ля «я дизайнер» Васи Репина). Вот и имеем, что полноценное встраивание одного окна в другое (а не иксохак, который только области экрана сливает) есть только в KDE, а интерфейс Blender, сделанный на opengl, один из самых приятных. Вызывает проблему №3.

3) Интерфейсы настолько хреновые (в скайп версии 2 не было закладок), что для исправления хотя бы 5% его проблем используют иксовые хаки. Интерфейсы зажаты рамками тулкитов, которые зажаты рамками иксов. Как в Qt сделать тултип с уголком? В JQuery можно! Вызывает проблему №4

4) Все боятся исследовать, боятся изучать новое (200 старниц мануалов, все 200 не читал ни один из авторов этих страниц). Админы, больше всех пострадавшая и самая испорченная современным IT группа людей, решают судьбу линуксов. Вызывает проблему №1.

P.S. тултип с уголком

<^^^^^^^^^^^\
 |  привет  |
 \__________/

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

полноценное встраивание одного окна в другое

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

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

К слову, тултип с уголком очень легко делается

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

Б) в opengl'ных сценах. Т.е. opengl дал людям самим формировать очередь вершин, решать, будут ли они упакованы в vertex buffer, в нём вручную надо задавать сглаживание. Но он работает одинаково везде, кроме линуксовых дров и редких случаев типа неявных преобразований типов в GLSL от nvidia. С ним вы занимаетесь проблемами рисования, а не проблемами API рисования - и потребитель говорит своё веское слово! Дети играют в игры с крутыми интерфейсами, а не используют образовательные программы, фантазия авторов которых не продвинулась далее стандартных виджетов, мелких флажочков без подсказок о том, что они делают и сухого текста / рисуночков для дибилов.

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

[много бесполезных букв поскипано]

Ты вообще понял, что я сказал-то? Мои претензии к вяленду лежат не в области рендеринга. Что ты мне тут про «хаки» рассказываешь сказки? Какие в системе свойств окон есть «хаки»? Она вообще к механизму рендеринга никак не относится.

Вот и имеем, что полноценное встраивание одного окна в другое (а не иксохак, который только области экрана сливает) есть только в KDE

OLE не нужен. А без фичи, которую ты называешь «хаком» даже трей нормально не реализовать. Привет костылям через dbus.

Даже аналог плитки «метро» windows 8 можно легко и просто запилить при помощи репарентинга. Хотя конечно это не труЪ, новое поколение программиистов предпочтёт в такой ситуации изобрести собственный стек библиотек на 30 мегабайт, решающий ровно ту же задачу, что написать полсотни килобайт кода с использованием XEmbed.

Как в Qt сделать тултип с уголком?

В gnome-panel были тултипы с уголком. Даже моя панель поддерживает закругленные окна. Разработчики Qt не осилили шейпы? Ну я не удивлён, они известные неосиляторы.

А теперь расскажи, какое отношение тултипы с уголком имеют к IPC.

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

Вы не поняли, что я имел ввиду под полноценным - ещё один хак сюда явно не относится

Разумеется мы не поняли, ведь ты ничего конструктивного не рассказываешь, а производишь реплики в стиле «то не торт», «это не торт».

Расскажи про полноценное встраиваивание, мы тебя внимательно послушаем.

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

кайра софтварный.

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

а ничего что этот ваш GPU есть только на 1% платформ поддерживаемых этим вашим линупсом?

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

Даже аналог плитки «метро» windows 8 можно легко и просто запилить при помощи репарентинга.

Разве что визуальный. Мелкомягкие упоролись на экономии аккумулятора. Не знаю, нафиг это на десктопе, но тут не просто новый гуй.

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

Заинька ты наш, ты этот RemoteFX пробовал? Так вот - это слайд-шоу, в отличие от того что представлено на скрине - на скрине там это _играбельнно_.

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

Заинька ты наш, ты этот RemoteFX пробовал? Так вот - это слайд-шоу, в отличие от того что представлено на скрине - на скрине там это _играбельнно_.

ВНЕЗАПНО! да. нормально работало.

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

а ничего что этот ваш GPU есть только на 1% платформ поддерживаемых этим вашим линупсом?

Иксы используется на схожем проценте платформ.

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

На той самой кваке? Или таки на какой-ибудь киношке «просто смотрел»?

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

Иксы используется на схожем проценте платформ.

у вас что то с математикой. из 100% платформ с X только 1% имеет GPU.

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

На роутырях нет X, на nas нет Х, на ведроидах нет Х. Х11 используется в основном только в убунте и в чуть менее популярных десктопных дистрибутивах.

Да, есть маки с powerpc и прочая экзотика, но её количество исчезающе мало.

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

ничего. нормальный интерфей должен быть

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

JFYI

The Wayland protocol lets you query for extensions similar to how X works, so we can add, extend and phase out extensions over time.

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

Как в Qt сделать тултип с уголком?

Как человек, который делал их, заявляю, что элементарно, Ватсон! Причем тултипы эти работали и в винде и на макоси, но приходилось колдовать с флагами для окна. В Qt явно не до конца отлажена прозрачность.

Intel

Вот тыж блин((( всю малину испортили!

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