The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз Mesa 20.1.0, свободной реализации OpenGL и Vulkan "
Отправлено Аноним, 29-Май-20 00:33 
Давай начнём дискуссию. Я расскажу, как я вижу картину, а ты, если не согласен, поправляй.

В 80-е появилась компания Silicon Graphics, которая делала аппаратные 3D-ускорители. Их рендер-фермы стоили десятки и сотни тысяч долларов и работали на UNIX. Также были рабочие станции, чтобы собственно моделировать. Они тоже работали на UNIX. Также требовалось купить много программного обеспечения от сторонних компаний, которое в сумме могло стоить примеино как сам компьютер.

Для работы ПО с аппаратным ускорителем был API IrisGL. Работало так: приложение-IrisGL-железо. Это на рендер-ферме, на которой нет задчаи выводить изображение на экран. На рабочей станции, IrisGL общался одновременно и с приложением, и с X11 для вывода картинки на экран. Между X11 и IrisGL был посредник - GLX. Связка OpenGL-GLX-X11 описана в книге OpenGL Green Book https://images-na.ssl-images-amazon.com/images/I/51Z2A2YECDL...,204,203,200_.jpg

Потом наступили 90-е, был успех Терминатора 2 и других фильмов с крутым CGI.

Потом IrisGL открыли в 1992, появился OpenGL. Теперь OpenGL - не только на компьютерах Silicon Graphics, а приложению плевать, с устройством какого именно производителя работать. Очень крутая штука.

Потом Silicon Graphics помогла Microsoft написать OpenGL под Windows NT в 1994. Операционка от Microsoft не умела такую штуку, как прямой доступ к железу, в отличие от UNIX. Поэтому Doom был только под DOS, а под Windows были только пошаговые стратегии вроде SimCity. Даже видео выводить научились с трудом, и только 160x120. Поэтому без помощи "силиконов" Майкрософт бы не справился. Посредником между OpenGL и дисплейным сервером Windows стал WGL. OpenGL-WGL-Windows. The White Book: https://postimg.cc/McFB7rC2

Потом у нас начали популяризироваться Linux, FreeBSD, Solaris и Mac OS X. Во второй половине 90-х линуксоиды гоняли Quake 2 и 3 на аппаратно ускоряемом OpenGL под 3dfx и NVIDIA.

Примерно в 2000 году начал зарождаться композитинг под Mac OS X. Изначально софтварный, позже вендоры видеокарт добавили аппаратную поддержку в GeForce 2 и Radeon 7000.

Под Windows сначала сделали новый дизайн (в Windows XP он изменился впервые с 95 версии), потом стали делать Aero, композитный менеджер, который должен был войти в Windows 2003, потом отложили до ОС с кодовым именем Longhorn. Потом её отменили, и в общем релизнули в Windows Vista в 2006. Через 5 лет после Mac OS X, да.

В 2003 году начали "пилить" композитинг в линуксе. Где-то я видел статью примерно 2003-2005 года от Peter Hutterer (также известного как Who-T). Там был подробный разбор о том, как устроены "иксы", в том числе подробно остановились на композитинге. Но найти беглым гуглингом не смог. Зато нашёл от другого уважаемого человека - David Reveman: https://pdfs.semanticscholar.org/9368/241b86218362c4ccd8dd2d...

Тут стоит сказать вот что. Есть такой термин - Direct Rendering. Я всегда думал, что это как-то связано с прямым доступом к железу. Пока мне олдфаги не объяснили, что это рендеринг картинки прямо в видеокарту, минуя "иксы", и, засчёт отсутствия одного из звеньев цепи, это происходит быстрее.

Когда появилось расширение для "иксов" под названием DRI, им не захотела пользоваться NVIDIA в своих драйверах для UNIX/Linux, заявив о куче недостатков. Спустя несколько лет была выпущена DRI2, которой NVIDIA вроде пользуется. До до выпуска DRI2, в драйвере NVIDIA была своя реализация технологии Direct Rendering. Поэтому glxinfo на их карточках выдавал "Direct Rendering: yes".

