The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , opennews (??), 01-Фев-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


75. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Аноним (5), 03-Фев-24, 01:58 
Спасибо! Очень интересно, познавательно и просто описано!
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

80. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +1 +/
Сообщение от Zenitur (ok), 03-Фев-24, 13:30 
> Спасибо! Очень интересно, познавательно и просто описано!

Пожалуйста! Если вам интересно, добавлю ещё немного. Моим первым линуксом был KNOPPIX в 2004 году. У меня был вполне стандартный комп для того времени: Athlon XP и GeForce 4. Удивило, что можно загрузить систему, не устанавливая её на комп. А это - вполне себе альтернатива системной дискете Windows 98... Вот только NTFS не поддерживался на запись, а значит, можно попытаться восстановить систему только на разделе FAT32.

Там я увидел браузер Mozilla 5.0, плеер XMMS, KDE 3.2, гимп, опенофис... Одна из игр, которая была в комплекте, по необъяснимой причине тормозила. Игра Chromium B.S.U. обладала простенькой графикой (2D-битэмап), примерно на уровне другой игры, которая находилась на том же диске - Enigma. Однако Enigma нормально работала.

Затем я попробовал Mandrake 10.0. Раздражали шрифты с засечками на рабочем столе, а так - всё то же самое. KDE, XMMS для аудио, mplayer для видео... Познакомился с классной программой k3b - для записи дисков.

В какой-то момент я нашёл в местной локальной сети - Linux-версию одной игры. Это игра с простенькой графикой и открытым кодом. Мне было интересно запустить на своей системе - что-то стороннее. И я никак не мог пройти один уровень - там в туннеле FPS падал до 5-10. Наал искать в интернете решение проблемы - пишут "надо установить драйвер NVIDIA". И начался квест по установке драйвера...

Скачал run-файл. И что с ним дальше делать? Мышкой нажимаю - ничего не происходит... В интернете пишут: открыть командную строку и написать "sh имя_файла". Набираю - установка запускается и пишет "я вижу, у вас загружен графический сервер. Выключите его, прежде чем продолжать установку". Мне страшно! В консоли под линуксом я ещё не работал! Под досом - да...

Набираю "init 3". Набираю "sh имя_файла". Установка завершена. Набираю "init 5". Хм, вроде ничего не изменилось... Однако игра стала выдавать 100-150 FPS вместо 20-25. И игра Chromium B.S.U. внезапно тоже забегала бодренько! Так вот почему она тормозила... Она использовала OpenGL, который всё это время был программным. А Enigma и Frozen Bubble не использовали.

Оказалось, что драйвер NVIDIA не предустанавливается в дистрибутив Linux. Причина: законодательство США. Однако существует такая штука, как национальные дистрибутивы Linux. Alt Linux и ASP Linux в России, Kurumin в Бразилии. Там драйверы с несвободной лицензией и закрытым кодом могут быть предустановлены. Mandrake по-идее тоже национальный дистрибутив (Франция), но он претендовал на популярность, а потому не включал в себя драйвер NVIDIA в стандартной поставке (однако была версия PowerPack с платными прогпраммами - там, возможно, драйвер был доступен сразу же при установке).

Мне стало интересно: как же работало 3D до этого? Оказалось, что оно работало через Mesa. Mesa - библиотека OpenGL, которая выполняет отрисовку на процессоре. Оказалось, что на сайте OpenGL нет готовых сборок библиотеки. Там лежат только спецификации, а также заголовочные файлы. Писать код библиотеки приходится производителям операционных систем. А драйвер NVIDIA стирает библиотеку libGL.so.1, которая предустановлена в систему (пакет Mesa), и устанавливает свою. Интересно получается: разработчики Mesa сделали библиотеку "под снос", которую пользователит удаляют сразу, как устанавливают систему.

