The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , opennews, 01-Фев-24, 22:46  [смотреть все]
  • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 22:46 , 01-Фев-24 (1) +3
    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 23:01 , 01-Фев-24 (3) –15 [V]
    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 00:06 , 02-Фев-24 (4) +42 [^]
    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 01:38 , 02-Фев-24 (8) +13 [^]
      Знаю только самое начало.

      Драйвер делится на две части:

      1. Cам драйвер.
      2. Файл библиотеки OpenGL.

      Сам драйвер делится на два файла:

      1. Ядерную часть (в kernelspace) /lib/modules/2.6.32/kernel/drivers/video/nvidia.ko
      2. Юзерспейсную часть. /usr/lib/xorg/modules/drivers/nvidia_drv.so

      Интересный факт. Во времена видеокарт без 3D-ускорения, была только юзерспейсная часть. Это называется DDX-драйвер.

      Файл библиотеки OpenGL тоже делится на две части:

      1. server glx. /usr/lib/xorg/modules/extensions/libglx.so
      2. client glx. /usr/lib/libGL.so.1

      Если 3D-ускорение не работает - значит, какого-то из этих файлов нет. Проверяй вывод команды glxinfo, чтобы "Server GLX string" и "Client GLX string" были от "NVIDIA Corporation". Если нет - чини. Также проверяй файл "/var/log/Xorg.0.log".

      Интересный факт. Графический сервер X11 (X-server) общается с библиотекой OpenGL не напрямую. Между ними есть посредник в виде библиотеки GLX. Цепочка выглядит так: X11-GLX-OpenGL.

      Теперь история. OpenGL был создан компанией Silicon Graphics, которая создавала мощные рендер-фермы для компьютерной графики в кино. Рендер-ферма делилась на два компонента: сервер и клиент. Сервер представлял из себя мощный компьютер без монитора. Клиент представлял из себя обычный комп, с монитором, клавиатурой и мышкой. Назывался "рабочая станция".

      Ещё нужно было покупать кучу софта. Софт мог быть по стоимости, как сам комп.

      Собственно, авторам софта и нужно было как-то общаться с видеокарточкой. На каком-то языке. Так и появился API OpenGL. А ещё есть такая штука, как графический сервер X11. Он появился в 1987 году. Для справки, Linux появился в 1992-м.

      Во времена Pentium Pro (ноябрь 1995 года) стало понятно, что архитектура x86 теперь способна потягаться с MIPS и SPARC. В том числе и для 3D-графики. В то время набирала популярность операционная система Linux. Там использовался графический сервер XFree86. Логично, что 86, это архитектура x86, а Free, значит свободный. Значит, на серьёзных UNIX-машинах использовался какой-то другой сервер.

      В конце 1996 года вышла видеокарта 3dfx Voodoo - первый 3D-ускоритель для домашних компьютеров, получивший популярность. В начале 1997 года вышла видеокарточка nVidia Riva 128. Под неё были драйверы для Windows 95, Windows NT, Linux, FreeBSD и Solaris. Интересный факт: были драйверы даже для Windows 3.1 - правда, без поддержки 3D.

      Что интересно, первые драйверы NVIDIA были с открытым исходным кодом (что нетипично для этой компании). Для того, чтобы запустить драйверы, нужно было серьёзно пропатчить "иксы". Поиграть можно было в игру Quake II - первую коммерческую игру, которая была выпущена для Linux.

      Компания Tungsten Graphics придумала, как можно запустить 3D-ускорение под XFree86, не имея необходимости накладывать патчи. Именно они предложили, что отныне драйвер разделён на ядерный и юзерспейсный (раньше был только юзерспейсный). Для написания ядерной части драйвера, в ядре находится модуль DRI, с которым предстоит взаимодействовать вендору видеокарты в процессе написания своего драйвера.

      Однако компания NVIDIA раскритиковала DRI и сделала своё. Модуль nvidia.ko по сути даёт вожделенный Direct Rendering, но без использования DRI в ядре и libdrm в юзерспейсе.

      Считалось, что получить вожделенный DRI в XFree86 нельзя, что надо создать новый графический сервер. Однако для иксов появилось расширение DRI (одноимённое с модулем ядра), и DRI стало можно юзать в XFree86. Вот как выглядела одна из секций файла /etc/X11/XF86Config:

      Section "Module"
          Load    "glx"
          Load    "dri"
      EndSection

      А ещё она могла выглядеть вот так:

      Section "Module"
          Load    "GLcore"
          Load    "bitmap"
          Load    "dbe"
          Load    "ddc"
          Load    "dri"
          Load    "extmod"
          Load    "freetype"
          Load    "glx"
          Load    "int10"
          Load    "record"
          Load    "speedo"
          Load    "type1"
          Load    "vbe"
      EndSection

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

      В декабре 2000 года вышел дистрибутив Red Hat 7.2. Компания NVIDIA начала формировать rpm-пакеты для него и для SUSE. А также run-инсталлятор для остальных систем. Создатели тех или иных дистрибутивов Linux могли перепаковать run-инсталлятор, чтобы получить например пакет deb.

      И да, драйвер теперь проприетарный.

      Считалось, что в Red Hat проблемные иксы, которые надо патчить. А в SUSE иксы самые лучшие. Доходило даже до того, что самым беспроблемным способом настроить иксы в Red Hat - установить пакеты из SUSE. Впрочем, спустя пару лет иксы "причесали".

      А потом произошёл форк XFree86 под именем Xorg.

      В 2005 году прекращена разработка XGL - того самого нового сервера, который начали создавать в тот момент, когда считалось, что из-под "иксов" нельзя поюзать DRI. Однако при помощи XGL можно было пощупать композитинг - а это было любопытно. Поэтому поддержку XGL осуществляли до 2008 года (до тех пор, пока последний из драйверов, который не поддерживал AIGLX, не реализовал его поддержку).

      В 2008 году появился libxcb. Дело в том, что libX11 был тем ещё мучением для разработчиков программ (куда хуже WinAPI), и поэтому все использовали тулкиты - вместо того, чтобы напрямую общаться с libX11. В libxcb был потенциал.

      В 2008 году появился DRI2 - новая версия ядерного модуля. Драйверы radeon, intel и nouveau были переписаны под новый модуль (какое-то время - до 2023 года - в ядре распространялись драйверы DRI1 и DRI2. А вот в Месе поддержку DRI1 бросили ещё в 2012 году - в релизе 8.0).

      В 2008 году появился KMS - новая модель драйверов. Теперь драйвер реализовывался целиком в kernelspace, а в DDX-драйвере почти ничего не осталось. У KMS был ряд достоинств и почти не было недостатков.

      Ну и в ноябре 2008 года появился Wayland - новый графический сервер, который использует EGL вместо GLX, а также использует KMS в обязательном порядке. Также в обязательном порядке включен композитинг, а также в обязательном порядке - использование тулкитов. Wayland является более легковесным, чем X11.

      P.S. Ну что, не сильно длинно получилось?

      • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Ананий, 09:56 , 02-Фев-24 (23) +3
      • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 13:41 , 02-Фев-24 (40)
      • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 01:58 , 03-Фев-24 (75)
        • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 13:30 , 03-Фев-24 (80) +1
          > Спасибо! Очень интересно, познавательно и просто описано!

          Пожалуйста! Если вам интересно, добавлю ещё немного. Моим первым линуксом был 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... Впрочем, это уже совсем другая история.

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

              Можно просто спросить на ЛОРе. Там многие застали и многие помнят. 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

              • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 20:10 , 04-Фев-24 (89)
                • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 23:57 , 04-Фев-24 (91)
                  Скорее домыслы. Когда я увидел, что на Raspberry Pi есть OpenGL_ES и EGL, а на десктопном линуксе их нет - я понял, что их портировали с андроида (имена файлов без SOVER на это намекали). Как так получилось, что на десктопе EGL так и не доделали, а на мобилках он уже давно есть? Вот я и решил, что линуксоидам не хватило денег и человеко-часов работы, чтобы это доделать, а Apple и Google соответствующими деньгами располагали.
              • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 12:43 , 10-Фев-24 (102)
                Раз уж я поднял тему графического стека (а людям понравилось) - напишу ещё один комментарий. И хотя новость уже ушла с Главной и коммент всё равно никто не прочитает - мне нужно сослаться на это сообщение из комментания к новости про 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-библиотекой.

            • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 13:46 , 04-Фев-24 (88)
      • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Дрататуй, 04:18 , 06-Фев-24 (97) +1
        • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 11:42 , 10-Фев-24 (101)
          > Насколько мне известно, могу ошибаться, xFree86 использовался и в больших Униксах.

          Угу, я почитал описание, паишут что изначально назывался X386 (1991), потом XFree86, и стал стандартом де-факто для всех, включая промышленные Unix-машины.

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

          Парфёнова? :-)

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

          Это да. Комменты заретяются с годами. Нужно LOR Wiki возобновить.

      • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , n00by, 14:23 , 10-Фев-24 (103) +1
        • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Zenitur, 13:07 , 12-Фев-24 (104)
          > Xlib и XCB - это, грубо говоря, как блокирующие сокеты и асинхронные.
          > XCB ещё сложнее в использовании, но позволяет исключить некоторые задержки на
          > ожидание ответа сервера. Xlib сейчас реализована как обёртка над XCB.

          Буду знать. Оказывается, сложность осталась той же, а XCB, это попытка решить проблему иксов с задержками.

    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 02:11 , 02-Фев-24 (10) +1
    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 23:45 , 02-Фев-24 (72) +1
    • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 13:31 , 04-Фев-24 (86) +2
  • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 01:53 , 02-Фев-24 (9) +4 [V]
  • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 08:20 , 02-Фев-24 (15) +1
  • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 18:15 , 02-Фев-24 (66)
  • Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , Аноним, 21:06 , 02-Фев-24 (70) +2



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

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