Mesa 3D
Mesa — это свободная реализация графических API OpenGL и Vulkan с открытым исходным кодом, и других спецификаций, а также набор видеодрайверов пространства пользователя для GPU AMD/ATI Radeon, Intel, Nvidia, Qualcomm.
Mesa ориентирована на обеспечение высокой производительности при работе с 3D-графикой, в том числе за счёт использования аппаратного ускорения работы с графикой, поддерживаемого графическими процессорами. Mesa, называемая также «Mesa3D», лежит в основе графического стека свободных UNIX-подобных операционных систем с открытым исходным кодом, в основном дистрибутивов 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 также, кроме того, частично было вызвано добровольным сбором денег на разработку.
Общие сведения
| Mesa 3D | |
|---|---|
| Тип | графическая библиотека[d], библиотека функций и библиотека на C[d] |
| Автор | Брайан Пол[d][1] |
| Разработчики | Intel[3], Red Hat[3], Tungsten Graphics[d][3], VMware[3], Advanced Micro Devices, Collabora[d], Valve, Kenneth William Graunke[d], Ian Damian Romanick[d] и Caio Marcelo de Oliveira Filho[d][4] |
| Написана на | C++[5], Си[6] и язык ассемблера[6] |
| Операционные системы | Linux, FreeBSD, NetBSD, OpenBSD и Haiku |
| Первый выпуск | август 1993[1] |
| Последняя версия | |
| Репозиторий | gitlab.freedesktop.org/m… |
| Лицензия | лицензия MIT[7][8] |
| Сайт | mesa3d.org (англ.) |
История
Проект был начат в августе 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 году возникли вопросы[9][10][11][12][13][14] насчёт небольших частей кода, распространявшихся под лицензиями SGI Free Software License B версии 1.1 и GLX Public License — они оказались несвободными.[15] 19 февраля 2008 года SGI объявила о выходе гораздо более простой и одобренной FSF и Khronos Group SGI Free Software License B версии 2.0[16], и лицензировании под ней примеры реализации OpenGL, GLX API и других расширений GLX.[17]
Реализации 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[18][19] | ||
| 13.0 | 2016-11-01.iso.2026 | 13.0.6 | N/A | 4.5 | N/A[20] | |||||
| 12.0 | 2016-07-08.iso.2026[21] | 12.0.6 | 4.3[21] | 3.1 | ||||||
| 11.2 | 2016-04-04.iso.2026[22] | 11.2.2 | N/A | 4.1[23] | ||||||
| 11.1 | 2015-12-15.iso.2026[24] | 11.1.4 | 3.0 | |||||||
| 11.0 | 2015-09-12.iso.2026[25] | 11.0.9 | ||||||||
| 10.6 | 2015-06-15.iso.2026[26] | 10.6.9 | 3.3[27] | 1.4 | ||||||
| 10.5 | 2015-03-06.iso.2026[28] | 10.5.9 | 1.1 | |||||||
| 10.4 | 2014-12-14.iso.2026[29] | 10.4.7 | ||||||||
| 10.3 | 2014-09-19.iso.2026[30] | 10.3.7 | N/A | |||||||
| 10.2 | 2014-06-06.iso.2026[31] | 10.2.9 | ||||||||
| 10.1 | 2014-03-04.iso.2026[32] | 10.1.6 | ||||||||
| 10.0 | 2013-11-30.iso.2026[33] | 10.0.5 | ||||||||
| 9.0 | 2012-10-08.iso.2026 | 9.0.3, 9.1.7, 9.2.5 | 3.1[34] | 2.0 | ||||||
| 8.0 | 2012-02-08.iso.2026 | 8.0.5 | 3.0 | |||||||
| 7.0 | 2007-06-22.iso.2026 | 7.0.4, …, 7.11.2 | 2.1 | N/A | N/A | N/A | ||||
| 6.0 | 2004-01-06.iso.2026 | 6.0.1 | 1.5 | 1.3 | ||||||
| 5.0 | 2002-11-13.iso.2026 | 5.0.2 | 1.4 | |||||||
| 4.0 | 2001-10-22.iso.2026 | 4.0.4 | 1.3 | |||||||
| 3.0 | 1998-09.iso.2026 | 3.1, 3.2.1, 3.4.2.1 | 1.2 | |||||||
| 2.0 | 1996-10.iso.2026 | 2.6 | 1.1 | |||||||
| 1.0 | 1995-02.iso.2026 | 1.2.8 | 1.0 | |||||||
Легенда: Старая версия, не поддерживается Старая поддерживаемая версия Текущая версия Будущая версия | ||||||||||
Примечания
См. также
Ссылки
- Официальный сайт (англ.)