После Mandrake я попробовал SUSE. Меня там удивил более крутой центр управления - YAST вместо DrakX. Ещё там был аудиоплеер Amarok, который был красивее, чем XMMS. Однако mp3 почему-то не игралось! Оказывается, на установочный CD нельзя класть не только закрытый код, но и патентованный код... Интересно, почему тогда в Mandrake mp3 играли? В общем, в SUSE нужно было подключить репозиторий Packman, а затем открыть YAST, выбрать репозиторий Packman и нажать "перевести системные пакеты на версии из этого репозитория". Несколько пакетов (libavcodec, libxine) заменялись на них же, пересобранных с "--enable-libmad". mp3 заработали.

А вот драйвер NVIDIA, который я скачал для мандрейка почему-то не ставился. Интернет говорит, что, когда выпускается новая версия ядра Linux - надо скачивать новую версию драйвера, в которой добавили поддержку нового ядра. В Мандрейке было ядро 2.6.4, в сусе - 2.6.16. Прошлый драйвер попросту не знал о существовании ядра 2.6.16, поэтому пришлось скачать заново...

Снова интересное нововведение: программа установки драйвера заверишла установку словами "Вам нужно сгенерировать конфигурационный файл /etc/X11/xorg.conf - если вы хотите, я могу сделать это прямо сейчас. Однако вы всегда можете это сделать командой nvidia-xconfig. В случае, если у вас SUSE Linux, выполните "SaX2 -m 0=nvidia". Интересно, почему SUSE требует особенного отношения? Выполнил - открылась программа по настройке видеокарт, мышек, клавиатур и тачскринов. Я выбрал просто "применить изменения".

В сусе я впервые попробовал Wine. В системе была версия 0.9.11, в то время ходила шутка, что, когда Wine достигнет версии 1.0 - наступит [censored]. Я посмотрел, какая версия Wine является последней. 0.9.30. Что ж, [censored] откладывается. Скачал, установил, и правда больше софта заработало...

На диске от журнала Linux Format мне попался диск с Kororaa 0.2. Вот треды о нём:

https://www.linux.org.ru/news/linux-general/1302351
https://www.linux.org.ru/news/linux-general/1340074
https://www.linux.org.ru/news/opensource/1659888

Загружаю. Вижу логотип NVIDIA, значит, проприетарные драйверы - мало того, что предустановлены, так ещё и автоматически настроились! Загружается рабочий стол GNOME. Непривычно - в Mandrake и SUSE я загружал GNOME только на "посмотреть". А в остальное время пользовался KDE.

В журнале пишут "потаскайте окно из стороны в сторону - оно будет желеобразным". Попробовал - действительно. "Нажмите Alt и покрутите скролл мыши - окно станет полупрозрачным". Попробовал - и правда. "Нажмите Winkey и покрутите скролл мыши - включится экранная лупа". Включилась. "Сворачивайте и разворачивайте окно - оно будет плавно сворачиваться и разворачиваться. Откройте и закройте меню - оно будет плавно появляться и исчезать". Ну и в качестве небольшого бонуса - возможность включить дождь по Shift-F9, и порисовать водой Winkey+левая кнопка мыши.

Первая мысль "а как же в фотошопе под Wine увеличивать и уменьшать изображение? В гимпе-то это делается по Ctrl, а в фотошопе по Alt". Второй вопрос: как это запустить в SUSE? Я нажал "включить XGL" - мне ответило "ваша видеокарта не поддерживается". Оказывается, нужно было установить драйвер из rpm-пакетов, а не из run-инсталлятора. Я об этом не знал. Причём не только я:

https://www.linux.org.ru/search.jsp?q=xgl+suse&range=ALL&int...

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

Затем обновление с 10.1 на 10.2. Новое ядро 2.6.18, поддержка записи на NTFS... Однако драйвер madwifi, который прекрасно собирался под 2.6.16, отказался собираться под 2.6.18. На страничке драйвера на sourceforce выложили обнову.

