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)
Ответ на: комментарий от Xenius

Всё равно графика через SSH тормозит даже в локальной сети

Если бы кое-кто не «рисовал как все в обход иксов», то всё было бы нормально. Хинт: mc в xterm отрисовывает в два-три раза быстрей чем в konsole (и xterm, и konsole запущены через ssh -X -C)

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

у нас есть сервер на 10.04 LTS

$ cat /proc/cpuinfo | grep cpuid | wc -l
16
$ free -m
             total       used       free     shared    buffers     cached
Mem:         40314      39355        958          0       4209      31060
-/+ buffers/cache:       4086      36228
Swap:         5004        215       4788
atop:
CPU | sys 29% | user 75% | irq 1% | idle 1263% | wait 232% |
 DSK | sdc | busy 89% | read 0 | write 1737 | avio 5 ms |
 DSK | sda | busy 88% | read 0 | write 1728 | avio 5 ms |
И всё, система колом стоит. Курсор в vim'е не ездит, по ssh'у заходит долго ну и т.д. и т.п. Это нормально?

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

Не понимаю суть разговора. Если с иксами более-менее ясно (ТОРМОЗА, предположительно), то чем некоторым не угодил терминал в ядре (который в убунте при загрузке и не видно) — не понимаю.

Ну и будто в венде такого нет.

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

Хинт: mc в xterm отрисовывает в два-три раза быстрей чем в konsole (и xterm, и konsole запущены через ssh -X -C)

Как насчёт rxvt?

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

современное приложение (обычно использует Qt, GTK, Cairo, етц) рисует растровую картинку

Вот с консерватории и начните изменения. Нефиг битмапами баловаться.

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

В линуксе много софта, отзывчивость (ведь народ в треде про производительность решил обсудить именно отзывчивость) которого особо не оптимизировали. Убунту-софтвар-центер — просто пример тормозного приложения.

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

В иксах нет, а вот в вяленом реализовать реально.

Точнее не так, точнее «в иксах это работает из коробки ибо это штатная функция, а в вяленде придется припрягать аналог VNC, и всё равно останется 1000 и 1 проблема»

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

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

И что мешает это сделать в рамках directfb?

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

Разработка вяленного идёт куда шустрее, чем решение проблем иксов...

ну и пусть себе идет, а пока кактусы есть никто не собирается

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

Проблема в тормознутости не в иксах, а в приложениях, которые в последнее время пишутся совершенно без оптимизаций и к тому же на всяких питонах вместо сишечки.

Сначала с матчастью разберись, ага, потом свои пять копеек ставляй. А пока ты гонишь откровенное 4.2.

В иксах пока самый нормальный дизайн из всего что есть.

В каком это месте?! С фига ли тогда иксы рендерят в десять раз медленнее чем бэкенд растер в Qt?

Кроме производительности есть и более важные возможности — например платформонезависимость

А где ты увидел платформозависимость в вяленом?! Привязку к DRM? Дык его уже начинают переносить потихоничку...

простота и сетевая прозрачность.

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

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

Дык реализовывай раз умный такой, посмотрим кто победит ты со своим X11-ng или вяленый, чо.

А всякие Wayland, которые не поддерживают нативную сетевую прозрачность — не нужны.

Лай дальше, а дойдёт ли караван до пункта назначения от тебя всё равно не зависит. ЗЫ кому твоя прозрачность кстати вообще нужна? И главное ЗАЧЕМ?! Боишься что не сможешь графические конфигураторы на своём быдло-бубунто сервере запускать? :D

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

Вот с консерватории и начните изменения. Нефиг битмапами баловаться.

Приходится, иксы медленно рисуют.

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

Точнее не так, точнее «в иксах это работает из коробки ибо это штатная функция, а в вяленде придется припрягать аналог VNC, и всё равно останется 1000 и 1 проблема»

Ага, вбросил, чо.

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

И всё, система колом стоит. Курсор в vim'е не ездит, по ssh'у заходит долго ну и т.д. и т.п. Это нормально?

Как говорят разработчики любого продукта «Убедитесь что проблема существует на последней версии нашего софта». Сначала протестируй это на последних ядрах (3.4), потом жалуйся.

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

В иксах нет, а вот в вяленом реализовать реально.

Пруф? А если реально — пусть вначале реализуют, а потому уже и говорят что он лучше иксов. Пока что Wayland однозначно хуже чем X.org и посему не нужен.

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

ну и пусть себе идет, а пока кактусы есть никто не собирается

Ты его ешь сидишь, ещё нахваливаешь. :D ЗЫ иксы на сегодня самая хреновая графическая система из всех имеющих широкое распространение, оно даже вендовой сливает.

erfea ★★★★★
()

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

Настолько 4.2, что даже комментировать не хочется.

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

Ну то есть дать приложению возможность повесить графику в случае чего.

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

Сначала протестируй это на последних ядрах (3.4), потом жалуйся.

Это 10.04 с последним 2.6.32 _LTS_ ядром. Новое непроверенное ядро поставить невозможно, так как, во-первых, придется перезагружать нагруженный сервер на котором работают люди, за что можно получить по шапке, а во-вторых, неизвестно какие еще глюки приедут с новым ядром.

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

DirectX имеет продуманный интерфейс, логично устроенный язык шейдеров

Ты скажи, программу, которая использует directx можно перекомпилировать так чтоб она заработала на мобильнике с MeeGo (ну или хотя бы шиндошс пхоне) без изменений в коде или с минимальными изменениями? (предположим что игра уже поддерживает сенсорный экран и низкое разрешение экрана)

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

Пруф? А если реально — пусть вначале реализуют, а потому уже и говорят что он лучше иксов.

