Mesa 3D
Mesa 3D | |
---|---|
Basisdaten
| |
Hauptentwickler | VMware (bisher Tungsten Graphics)[1] |
Entwickler | Brian Paul |
Erscheinungsjahr | Februar 1995[2] |
Aktuelle Version | 12.0.3 (15. September 2016[3]) |
Betriebssystem | Unix-ähnlich, BSD, Linux |
Programmiersprache | C, Assembler[4] |
Kategorie | Grafikbibliothek |
Lizenz | MIT-Lizenz |
mesa3d.org |
Mesa 3D ist eine freie Grafikbibliothek, die die OpenGL-Spezifikation umsetzt und auf vielen Betriebssystemen wie Linux, AmigaOS3, AmigaOS4, SkyOS, Haiku, ZETA und BSD genutzt wird, um OpenGL-Funktionalität zu implementieren. Hardwarebeschleunigte 3D-Grafik ist durch die Kombination mit der Direct Rendering Infrastructure möglich. Die Quellen der Mesa-Bibliothek stehen unter der MIT-Lizenz.
Geschichte
Im August 1993 begann Brian Paul mit der Entwicklung einer Grafikbibliothek, die zu der damals neuen OpenGL-Programmierschnittstelle kompatibel sein sollte. Im November 1994 erhielt er die Genehmigung von SGI, Mesa zu veröffentlichen, und im Februar 1995 erschien Mesa 1.0. OpenGL war bis zu diesem Zeitpunkt noch nicht weitreichend verfügbar, und viele Entwickler kamen durch Mesa mit OpenGL in Kontakt. Im Oktober 1996 erschien Mesa 2.0, welches OpenGL 1.1 unterstützte. Die Version 2.2, die im März 1998 erschien, unterstützt die Hardwarebeschleunigung via 3dfx-Glide.
Die am 22. Juni 2007 veröffentlichte Version 7.0 unterstützt erstmals OpenGL 2.1.
Mit der Veröffentlichung der Version 8.0 am 9. Februar 2012 wird die OpenGL-3.0-Spezifikation unterstützt.[5] Mit der Version 9.0 am 8. Oktober 2012 kam die Unterstützung für OpenGL 3.1 hinzu.[6] Seit der Version 10.0 aus dem Jahr 2013 wird OpenGL 3.3 unterstützt.[7]
Mesa 11.x enthält alle Erweiterungen bis OpenGL 4.1 vollständig sowie den Großteil von OpenGL 4.2 bis 4.5.[8] Seit Mesa 12 implementieren die Treiber für neuere AMD-, Nvidia und Intel-Grafikchips OpenGL 4.3 vollständig. Bis auf eine Erweiterung aus OpenGL 4.4 unterstützt der Intel-Treiber sogar bereits alles für OpenGL 4.5.[9] Zusätzlich enthält Mesa 12 einen Vulkan-Treiber für Intel-Chips ab der Ivy Bridge-Generation.
Dazu unterstützt ein neuer Software-Treiber für CPU-Cluster mit Namen "OpenSWR" (Open Software Rasterizer) OpenGL 3.1+.[10] OpenSWR setzt auf LLVMpipe auf und skaliert dabei mit der Rechenleistung sehr gut und ist für große Datensätze gedacht wie sie in numerischen Simulationen vorkommen. Im Vergleich zu LLVMpipe wurden schon Beschleunigungen von Faktor 29 bis 51 erreicht mit Mesa 10.5.1 im Alpha-2-Status im Jahr 2015.[11] In Mesa wird er mit "GALLIUM_DRIVER=swr" eingeschaltet.
Softwarestufen der Mesa-API mit Bugfixes
OpenGL 1.2+ | 3.5 |
OpenGL 1.3+ | 4.0.4 |
OpenGL 1.4+ | 5.0.2 |
OpenGL 1.5+ | 6.0.1 |
OpenGL 2.1+ | 6.5.3, 7.0.4, 7.4.4, 7.5.2, 7.6.1, 7.7.1, 7.8.2, 7.9.2, 7.10.3, 7.11.2 |
OpenGL 3.0+ (ES 2.0) | 8.0.5 |
OpenGL 3.1+ (ES 2.0) | 9.0.3, 9.1.7, 9.2.5 |
OpenGL 3.3+ (ES 3.0) | 10.0.5, 10.1.6, 10.2.9, 10.3.7, 10.4.7, 10.5.9, 10.6.9 |
OpenGL 4.1+ (ES 3.0+) | 11.0.9, 11.1.4, 11.2.2 (Bugfixes) |
OpenGL 4.3+ (ES 3.1+) | 12.0.3 (aktuell) |
OpenGL 4.5 (ES 3.2) | 13.0 (in Entwicklung, Ende Okt. 2016 erwartet) |
Die Zweige der jeweiligen Treiber unterstützen diese Stufen oft erst in späteren Versionen. Deshalb sollte möglichst eine aktuelle Version passend zum System und der Hardware installiert sein, um Limitierungen und Fehlern aus dem Weg zu gehen und um die Leistung zu maximieren.
Aktuelle Grafikkarten sind oft durch fehlende Informationen wie zum Beispiel zum Powermanagement in ihrer Leistung limitiert. Später stehen diese oft nach Jahren zur Verfügung nach Verkaufsende der Baureihe. So ist eine NVIDIA GTX 680 (Kepler) bis zu 10-mal schneller in Mesa 12.0 als neuere Karten der eigentlich schnelleren Maxwell-Architektur.[12]
Mesa unterstützt seit Version 8 OpenGL ES 1.1 und 2.0 aufsetzend auf EGL 1.4 [13]. Ab Mesa 11 sind EGL 1.5 und OpenGL ES 3.0 möglich. Mesa 12 unterstützt hier voll Version ES 3.0 und 3.1. Version 3.2 wird in Mesa 13.0 erstmals komplett zur Verfügung stehen (siehe mesamatrix). In Android und anderen Systemen sind EGL und OpenGL ES wichtige Bestandteile der Grafiksoftware.
Softwarearchitektur
Implementierte APIs
Das Mesa 3D-Projekt beinhaltet und pflegt auch Implementierungen von diversen Programmierschnittstellen für die Hardware-beschleunigte Rasterung:
- OpenGL
- OpenGL ES
- GLX
- EGL
- OpenVG (seit Version 10.6 nicht mehr vorhanden)
- Glide (überholt)
- Vulkan (1.0: Intel ab Version 12, AMD mit RADV ab Version 13)
- OpenCL (1.0 und 1.1 in Entwicklung in GalliumCompute)[14]
Das ebenfalls unter einer freien Lizenz entwickelte Wine-Projekt beinhaltet eine Implementierung von Microsofts Direct3D Version 9. Diese kann entweder unter Zuhilfenahme einer Übersetzung von Direct3D-Calls auf OpenGL-Calls genutzt werden, oder aber seit der Veröffentlichung des Gallium3D-State-Trackers auch für Direct3D 9 direkt.
Siehe auch
Weblinks
- Offizielle Webpräsenz (englisch)
- Wiki zu Mesa 3D und DRI auf freedesktop.org (englisch)
- Primäres Downloadarchiv von freedesktop.org
Einzelnachweise
- ↑ VMware's year end acquisition of Tungsten Graphics (englisch) – Artikel bei InfoWorld, vom 16. Dezember 2008
- ↑ Project History. (abgerufen am 11. März 2021).
- ↑ Release-Ankündigung: Mesa 12.0.3
- ↑ Mesa Languages Page (englisch) – Seite bei Open Hub; Stand: 20. Mai 2015
- ↑ Mesa 8.0 Release Notes (englisch)
- ↑ Mesa 9.0 Release Notes (englisch)
- ↑ Mesa 10.0 Release Notes (englisch)
- ↑ Mesa 11.2.2 Release Notes (englisch)
- ↑ glxinfo
- ↑ Mesamatrix
- ↑ Paraview and OpenSWR
- ↑ Nouveau Kepler vs. Maxwell Performance On Linux 4.6 + Mesa 11.3-dev
- ↑ http://mesa3d.org/opengles.html
- ↑ https://dri.freedesktop.org/wiki/GalliumCompute/