Потом был скандал с когда Novell и Microsoft заключили соглашения. Они касались разработки Mono (это .NET для Linux, Майкрософт помог его улучшить), OpenOffice (Майкрософт помог улучшить поддержку макросов VBA в документах Microsoft Office), Майкрософт также решил использовать SUSE на своих серверах и рабочих местах. Казалось бы, всё же хорошо, разве нет? Однако пользователей пугало сближение этих компаний. Дело в том, что Novell обладал патентами на UNIX, и если случится так, что Microsoft ими завдалеет... Будет жопа. К счастью, всё обошлось. SCO проиграла суд, а Novell успешно защитилась.

Следующим дистром выбрал Ubuntu. Версия 6.06 имела лавинообразную популярность, когда о системе, о которой раньше никто не слышал, стали говорить. Я установил версию 7.04. В журнале писали, что эта версия "разочаровывала малым количеством инноваций!". А это - на секундочку - Upstart, Jockey... Интересно, что же было в версии 6.10, что автор статьи на её фоне сказал, что этого мало...

Убунта - гном. Пришлось привыкать. Можно было поставить Kubuntu - но опять-таки, трафик не резиновый. Кстати про трафик: в этот раз установочным носителем был CD, а не DVD, поэтому предустановленных прог было мало. Я ограничился драйверами NVIDIA и madwifi, а также кодеками mp3, которые предложил мне Jockey.

Что же насчёт 3D-эффектов рабочего стола - я с удивлением узнал, что они, оказывается, называются не XGL, а Compiz! Вот это поворот! В общем, сейчас всё объясню.

Как следует из названия, XGL это X11 поверх OpenGL. Раньше OpenGL можно было запускать _внутри_ X11, например в окне. Теперь сам сервер X11 работает поверх OpenGL.

XGL делился на два компонента: Xegl и Xglx. Первый использовал EGL и позволял сделать иксы легковесными, но так и не был закончен. Сейчас вместо него - Wayland. Второй использовал GLX и являлся временным решением: рядом с XGL стартовал классический сервер X-Server. А 3D-эффекты, это Compiz, а не XGL. Но так как информации было мало, все называли эти 3D-эффекты - XGL.

В какой-то момент, разработчики прекратили разработку XGL. Причина вот: https://www.linux.org.ru/news/opensource/1035637

Разработчик из команды Fedora Team по имени Kristian Høgsberg (который потом создаст Wayland и уйдёт работать в Intel) предложил решение, как можно запустить 3D-эффекты в обычном, не патченном X-Server. Решение называется AIGLX (Accelerated Indirect GLX). https://en.wikipedia.org/wiki/AIGLX Однако существовала серьёзная проблема: AIGLX требовал для своей работы libdrm. А проприетарные драйверы с этой библиотекой не общались. Как разработчики выходили из ситуации?

NVIDIA выпустила драйвер 9625-beta с поддержкой расширения GL_EXT_texture_from_pixmap. Фактически, NVIDIA сделала свой собственный AIGLX, но без необходимости использовать libdrm (NVIDIA не использовала её по каким-то своим причинам). Причём AIGLX требовал Xorg 7.1, а NVIDIA работала даже на Xorg 6.9, фактически сделав подарок владельцам старых систем, таких как RHEL 4.

AMD продолжала использовать XGL дальше. Ради AMD, подержку XGL дотянули до Xorg 7.3. Когда же вышел драйвер Catalyst 8.8 с поддержкой AIGLX - XGL тут же выбросили из кода Xorg. Следующая версия Xorg 7.4 была уже без него.

Ну а дальше - банкротство Sun и покупка её компанией Oracle. Появление файловой системы ext4. Появление офисного пакета LibreOffice (Oracle не была заинтересована в дальнейшей разработке OpenOffice, поэтому сообщество форкнуло Go-OO - тот самый форк OpenOffice от Novell с улучшенным VBA). Появление аппаратного ускорения в Mesa (внезапно - я всегда считал, что это чисто софтварная библиотека). Об этом расскажу подробнее.