Дык иди и реализую, тебе же нужно... разрабы заняты на текущий момент другими, более важными вещами.

Пока что Wayland однозначно хуже чем X.org и посему не нужен.

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

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

через 10 секунд после сабмита cmdbufера сработал бы watchdog

Вот из-за этого на оффтопике нельзя нормально гонять GPGPU.

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

Врет, и не краснеет!

Врёшь ты, в каждом посту 4.2. Это твоё не понимание предметной области. И даже банально отсутвие желания просто сравнить возможности иксов с другими системами редеринга. Одно голое пустое имхо, не стоящее и ломанного гроша :D

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

Можно. Данное поведение настраивается.

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

Я понимаю, но проблемы старого ядра, нельзя перекладывать на всё и на основе этого делать вывод о негодности чего-либо, ядра/Х-ов/...

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

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

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

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

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

Упомянутый выше qtperf на питоне или явскрипте?

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

Так же можно взглянуть на мобильную платформу MeeGo. Я щупал Nokia N9 и могу сказать что там всё летает, хотя процессор всего лишь одноядерный. Почему на миге приложения летают, а андроидоводы жалуются на тормоза? (для справки, там X.org)

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

и в результате всех этих «рисований без иксов» которые реализуют современные тулкиты, мы слышим крики о том что «в линупсе графика тормозит»

Вот вы одной фразой перечеркнули все свои рассуждения. Много ли толку от иксов, стандартным интерфейсом которых невозможно пользоваться - так что все пускаются в opengl и openvg? Ваша нескучная идея ограничивает большинство приложений двумя уровнями: приложение и иксы. Иксы тянут свой легаси и XMotif/XLib делать гибким не собираются. В итоге приложениям надо с нуля переделать всё, чтобы сделать малюсенькую нестандартную вещь или чуточку ускориться в узком месте. Переделка всего - занятие неприятных, и обвиняя приложения, а не иксы, в последствиях полной переделки приложений, вы просто переводите стрелки.

Но в современном мире изобретены и привлекли заслуженное внимание три уровня: API, фреймворк и приложение. Фреймворк не связан легаси (т.к. старый фреймворк никуда не денется) и может улучшаться безболезненно. API не связан сиюминутными хотелками (а система шрифтов X.org была сиюминутной хотелкой и ныне не используется). Приложение может плавно обходить недостатки платформы или даже воздействовать на фреймворк, а не плевать на дизайн/юзабилити и закрывать подобные баги как ABSOLUTELYWONTFIX

Ты клинический идиот

Если бы прошлая фраза не перечеркнула ваши рассуждения, то уж эта бы точно. Тот, кто прав, не брызжет слюной, пытаясь хоть как-то убедить оппонента.

RDP и X11 это протоколы с <...> разной идеологией <...> поскольку RDP это RDP, а X11 - это X11

fixed, инеблагодарите

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

Сейчас все устройства потребительского уровня представляют собой «kiosk». ВНЕЗАПНА?

Внезапно нет. Киоски — это только те, которые стоят на улицах и в которых недопустимо вмешательство пользователей в работу системы.

И вообще, мы же говорили о компьютерах, а не о всякой хрени типа телевизоров?

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

>Какое он вообще имеет значение?
Самое непосредственное. Мы ведь о скорости отрисовки говорим, да?

>А вот Firefox иногда тормозит, обычно при этом ругаясь на ява-скрипты.
Он тормозит и ругается всегда, иксы тут не при чём это руки авторов :}

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

Например, у медиаплеера не сможет открыть библиотеку/библиотека пуста. Логи ему даже не покажут. ;)

Ну вот увидел. Как я пойму, медиаплеер сломался (точней его библиотека), были удалены все медиа-файлы или винчестер физически отвалился? Я сразу попробую выполнить команду dmesg.

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

чем некоторым не угодил терминал в ядре (который в убунте при загрузке и не видно) — не понимаю.

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

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

Кстати на телевизорах ядерная консоль вполне доступна, обычно на жёпе устройства разъём RS232 или 3.5 jack (или ещё что-то менее дефолтное) с подписью DEBUG.

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

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

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

ВНЕЗАПНО, в случае с Qt скорость отрисовки от ЯП не зависит. Все уровни графики реализованы на крестах, включая виджеты.

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

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

Твоя проблема в том, что ты пытаешься наделить приложение искуственным интелектом. А это ненужно

Приложение не должно в принципе задумываться о том, что и в каком порядке делать. Захотело нарисовать три пиксела - нарисовало три пиксела. Захотело обновить всё - обновило всё. Единственое что от него требуется - уведомление «я начало рисовать» и «я закончило рисовать». Всё остальное должна брать на себя графическая подстсиема. В том числе опциональную конвейеризацию и т.п. - так же, как это происходит с HDD. А вызовы «я начало рисовать» и «я закончило рисовать» - это примерно как барьеры.

Но это не значит, что каждое приложение должно заботиться о каждом пикселе своего окна и растеризовать собственные векторные элементы (пиктограммы на кнопках, например) — этим должен заниматься тулкит

Этим должен заниматься графический сервер. Тот, кто отрисовывает. Потому, что именно он лучше всего и снаименьшими затратами сумеет отобразить команду.

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

Мой пост был на тему, что вот оно есть и тормоза можно пронаблюдать на крестах, безо всяких там питонов и жабаскриптов, которые были приведены для перевода стрелок. А так, да.

Deleted
()

Вот это — да, бич современных погромистов.

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

Сначала протестируй это на последних ядрах (3.4), потом жалуйся.

Только вчера на 3.2 пересчитывал хэш торрента. Загрузка процессора 10%, винта - 80%, а всё колом стоит.

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