Mesa 3D

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Mesa, Linux i display server
Mesa 3D
Тип графическая библиотека[d], библиотека функций и библиотека на C[d]
Автор Брайан Пол[d][1]
Разработчик Intel[2], Red Hat[2], Tungsten Graphics[d][2], VMware[2], Advanced Micro Devices, Collabora[d] и Valve
Написана на C++[4], Си[5] и Язык ассемблера[5]
Операционная система Linux, FreeBSD, NetBSD, OpenBSD и Haiku
Первый выпуск август 1993[1]
Последняя версия 22.1.3[3] (29 июня 2022; 44 дня назад (2022-06-29))
Лицензия лицензия MIT[6][7]
Сайт mesa3d.org​ (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Mesa — это свободная реализация графических API OpenGL и Vulkan с открытым исходным кодом, и других спецификаций, а также набор видеодрайверов пространства пользователя для GPU AMD/ATI Radeon, Intel, Nvidia, Qualcomm.

Mesa ориентирована на обеспечение высокой производительности при работе с 3D-графикой, в том числе за счёт использования аппаратного ускорения работы с графикой, поддерживаемого графическими процессорами. Mesa, называемая также «Mesa3D», лежит в основе графического стека свободных UNIX-подобных операционных систем с открытым исходным кодом, в основном дистрибутивов GNU/Linux и дистрибутивов *BSD, так что на этих операционных системах без использования Mesa невозможно добиться работы графического интерфейса, окружения рабочего стола, современных приложений, использующих графический интерфейс, 3D-графики, в том числе игр, производительность в которых во многом зависит от развития Mesa. Поэтому для всех пользователей дистрибутивов GNU/Linux и *BSD, использующих графический интерфейс, Mesa является чрезвычайно важным компонентом их графического стека, и её регулярное обновление до самых новых версий имеет большое значение для всех пользователей свободных UNIX-подобных операционных систем.

Наиболее востребованными компонентами Mesa являются графические драйверы пространства пользователя для видеопроцессоров Intel и Radeon, которые в основном разрабатываются и финансируются компаниями Intel, AMD, Red Hat, но также и другими крупными компаниями, например, Valve из-за их заинтересованности в развитии Steam OS. Но так как в разработке программ с открытым исходным кодом может принять участие любой желающий, в разработке Mesa принимают участие все, кто заинтересован в дальнейшем развитии этого проекта, и при этом имеет возможность и желание участвовать в разработке. Например, компания Nvidia, в отличие от Intel и AMD, не способствует развитию Mesa, а вместо этого разрабатывает свой собственный проприетарный видеодрайвер с закрытым исходным кодом, включающий в себя свой собственный отдельно подключаемый видеодрайвер Linux и свои собственные реализации API OpenGL и Vulkan. Поэтому Nouveau — свободный графический драйвер с открытым исходным кодом для графических процессоров Nvidia, в отличие от драйверов для AMD/ATI Radeon и Intel GPU в основном разрабатывается усилиями сообщества и компании Red Hat, а не самого производителя графических процессоров Nvidia. Mesa реализует кросс-языковой, кросс-платформенный (в основном, для дистрибутивов BSD и GNU/Linux), стандартный API-интерфейс, нейтральный к любым поставщикам GPU, для взаимодействия с различными аппаратными драйверами для конкретных производителей GPU.

Помимо 3D-приложений, таких как, например, игры, современные менеджеры окон (X.org/Glamor или Wayland/Weston) тоже используют Vulkan/OpenGL/EGL, реализацию которых предоставляет Mesa. Поэтому это - ещё одна причина, по которой вся графика в UNIX-подобных операционных систем с открытым исходным кодом обычно проходит через Mesa.

Ранее разработка Mesa происходила на freedesktop.org, но после состоялся переезд на GitLab.org (Архивная копия от 14 февраля 2021 на Wayback Machine), где сейчас и происходит разработка. Разработка Mesa была впервые начата в августе 1993 года Брайаном Полом, который все еще активно участвует в проекте. Впоследствии Mesa была широко принята и теперь содержит многочисленные вклады различных независимых людей и представителей корпораций со всего мира, в том числе от производителей графических процессоров, входящих в Khronos Group, которые администрируют спецификации OpenGL и Vulkan. Для GNU/Linux быстрое развитие Mesa также, кроме того, частично было вызвано добровольным сбором денег на разработку.

История[править | править код]

Проект был начат в августе 1993 года Брайаном Полом (англ. Brian Paul) как простая библиотека трёхмерной графики, реализующая OpenGL API.

Версия Выпущена Комментарий
1.0 февраль 1995 первая версия библиотеки, опубликованная в интернете
2.0 октябрь 1996 реализация спецификации OpenGL 1.1
2.2 март 1997 поддержка новых видеокарт 3dfx Voodoo через библиотеку Glide
3.0 сентябрь 1998 первая общественно-доступная реализация OpenGL 1.2 API
4.0 октябрь 2001 реализация OpenGL 1.3
5.0 ноябрь 2002 реализация OpenGL 1.4
6.0 январь 2003 реализация OpenGL 1.5, а также расширений GL_ARB_vertex_program и GL_ARB_fragment_program
7.0 июнь 2007 реализация OpenGL 2.1 и OpenGL Shading Language.
7.0.3 — 7.4.4 апрель 2008 — июнь 2009 исправление ошибок, внутренние изменения
7.5 июль 2009 добавлена архитектура Gallium3D
7.5.1 — 7.10.2 сентябрь 2009 — апрель 2011 исправление ошибок, внутренние изменения
8.0 февраль 2012 реализация OpenGL 3.0, исправление ошибок и чистка кода
9.0 октябрь 2012 реализация OpenGL 3.1
10.0 декабрь 2013 реализация OpenGL 3.3
11.0 сентябрь 2015 реализация OpenGL 4.1
12.0 июль 2016 реализация OpenGL 4.3
13.0 ноябрь 2016 реализация OpenGL 4.5
17.0 февраль 2017 Новая схема нумерации версий, OpenGL 4.5(+дополнительные ARBs), OpenGL ES 3.2
17.1 10 мая 2017 Реализация новых расширений OpenGL, Vulkan, дискового кэша RadeonSL
17.2 5 сентября 2017 Реализация новых расширений Vulkan и OpenGL, начальная реализация OpenGL 4.6, значительное улучшение производительности
17.3 8 декабря 2017 Реализация новых расширений Vulkan и OpenGL, реализация дискового кэша RADV, значительное улучшение производительности

Лицензия[править | править код]

Лицензия Mesa считалась свободной, но в 2008 году возникли вопросы[8][9][10][11][12][13] насчёт небольших частей кода, распространявшихся под лицензиями SGI Free Software License B версии 1.1 и GLX Public License — они оказались несвободными.[14] 19 февраля 2008 года SGI объявила о выходе гораздо более простой и одобренной FSF и Khronos Group SGI Free Software License B версии 2.0[15], и лицензировании под ней примеры реализации OpenGL, GLX API и других расширений GLX.[16]

Реализации API[править | править код]

API Vulkan OpenCL OpenGL OpenGL ES OpenVG EGL GLX Direct3D
Версия Дата Последнее обновление 1.0
2016-02-16
2.1
2015-11-11
4.5
2014-08-11
3.2
2015-08-10
1.1
2008-12-03
1.5
2014-03-19
1.4
2005-12-16
12.0
2015-07-29
Будущая версия: 17.0 2017-03-20 17.0.2 1.0 4.5 (+ доп. ARB) 3.2 1.5 1.4 9.0c[17][18]
Текущая версия: 13.0 2016-11-01.iso.2022 13.0.6 N/A 4.5 N/A[19]
Старая поддерживаемая версия: 12.0 2016-07-08.iso.2022[20] 12.0.6 4.3[20] 3.1
Старая версия, не поддерживается: 11.2 2016-04-04.iso.2022[21] 11.2.2 N/A 4.1[22]
Старая версия, не поддерживается: 11.1 2015-12-15.iso.2022[23] 11.1.4 3.0
Старая версия, не поддерживается: 11.0 2015-09-12.iso.2022[24] 11.0.9
Старая версия, не поддерживается: 10.6 2015-06-15.iso.2022[25] 10.6.9 3.3[26] 1.4
Старая версия, не поддерживается: 10.5 2015-03-06.iso.2022[27] 10.5.9 1.1
Старая версия, не поддерживается: 10.4 2014-12-14.iso.2022[28] 10.4.7
Старая версия, не поддерживается: 10.3 2014-09-19.iso.2022[29] 10.3.7 N/A
Старая версия, не поддерживается: 10.2 2014-06-06.iso.2022[30] 10.2.9
Старая версия, не поддерживается: 10.1 2014-03-04.iso.2022[31] 10.1.6
Старая версия, не поддерживается: 10.0 2013-11-30.iso.2022[32] 10.0.5
Старая версия, не поддерживается: 9.0 2012-10-08.iso.2022 9.0.3, 9.1.7, 9.2.5 3.1[33] 2.0
Старая версия, не поддерживается: 8.0 2012-02-08.iso.2022 8.0.5 3.0
Старая версия, не поддерживается: 7.0 2007-06-22.iso.2022 7.0.4, …, 7.11.2 2.1 N/A N/A N/A
Старая версия, не поддерживается: 6.0 2004-01-06.iso.2022 6.0.1 1.5 1.3
Старая версия, не поддерживается: 5.0 2002-11-13.iso.2022 5.0.2 1.4
Старая версия, не поддерживается: 4.0 2001-10-22.iso.2022 4.0.4 1.3
Старая версия, не поддерживается: 3.0 1998-09.iso.2022 3.1, 3.2.1, 3.4.2.1 1.2
Старая версия, не поддерживается: 2.0 1996-10.iso.2022 2.6 1.1
Старая версия, не поддерживается: 1.0 1995-02.iso.2022 1.2.8 1.0
Легенда:
Старая версия, не поддерживается
Старая поддерживаемая версия
Текущая версия
Тестовая версия
Будущая версия

Примечания[править | править код]

  1. 1 2 http://www.mesa3d.org/intro.html
  2. 1 2 3 4 http://www.mesa3d.org/developers.html
  3. Mesa 22.1.3 Release Notes / 2022-06-29.
  4. https://www.openhub.net/p/mesa/analyses/latest/languages_summary
  5. 1 2 https://www.openhub.net/p/mesa
  6. https://www.mesa3d.org/license.html
  7. The mesa Open Source Project on Open Hub: Licenses Page — 2006.
  8. gNewSense Bugs : Free as in freedom | Bugs / xserver-xorg: wordy SGI license may not be free Архивировано 27 сентября 2008 года.
  9. #211765 — xorg-server: material under GLX Public License is not DFSG-free — Debian Bug report logs. Дата обращения: 19 сентября 2008. Архивировано 13 мая 2015 года.
  10. Export clauses in XFree86 licensing. Дата обращения: 19 сентября 2008. Архивировано 1 октября 2012 года.
  11. Non-free (?) GLX code under GLX Public License and SGI Free Software Licence B. Дата обращения: 19 сентября 2008. Архивировано 29 декабря 2014 года.
  12. Licensing:Main — FedoraProject. Дата обращения: 19 сентября 2008. Архивировано 22 сентября 2012 года.
  13. Various Licenses and Comments about Them — GNU Project — Free Software Foundation (FSF). Дата обращения: 12 сентября 2015. Архивировано 24 сентября 2015 года.
  14. Various Licenses and Comments about Them (англ.) (недоступная ссылка). Free Software Foundation (17 сентября 2008). Дата обращения: 20 сентября 2008. Архивировано 22 августа 2011 года.
  15. Thank you SGI, for freeing the GNU/Linux 3D desktop! (англ.) (недоступная ссылка). Free Software Foundation (19 сентября 2008). Дата обращения: 20 сентября 2008. Архивировано 24 августа 2011 года.
  16. ??? (англ.) (недоступная ссылка). SGI (19 сентября 2008). Дата обращения: 20 сентября 2008. Архивировано 24 августа 2011 года.
  17. latest patches to "nine" state tracker (4 февраля 2016). Дата обращения: 21 июля 2016. Архивировано 3 августа 2020 года.
  18. Larabel, Michael Mesa 10.4 Officially Released With Direct3D 9 State Tracker. Phoronix (14 декабря 2014). Дата обращения: 11 июля 2015. Архивировано 13 июля 2015 года.
  19. Larabel, Michael OpenVG Support Stripped From Gallium3D. Phoronix (4 марта 2015). Дата обращения: 11 июля 2015. Архивировано 13 июля 2015 года.
  20. 1 2 Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features (8 июля 2016). Дата обращения: 8 июля 2016. Архивировано 16 августа 2016 года.
  21. [Mesa-announce Mesa 11.2.0]. Дата обращения: 4 апреля 2016. Архивировано 14 апреля 2016 года.
  22. Mesa Release Notes. Дата обращения: 21 июля 2016. Архивировано 4 июня 2016 года.
  23. [Mesa-announce Mesa 11.1.0]. Дата обращения: 15 декабря 2015. Архивировано 7 марта 2016 года.
  24. [Mesa-announce Mesa 11.0.0]. Дата обращения: 26 сентября 2015. Архивировано 27 сентября 2015 года.
  25. [Mesa-announce Mesa 10.6.0]. Дата обращения: 15 июня 2015. Архивировано 9 марта 2016 года.
  26. Larabel, Michael Features To Be Found In Mesa 10.0. Phoronix (26 октября 2013). Дата обращения: 21 июля 2016. Архивировано 30 июня 2016 года.
  27. [Mesa-announce Mesa 10.5.0]. Дата обращения: 7 марта 2015. Архивировано 7 марта 2016 года.
  28. [Mesa-announce Mesa 10.4.0 released]. Дата обращения: 7 марта 2015. Архивировано 2 апреля 2015 года.
  29. [Mesa-announce Mesa 10.3 released]. Дата обращения: 7 марта 2015. Архивировано 8 марта 2016 года.
  30. [Mesa-announce Mesa 10.2 released]. Дата обращения: 7 марта 2015. Архивировано 8 марта 2016 года.
  31. [Mesa-announce Mesa 10.1 released]. Дата обращения: 7 марта 2015. Архивировано 7 марта 2016 года.
  32. [Mesa-announce Mesa 10.0 released]. Дата обращения: 7 марта 2015. Архивировано 10 марта 2016 года.
  33. Mesa 9.0 Release Notes. Mesa (8 октября 2012). Дата обращения: 11 июля 2015. Архивировано 5 июня 2015 года.

См. также[править | править код]

Ссылки[править | править код]