Когда я в начале текста сказал, что Mesa это чисто софтварная библиотека - я соврал. Она поддерживала аппаратное 3D, причём всё это время. Просто наиболее популярные графические карты - NVIDIA и ATi - ей не поддерживались, поэтому я не знал. Когда я только начинал осваивать Linux, интеграшек от Intel ещё не было (или я про них просто не слышал). А их драйверы использовали именно Mesa (а не свою библиотеку, как NVIDIA), которая давала им не программную, а аппаратную отрисовку.

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

На рубеже 2008-2009 годов появилась новость: R600 обзавёлся аппаратным ускорением на открытом драйвере! Для того, чтобы проверить, нужно собрать ядро из GIT, libdrm из GIT, Mesa из GIT и драйвер radeon из GIT. Я всё это сделал. Это было здорово: проприетарного драйвера нет, а 3D-ускорение есть. Впрочем, в тот момент поддержка была ещё ранняя, работало не всё, но разработка продолжалась.

У меня была проблема: после каждого обновления ядра, иксы не стартовали. Оказывается, нужно было пересобрать модуль ядра под новое ядро. Это не касалось открытых драйверов - только проприетарных. Однако как я это сделаю, если передо мной - чёрный экран? Ответ: переключиться на витруальный терминал нажатием клавиш Ctrl-Alt-F1, отредактировать /etc/X11/xorg.conf, заменив драйвер NVIDIA на nv или vesa. Первый поддерживает только 2D, а второй не поддерживает даже этого, но при этом является универсальным драйвером, выпущенным под любую видеокарту PCI, AGP или PCI-E.

А в Ubuntu 8.10 появился удобный "Безопасный режим", когда драйвер vesa включался автоматически, если что-то пошло не так.

А ещё на убунтофоруме очень не любили, когда кто-то устанавливал драйвер из run-инсталлятора. "Вы же нарушаете пакетную систему!". На форуме пубилковалась команда, которая повторно устанавливает месу (apt-get с перечислением пакетов). После чего, предлагалось устанавливать драйвер NVIDIA или AMD из пакетов.

Через некоторое время я узнал, что, при установке из run-файла, драйверы NVIDIA и AMD делают бэкап файлов, которые они затирают. Запуск инсталлятора с ключом --uninstall возвращает всё как было. Искать специальную команду для удаления драйвера NVIDIA (если вы устанавливали его при помощи инсталлятора) стало не нужно.

Ну а дальше началась гибридная графика, Bumblebee. Аппаратное ускорение VDPAU, VA-API. Компьютинг на GPU: CUDA и OpenCL. Флеш плеер с поддержкой VDPAU и CrystalHD 98% сайтов с онлайн-видео использовали именно флеш), когда энтузиаст из Уфы написал враппер, позволяющий использовать аппаратное ускорение на Intel и ATi. Написали PulseAudio, дропнули HAL, дропнули GNOME2 и KDE3, форкнули их под именами MATE и TDE. Форкнули OpenAL под названием OpenAL Soft, в котором появилась поддержка EAX на аудиокартах без поддержки оного. В том числе и под Linux. Wine 1.0, Firefox 3.0, Google Chrome, электрон, дропнули нативный скайп. Steam, Wine Staging, CSMT. Прекращение разработки Cedega. Vulkan, DXVK, Proton, Steam Deck. Андроид, Chromebook, суд Microsoft с вендорами смартфонов из-за FAT. exfat-fuse, exfat-nofuse, драйвер Paragon NTFS в ядре. Дропнули Madwifi в пользу ath5k, на основе которого создан ath9k - лучший драйвер Wi-Fi под Linux. LXC, Docker, KVM, Systemd... Впрочем, это уже совсем другая история.

Ответить | Правка | Наверх | Cообщить модератору

84. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Аноним (5), 04-Фев-24, 10:05 
Нужна так называемая майндмэп что бы было пррще понять историко-стэковую связь ))) столько разработок, столько версий...
Так получается, что вэйланд это, от части, забытая старая XGL?

Нужно было настроить на стареньком ноуте графику, и с bumblebee, получился еще тот квест, железо устаревшее, но еще могет (интел + nvidia).
В манах дебиана рекомендуется ставить все это совместно с primus примус автоматом тянет primus-vk, он завязан на vulkan, vulkan на старом железе не поддерживется, ничего не стартует, для запуска просто через шмеля требуется сторонняя библиотека, которой нет в репах, в общем нормально работает только встройка ))).
Вариант просто включить дискретку и выводить изображение с помощью настройки иксов (дискретка -> встройка -> экран) наблюдаются подлаги, а фпс очень низок в отличие от запуска на виндопсе.

Ответить | Правка | Наверх | Cообщить модератору

87. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Zenitur (ok), 04-Фев-24, 13:44 
> Нужна так называемая майндмэп что бы было пррще понять историко-стэковую связь )))

Можно просто спросить на ЛОРе. Там многие застали и многие помнят. Bumblebee был актуален в 2013 году, и многие пользовались им в Ubuntu или Mint.

> Так получается, что вэйланд это, от части, забытая старая XGL?

Получается что да. Я делал поиск на ЛОРе, упоминание XGL впервые встречается в 1999 году (если сделать поиск и отсортировать от старых к новым). Скорее всего, причина прекращения разработки в том, что трудно сохранить совместимость с тяжёлыми (как их принято называть) иксами, когда у тебя - легковесный сервер.

Другая версия: возможно, не была готова библиотека EGL, которая должна была прийти на смену библиотеке GLX. Если эта версия верна, то тут одно из двух: либо те два человека, которые делали XGL, ждали, когда будет готова EGL, и не дождались. Либо они сами же её и делали, однако им не хватило денег и сил.

Вообще, меня удивляет одна штука, появившаяся ещё в начале "нулевых" - Quartz Compositor от Apple. Я так понимаю, они нашли в списках рассылки freedesktop.org - идеи XGL и EGL, и просто их доделали. Дали денег, наняли специалистов... С другой стороны - разве Apple не презрительно воротила нос от линуксоидов? Не знаю, майкрософт - однозначно да, а вот Apple использовала FreeBSD в качестве ядра для Mac OS X, KHTML в качестве основы для WebKit, а сервер печати CUPS вообще ей и разрабатывается.

И кроме того, когда я впервые попробовал Raspberry Pi, там была папка /opt/vc/lib с файлами libGLESv2.so и libEGL.so. Портированные, как я понял, с Андроида (GPU VideoCore IV, используемый в Raspberry Pi, это чип с мобилок, разработанный Broadcom). Получается, что EGL появился на Андроиде раньше, чем в Месе (там эта библиотека появилась в версии 7.8 в 2010 году, а мобилки на андроиде появились в 2007-2008). А значит, и на iOS используется та же связка GLES2 + EGL... Столько вопросов, и так мало ответов...

Получается, что XGL + EGL вдохновили Apple создать Quartz Compositor, а он, в свою очередь, вдохновил Microsoft создать Aero, а Novell - Compiz. Потом успех iPhone привёл к появлению Android, а композитные серверы на мобилках (SurfaceFlinger на Android) вдохновили Red Hat создать Wayland... Даже по времени сходится: Wayland появился в ноябре 2008, когда андроид существовал полгода-год.

> Нужно было настроить на стареньком ноуте графику, и с bumblebee, получился еще тот квест, железо устаревшее, но еще могет (интел + nvidia).

Нужно на ЛОРе спросить. Там многие пользуются Bumblebee до сих пор, несмотря на то, что уже есть PRIME Offloading. У меня на ноуте - именно последний вариант, для него требуются довольно новые иксы (1.20.7 из PPA с патчами или 1.21). Однако NVIDIA не "засыпает" при неиспользовании: она это делает автоматически только на новых GPU типа Turing или Ambere - а у меня Kepler. Приходится вручную по инструкции с ЛОРа запускать скрипт bbswitch: https://www.linux.org.ru/articles/desktop/17315787