Приложения, даже не использующие 3D, всё равно были вынуждены выводить изображения через OpenGL. В противном случае, никакого DRI: на NVIDIA только через libGL можно было выводить в DRI. Это сейчас можно через libdrm выводить, не используя OpenGL.

Появился XGL. Это X-Server, пропатченный таким образом, чтобы выводить всю картинку через OpenGL. Не только игры и 3D-редакторы, но и рабочий стол, панель задач, окна каких-нибудь приложений, вроде калькулятора или текстового редактора.

Потом появился DRI2. Благодаря нему, теперь любое приложение может выводить Direct Rendering, а не только OpenGL-приложение. В качестве альтернативы XGL появился AIGLX.

Даже сейчас приложения предлагают выбор, какой именно прямой вывод ты будешь использовать: libGL или libdrm? например VA-API GLX и VA-API DRM. "compton --vsync opengl" или "compton --vsync drm". Это только первые пришедшие в голову, а так вроде много что предлагает выбирать.

А когда DRI2 ещё не появился, а следовательно и AIGLX не появился - все пользовались XGL. И все говорили: это же костыль! Давайте заменим XGL на Xegl! Там вместо GLX используется EGL, и там костылей нет!"

Подробный разбор тут: https://www.linux.org.ru/news/doc/1588780?cid=1589238 И через один коммент после этого пишут "вот поэтому все ждут Xegl"

Если выполнить поиск Xegl по форуму, видно что многие его ждали. https://www.linux.org.ru/search.jsp?q=xegl&range=ALL&interva...

https://www.linux.org.ru/news/linux-general/2986543?cid=2988539 например вот в этом комменте под новостью о том, что Novell прекратила разработку XGL в пользу DRI2 + AIGLX, человек пишет "Очень плохо. Прощай Xegl.."

Мне кажется, что AIGLX (Accelerated Indirect GLX) в качества движка для композитных менеджеров появился из-за того, что Xegl всё никак не выходил, а не выходил он в свою очередь потому, что библиотеку EGL (идущую на смену GLX) всё никак не могли закончить. И только спустя несколько лет, EGL доделали, и она стала популярна... на Android (из-за чего ошибочно считается, что EGL - только для OpenGL ES. На самом деле, с обычным OpenGL она работает не хуже).

Разве правда, что EGL сделан хуже, чем GLX? Я слышал только хорошие отзывы. О том, что одна библиотека для Win/Lin/Mac/Android/iOS, а не XGL/GLX/CGL, как было раньше. И что композитинг через EGL делается легко и приятно, а в XGL/AIGLX не так.

P.S. Лично я познакомился с композитингом в линуксе в 2006 году при помощи LiveCD-системы, не требующей установки: https://www.linux.org.ru/news/linux-general/1302351 Если до этого на ЛОРе постили только скриншоты с тенями и плавным появлением/исчезанием окон с прозрачностями (XGL + xcompmgr): https://www.linux.org.ru/gallery/screenshots/1405803 То в этой системе я увидел XGL + Compiz: кубик, желеобразные окна, Zoom по Win+скролл, прозрачность окна по Alt+скролл, и изюминка: дождь по Shift-F9.

А потом, что называется, понеслась. https://www.linux.org.ru/search.jsp?q=xgl&range=TOPICS&inter...

А в зарубежном интернете в тот момент началась какая-то бурная популярность убунты 6.06 - и как я понял, именно из-за композитинга. У себя SUSE 10.1 я не смог включить его (прога для включения говорила, что у меня неподдерживаемый драйвер, хотя у меня был новейший драйвер NVIDIA), поэтому я и сам установил на второй раздел Ubuntu 7.04. Тоже пришлось помучиться: установленный из репозиториев Beryl наотрез отказался запускаться, пока я не выполнил это:

nvidia-xconfig --composite
nvidia-xconfig --allow-glx-with-composite
nvidia-xconfig --render-accel
nvidia-xconfig --add-argb-glx-visuals

А в Ubuntu 7.10 уже был Compiz Fusion и драйвер NVIDIA 100.14.19, в котором всё включили по умолчанию, и настраивать ничего не нужно.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру