Mesa 21.1 решает проблему Gallium Nine (32-bit Games)

Mesa — это свободная реализация графических API OpenGL и Vulkan с открытым исходным кодом, и других спецификаций.

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

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

Gallium Nine до сих пор используется старыми аппаратными средствами у которых отсутствует поддержка Vulkan, где DXVK не поддерживается. Gallium Nine также, как правило, работает лучше, чем использование Wine Direct3D 9 в пути к OpenGL-коду, хотя использование "Nine" требует наличия исправленной версии Wine. 

Одной из затяжных ошибок с Gallium Nine, проблемы с памятью при запуске 32-битных игр: ошибки с памятью, вторичные ошибки с памятью или повышенное потребление памяти при запуске без Nine, были обычны для широкого круга популярных игр D3D9 при запуске 32-битных сборок. Но с обновлением кода Mesa 21.1-devel проблемы должны быть решены. 

Файлы в формате memfd являются особенностью ядра linux. Они позволяют выделить файл, хранящийся в оперативной памяти и видимые только приложению. Мы можем отображать/отмечать части файла по мере необходимости. Когда порция отображается, она занимает пространство виртуальной памяти. Файл хранится в оперативной памяти, поэтому скорость доступа к нему такая же, как и к обычной оперативной памяти. В основном вместо того, чтобы использовать malloc(), мы создаем файл memfd и отображаем его. Когда данные, кажется, больше не доступны, мы можем распечатать memfd файл. Если данные нужны, то файл memfd снова картируется (от слова карта). Этот трюк позволяет выделить более 4 Гб на 32-х битных приложениях, при этом сокращая использование виртуальной памяти. 

Трюк с MEMFD должен уменьшить использование текстур в виртуальной памяти и, в конечном счете, позволить большему количеству 32-битных Direct3D 9 игр теперь счастливо работать с Mesa's Nine. Это дополнение добавляет некоторые накладные расходы для всей системы. Обработка памяти в Nine коде не влияет на поведение 64-битного программного обеспечения.

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


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

 

Последние материалы