Ответить | Правка | Наверх | Cообщить модератору

89. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Аноним (5), 04-Фев-24, 20:10 
>>И кроме того, когда я впервые попробовал Raspberry Pi...

Хм... конспирология? )))

Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Zenitur (ok), 04-Фев-24, 23:57 
Скорее домыслы. Когда я увидел, что на Raspberry Pi есть OpenGL_ES и EGL, а на десктопном линуксе их нет - я понял, что их портировали с андроида (имена файлов без SOVER на это намекали). Как так получилось, что на десктопе EGL так и не доделали, а на мобилках он уже давно есть? Вот я и решил, что линуксоидам не хватило денег и человеко-часов работы, чтобы это доделать, а Apple и Google соответствующими деньгами располагали.
Ответить | Правка | Наверх | Cообщить модератору

102. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Zenitur (ok), 10-Фев-24, 12:43 
Раз уж я поднял тему графического стека (а людям понравилось) - напишу ещё один комментарий. И хотя новость уже ушла с Главной и коммент всё равно никто не прочитает - мне нужно сослаться на это сообщение из комментания к новости про Palemoon.

Во времена, когда актуальными версиями OpenGL были 1.5 и 2.1.2, NVIDIA не соблюдала слишком строго спецификацию OpenGL. Причём кому-то это нравилось: люди говорили, что благодаря расхождениям со стандартами, писать код под NVIDIA проще, чем под конкурентов. "Если бы это зависело от нас, мы бы выпускали свой софт только под NVIDIA". Пример высказывания от разработчика Natural Selection 2: https://www.linux.org.ru/forum/talks/10487097

А кто-то напротив, ругал NVIDIA (примеры таких высказываний есть по той же ссылке). "Мы писали код, проверяя его на NVIDIA - а AMD он не заработал! Мы подумали, что Catalyst глючит - но оказалось, что он отработал, как надо! Это NVIDIA работает неправильно, но мы-то считали такое поведение правильным!".

В то время NVIDIA доминировала на Linux, и AMD-шники (порой справедливо) считали, что в некоторых случаях их драйвер обвиняют в глюках не потому, что глюки реально были, а потому что софтину во время разработки затачивали под NVIDIA! Кто-то даже презрительно называл их библиотеку - NVIDIAGL (привет, Quasar!), подразумевая, что из-за неточного следования стандартам это уже не OpenGL, а какая-то другая библиотека.

В драйвере 180.xx, выпущенном в 2009 году, NVIDIA реализовала поддержку OpenGL 3.0. Начиная с третьей версии, соответствие спецификациям стало строгим. Предполагалось, что юзеры рано или поздно уйдут от использования OpenGL 1.x и 2.x. Таким образом, проблема решится сама собой.

В драйвере 364.xx, выпущенном в 2016 году), NVIDIA реализовала поддержку KMS и GLVND. Благодаря GLVND, иксы теперь стали работать не с одной, а с двумя библиотеками OpenGL - что сделало возможной переключаемую (гибридную) графику. Вот только ради реализации подобной фичи, этой компании пришлось удалить все несоответствия стандартам в своей библиотеке OpenGL...

Если запустить установку с ключом --help, нам покажут опции, как установить glvnd-версию драйвера (которая строго соответствует спецификации OpenGL), а как nonglvnd (которую раньше неофициально называли NVIDIA GL). В Debian сделали два пакета libgl1-nvidia-glx-glvnd и libgl1-nvidia-glx-nonglvnd на выбор.

Для чего нужен выбор? Для того, что какой-нибудь коммерческий софт (Maya или Nuke) наверняка знал об особенностях NVIDIA OpenGL, и вставлял свои "костыли" в случае использования этого драйвера... А если применить такие костыли с glvnd-версией OpenGL jn NVIDIA, софт мог просто упасть...

