mesa_3d
mesa_3d (zwykle nazywany po prostu Mesa) jest otwarto‑źródłowym zestawem bibliotek implementujących interfejsy graficzne OpenGL, OpenGL ES, Vulkan oraz inne standardy renderowania 3‑D. Projekt jest kluczowym elementem stosu graficznego w systemach operacyjnych typu Linux, a także w niektórych wersjach BSD i Androida.
Historia
Mesa została założona w 1993 roku przez Brian’a Paula, początkowo jako wolna implementacja specyfikacji OpenGL 1.0. Pierwsza publiczna wersja ukazała się w 1995 roku. W kolejnych latach projekt szybko rozwijał się pod auspicjami fundacji X.Org, a od 2005 roku stał się integralną częścią systemu X Window System.
Architektura
Mesa składa się z kilku warstw:
- GLU i GLUT – biblioteki pomocnicze zapewniające wysokopoziomowe funkcje.
- Gallium3D – spójny model sterownika, wprowadzony w 2008 roku, umożliwiający współdzielenie kodu pomiędzy różnymi backendami (np. DRI, Wayland).
- Backendy sprzętowe – implementacje specyficzne dla kart graficznych, m.in. radeon, nouveau, i965 oraz virgl.
Obsługiwane API
Mesa dostarcza pełną implementację następujących interfejsów:
- OpenGL – od wersji 1.0 do najnowszych OpenGL 4.6.
- OpenGL ES – wersje 1.0, 2.0, 3.0, 3.1 i 3.2.
- Vulkan – poprzez sterownik RADV (oparty na Gallium3D) oraz ANV (dla kart Intel).
- GLSL – kompilator języka cieniującego, obsługujący wiele wersji.
- OpenCL – w ograniczonym zakresie, głównie w połączeniu ze sterownikami Clover.
Rola w systemie operacyjnym
W środowiskach Linux i BSD Mesa pełni funkcję warstwy pośredniej pomiędzy aplikacjami a sterownikami sprzętowymi. Dzięki temu aplikacje korzystające z OpenGL mogą działać zarówno na kartach graficznych dedykowanych, jak i przy użyciu oprogramowania renderującego w trybie software (llvmpipe).
Licencja
Kod źródłowy Mesa jest publikowany na licencji MIT, co umożliwia swobodne użycie, modyfikację i dystrybucję zarówno w projektach otwarto‑źródłowych, jak i komercyjnych.
Powiązane projekty
- Direct Rendering Infrastructure (DRI) – interfejs umożliwiający bezpośredni dostęp do akceleratora graficznego.
- Wayland – nowoczesny protokół wyświetlania, w którym Mesa dostarcza backendy Weston i Mutter.
- X.Org Server – tradycyjne środowisko graficzne, które używa Mesa jako implementacji OpenGL.
- LLVM – wykorzystywany w kompilatorze llvmpipe oraz w optymalizacji shaderów.
- Zink – warstwa kompatybilności pozwalająca uruchamiać aplikacje OpenGL na backendzie Vulkan.
Znaczenie i wpływ
Dzięki otwartemu kodowi Mesa stała się podstawą dla wielu projektów dążących do pełnej otwartości stosu graficznego (tzw. Open Source Graphics Stack). Pozwala ona na rozwój innowacyjnych rozwiązań, takich jak Vulkan na platformach nieobsługiwanych przez producentów, oraz na wsparcie starszego sprzętu poprzez renderowanie programowe.