В качестве примера такого софта я могу привести Compiz 0.8.8: у меня GTK2-программы под ним начали закрашиваться белым и не всегда перерисовывать окно. Надеюсь, что в актуальных версиях Compiz проблема поправлена... Также я подозреваю, что самая первая версия игры Metro: Last Light (которая была выпущена для Linux ещё до переиздания Redux) перестала запускаться (хоть я и не проверял, но мне так кажется). Дело в том, что автор порта тестил её на NVIDIA GT 640M, и включение __GL_THREADING_OPTIMIZATIONS=1 (оптимизации, появившиеся уже после релиза порта) приводило к неработоспособности игры. Значит, и glvnd данный порт может воспринять так же, раз уж он такой хрупкий и нежный.

Начиная с драйвера 440.xx, nonglvnd-версии библиотеки больше нет. Всем, у кого софт порушился в процессе переазда на glvnd, давали 5 лет, чтобы это устранить. Также из драйвера были удалены файлы gl.h, glx.h и т.д., это заголовочные файлы, которые в "десятые" и "нулевые" годы позволяли собирать софт с nonglvnd-библиотекой.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

88. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Аноним (-), 04-Фев-24, 13:46 
> Так получается, что вэйланд это, от части, забытая старая XGL?

Неа, Wayland это изменение парадигм относительно Xorg. В xorg все и вся - включая bulk data - пихается в протокол дисплейного сервера, и тот от и до парсит, объединяет и выдает на экран. По задумке в Xorg были сложные операции, типа рендера фонтов или контролов. Но контролы страшны как смерть, рендер фонтов тоже, а активное рисование чего-то типа такого через центральный сервер - ставит колом всю графику в системе. Поэтому современные тулкиты типа GTK и Qt рендерят все сами в контексте программы а иксам отдают - готовый битмап. И проблема иксов в том что как плевалка битмапов они переусложненные, тормозные и кривые, а 90% кода - unused, но место занимает и майнтенанс нагружает.

В wayland через протокол делается аллокация буферов-поверхностей и параметров этого. После получения региона, апликуха работает с этим грубо говоря напрямую. Основной поток данных не врапается в протокол - и не предмет парсинга парсером. Это просто пишется в аллоцированый surface как запись в регион памяти. Это вообще не дисплейный сервер как таковой. Согласование регионов для рендера.

Surface в принципе может быть и хардварным. У современных контроллеров дисплея - более одного "surface". И есть более специализированые, например, хардварный оверлей для быстрого вывода видео. Архитектура как у вэйланда лучше маппится на такие хардварные реалии. Xorg такими концепциями не оперирует, да и с таймингами операций у него вечно проблемы.

> Нужно было настроить на стареньком ноуте графику, и с bumblebee, получился еще
> тот квест, железо устаревшее, но еще могет (интел + nvidia).

Нвидия стоит здорово особняком. Им в ядре показали чисто технический фак, за некооперативность, и они сами реимплементят подсистему DRM/KMS. Со всеми вытекающими оттуда багами и глюками. Это то что нвидия получила за стояние особняком. Поэтому с ними можно хлебнуть горя а разработчики линуха нвидию терпеть не могут.

Сейчас вроде бы нвидия частично пересмотрела подходы - но они нормально в рабочие процессы не интегрированы и в этом очень невыгодно отстают от амд, интел и даже мелких GPU типа mali каких.

GLX - вообще так, экстеншн Xorg для согласования параметров окна для non-xorg программ, типа какой-нибудь игры работающей через OpenGL и т.п.. В этом случае основной поток данных в GPU после Mesa идет через libdrm какой, это отдельный клиент подсистемы DRM/KMS, а иксы вообще не у дел - кроме вот начального согласования параметров окна, да может еще чего по мелочи. Поэтому и работает быстро - xorg сам по себе знатный тормоз.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

90. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "  +/
Сообщение от Аноним (5), 04-Фев-24, 20:11 
>>Нвидия стоит здорово особняком.

А как с nouveau дела обстоят? Там совсем караул, или для старых карт норм поддержка стала?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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