Mesa 3D

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Mesa 3D
Basisdaten

Maintainer Community
Entwickler Brian Paul
Erscheinungsjahr Februar 1995[1]
Aktuelle Version 22.1.3[2]
(29. Juni 2022)
Betriebssystem unixartig, z. B. BSD, Linux
Programmiersprache u. a. C, C++ und Assembler[3]
Kategorie Grafikbibliothek
Lizenz MIT-Lizenz
deutschsprachig nein
mesa3d.org
Mesa DRI und Gallium3D haben unterschiedliche Modelle für Gerätetreiber; beide teilen allerdings große Mengen an freiem Quelltext
Darstellung des Linux-Grafikstacks

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[Bearbeiten | Quelltext bearbeiten]

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ützte die Hardwarebeschleunigung via 3dfx-Glide.

Die am 22. Juni 2007 veröffentlichte Version 7.0 unterstützte erstmals OpenGL 2.1.

Mit der Veröffentlichung der Version 8.0 am 9. Februar 2012 wird die OpenGL-3.0-Spezifikation unterstützt.[4] Mit der Version 9.0 vom 8. Oktober 2012 kam die Unterstützung für OpenGL 3.1 hinzu.[5] Ab der Version 10.0 aus dem Jahr 2013 wird OpenGL 3.3 unterstützt.[6]

Mesa 11.x unterstützt alle Erweiterungen bis OpenGL 4.1 vollständig sowie den Großteil von OpenGL 4.2 bis 4.5.[7]

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 alle Erweiterungen für OpenGL 4.5.[8] Zusätzlich enthält Mesa 12 einen Vulkan-Treiber für Intel-Chips ab der Ivy-Bridge-Generation. Dazu unterstützt ab Mesa 12 offiziell ein neuer Software-Treiber für CPU-Cluster mit dem Namen „OpenSWR“ (Open Software Rasterizer) OpenGL 3.1+.[9] OpenSWR setzt auf LLVMpipe auf, skaliert sehr gut mit der Rechenleistung und ist für große Datensätze gedacht, wie sie in numerischen Simulationen vorkommen. Im Vergleich zu LLVMpipe werden mit Mesa 10.5.1 im Alpha-2-Status aus dem Jahr 2015 Beschleunigungen um den Faktor 29 bis 51 erreicht.[10] In Mesa wird er mit „GALLIUM_DRIVER=swr“ eingeschaltet.

Mit Mesa 13 wird OpenGL 4.4 und 4.5 vollständig unterstützt. Intel ab Broadwell, AMD GCN und Nvidia Fermi und Kepler (Maxwell nur 4.1) unterstützen alle Erweiterungen, aber werden wegen teilweise fehlender Zertifizierung noch mit 4.3 oder 4.4 (13.0.1) angezeigt.[11][12]

In Version 17.0 (neue Zählung[13]) gibt es einige Verbesserungen (siehe Mesamatrix). Für Intel-Grafik steht bei Haswell OpenGL 4.5 (bisher 3.3, mit nur 3 fehlenden Erweiterungen in 4.0 und 4.1) und OpenGL ES 3.2 fast komplett zur Verfügung.[14][15] Die Zertifizierung von OpenGL 4.4 für NVIDIA Fermi und Kepler, sowie für OpenGL 4.5 für AMD GCN steht ebenfalls zur Verfügung, nachdem diese in Mesa 13.0.x noch nicht enthalten war. OpenGL 4.3 steht für NVIDIA Maxwell und Pascal (GM107+) zur Verfügung.[16] Jedoch nur Maxwell 1 (GeForce GTX 750 und andere mit GM1xx) profitiert von starken Gewinnen durch Erhöhung der Taktfrequenzen unter Last. Weiterhin leidet Maxwell 2 (GeForce 980 und andere mit GM2xx) unter dieser fehlenden Regelung so stark, dass nur 1/3 bis 1/2 der möglichen Leistung mit Mesa verfügbar ist.[17]

Khronos stellt seine CTS (test Suite) für OpenGL 4.4, 4.5 und OpenGL ES 3.0+ nun als Open Source zur Verfügung. Damit sind Tests für alle Entwickler kostenlos verfügbar. Für Mesa 13 und 17 sind nach bestandenen Tests für einige Module wie Nouveau höhere OpenGL-Stufen möglich.[18]

Version 17.1.0 ist seit 10. Mai 2017 verfügbar und enthält einige Verbesserungen wie OpenGL 4.2 für Intel Ivy Bridge (für Gen 7 bisher 3.3) und weiterer Beschleunigung für Nvidia Maxwell und Pascal, sowie für Vulkan mit verbessertem RADV und ANV.[19][20]

In Version 17.2 werden Intel und AMD zum Teil stark in 3D-Spielen beschleunigt. Dazu werden einige OpenGL 4.6-Erweiterungen unterstützt. Für NVIDIA ist Nouveau weiterhin nur 2. Wahl, weil Hardwareinformationen zur Beschleunigung, wie sie den Nvidia-Entwicklern der originalen Treibern zur Verfügung stehen, nicht frei verfügbar sind.[21] Die Tests zu OpenGL 4.5 waren für Kepler zu 98,6 % erfolgreich.[22]

In Version 17.3 wurden einige Erweiterungen für OpenGL 4.6 integriert, so dass in der nächsten Version mit Spir-V-Unterstützung OpenGL 4.6 komplett unterstützt würde. Beim Vulkan-Treiber wurden deutliche Fortschritte für Radeon-Grafikkarten erreicht und die Unterstützung einer wichtigen Kompressionstechnik ist neu. Darüber hinaus gibt es viele Optimierungen bei den OpenGL-Treibern für die GPUs von AMD und Intel. RADV als Vulkan-Treiber für AMD erfüllt nun vollständig den Khronos-Test.[21][23][24]

In Version 18.0 wurden weitere Erweiterungen für OpenGL fertiggestellt, um die Unterstützung von OpenGL 4.6 zu komplettieren. Es fehlt weiterhin Spir-V. Vulkan 1.0 wurde weiter ausgebaut und auf eine neue Stufe optimiert. Nvidia Nouveau unterstützt auch wegen einiger Fehler in Mesa, die zu Testfehlern in OpenGL 4.4 und 4.5 in den Tests führen, offiziell nur OpenGL 4.3. Die Intel und AMD-Treiber wie RadeonSI unterstützen OpenGL 4.5 mit den gleichen Fehlern. Der AMD R600g-Treiber für ältere AMD Terascale-Karten ist auf dem Weg OpenGL 4.5 zu unterstützen und übertrifft damit AMD mit maximal OpenGL 4.4 mit seinen offiziellen Treibern. Dabei bleiben R600 und Evergreen wegen fehlender FP64-Einheiten auf maximal OpenGL 4.3 limitiert. Intel Cannon Lake wird nun auch unterstützt und damit auch die neueste Hardware von Intel. Dazu wurde das neue Build-System Meson als neuer Standard freigeschaltet.[25]

In Version 18.1 steht Vulkan 1.1 für Intel ab Sky Lake (ANV) und AMD GCN (RADV) zur Verfügung. Dabei muss natürlich die Hardware alle Erweiterungen unterstützen. Für AMD GCN der 1. und 2. Generation (GCN 1.0 und 1.1) wurde dies bei AMD in den eigenen Windows-Treibern und Conformance Tests bei Khronos verneint. Intel stellt ab Sky Lake Vulkan 1.1 zur Verfügung. AMD RX 550 und RX Vega 64 sind dort schon mit RADV für Vulkan 1.1 registriert.[26]

In Version 18.2 stehen viele Verbesserungen zur Verfügung. OpenGL 4.6 vollständig zu unterstützen wurde noch nicht erreicht. Der neue Soft-Treiber VIRGL unterstützt nun OpenGL 4.3 und OpenGL ES 3.2. RadeonSI unterstützt nun ebenfalls OpenGL ES 3.2 und im Kompatibilitätsmodus nun OpenGL 4.4 nach 3.1 in Version 18.1. Die Unterstützung der ASTC-Texturkompression für RadeonSI dient in Zukunft in anderen Treibern als Vorbild für diese Erweiterung. Dazu kommt für die neue Vega-20-Baureihe Unterstützung im RadeonSI-Treiber. Vulkan 1.1-Erweiterungen und weitere Erweiterungen werden im Intel ANV und AMD RADV unterstützt.[27][28]

In Version 18.3 im Dezember 2018 stehen viele Verbesserungen zur Verfügung. Unterstützung für AMD Raven 2, Picasso, Vega 20 in RadeonSI und RADV ist nur ein Punkt von vielen. Intel Whiskey Lake und Amber Lake werden nun ebenfalls unterstützt. OpenGL 4.6 wurde mangels SPIR-V noch nicht erreicht.[29]

In Version 19.0 im März 2019 stehen viele Verbesserungen zur Verfügung. RadeonSI unterstützt AMD Freesync mit Linux 5.0+. Meson löst Autotools in der Erstellung des Treiber-Paketes ab.[30]

In Version 19.1 im Juni 2019 stehen viele Verbesserungen zur Verfügung. Es wurden viele Vulkan-Module fertig gestellt. RadV unterstützt AMD Freesync mit Linux 5.0+.[31]

In Version 19.2 im September 2019 stehen viele Verbesserungen besonders für AMD Navi und Vulkan Features zur Verfügung.[32] Dazu steht OpenGL 4.5 auf einigen Karten mit R600-Architektur zur Verfügung.[33]

OpenGL 4.6 steht nun in Intel i965 und Iris in Mesa 19.3 zur Verfügung. Für den neuen Treiber Iris für Intel ab Broadwell Gen 8 zeigt sich eine stark verbesserte Performance in vielen Tests, obwohl noch einige Fehler vorhanden sind.[34][35]

In Version 20.0 unterstützt AMD RadeonSI OpenGL 4.6 und der neue Intel Iris Treiber für neuere Hardware ab Broadwell Gen 8 wurde weiter verbessert. Intel i965 wird für ältere Hardware bis Haswell Gen 7.5 weiterentwickelt.[36][37]

In 20.1 wurde der neue Virtuelle Treiber Zink basierend auf Vulkan mit ersten OpenGL Funktionen vorgestellt. Open GL 3.0 bis 3.3 sind vollständig verfügbar in 20.3. LLVM-pipe unterstützt in 20.2 OpenGL 4.3 und in 20.3 OpenGL 4.4 und 4.5. Softpipe unterstützt in 20.3 OpenGL ES 3.1. Intel Alderlake 12. Gen mit der neuen Xe-Grafik wird auch in 20.3 unterstützt. d3d12 ist eine neue Emulation von Microsoft und Collabora für OpenGL und OpenCL mit DirectX 12 als API für WSL in Windows 10. OpenGL bis 3.3 wird in Mesa 21.0 unterstützt.[38] Zink wird OpenGL 4.0 und 4.1 unterstützen. In ARM Panfrost wurde OpenGL 3.1 komplettiert. In Qualcomm Freedreno wird OpenGL 3.3 voll unterstützt. Der aktuelle Stand der Entwicklung ist in Mesamatrix verfügbar.[39][40] [41]

21.1 ist seit Anfang Juni verfügbar mit über 1000 Änderungen in den Release Notes. Zink unterstützt nun voll OpenGL 4.6 und OpenGL ES 3.1. Treiber für Vulkan mit Lavapipe, Qualcomm Turnip, Broadcom v3dv und neu Google Venus sind zur Zeit Hot Spot der Entwicklung. Im Bereich der OpenGL-Treiber machen ARM Panfrost und die Emulation Zink zur Zeit die größten Fortschritte.[42][43]

21.3 ist seit Mitte November verfügbar. U. a. für Lavapipe ist Vulkan 1.2 nun voll unterstützt,[44] LLVMpipe wurde für 2D um den Faktor 2-3 beschleunigt und VA-API kann nun auch mit AV1-Videos umgehen.[45]

In Mesa 22.1 wird der Nvidia-Driver Nouveau auf NIR als Default umgestellt. Das hat erhebliche Vorteile in Performance und weiteren Entwicklung. Treiber ohne NIR-Unterstützung werden bei Mesa nicht mehr in Zukunft weiterentwickelt. Sie werden jedoch als Classic-Driver in Projekten wie Amber weitergeführt, damit hier die zugehörige Hardware mit neuen Linux-Kernel-Varianten funktioniert.[46]

In Mesa 22.2 wird NIR noch wichtiger. Etwa 22.000 Zeilen alter Code für GLSL-to-TGSI werden entfallen. NIR-to-TGSI übernimmt mit GLSL-to-NIR diese Aufgabe. TGSI soll dann später ganz entfallen und nur noch native NIR-Treiber mit nur noch GLSL-to-NIR unterstützt werden.[47]

Softwarestufen der Mesa-API mit Fehlerkorrekturen[Bearbeiten | Quelltext bearbeiten]

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
OpenGL 4.3+ (ES 3.1+), Vulkan 1.0 12.0.6[48]
OpenGL 4.4+ (ES 3.2), Vulkan 1.0 13.0.6 (OpenGL 4.5 nicht zertifiziert)[49]
OpenGL 4.5+ (ES 3.2), Vulkan 1.0 17.0.7 (Juni 2017)[50]
OpenGL 4.5+ (ES 3.2), Vulkan 1.0 17.1.10 (September 2017)[51]
OpenGL 4.5+ (ES 3.2), Vulkan 1.0 17.2.8 (Dezember 2017)[52]
OpenGL 4.5+ (ES 3.2), Vulkan 1.0 17.3.9 (April 2018)[53]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.0 18.0.5 (Juni 2018, OpenGL 4.6 ohne Spir-V)[54]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1 18.1.9 (September 2018, Vulkan 1.1, OpenGL 3.1 im Kompatiblem Modus (bisher 3.0))[55][56]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1+ 18.2.8 (Dezember 2018, VirGL 4.3 und OpenGL 3.1 bis 4.5 im Kompatiblem Modus u. a.)[57]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1+ 18.3.6 (April 2019)[58]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1+ 19.0.8 aktuell (Juni 2019, OpenGL 4.6 ohne Spir-V)[59]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1+ 19.1.8 aktuell (September 2019, OpenGL 4.6 ohne SPIR-V)[60][61]
OpenGL 4.5+ (ES 3.2+), Vulkan 1.1+ 19.2.8 aktuell (Dezember 2019, OpenGL 4.6 auf Version 19.3 für Intel verschoben)[62][63]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.1+ 19.3.5 aktuell (März 2020, OpenGL 4.6 für Intel i965 ab Gen7 Ivy Bridge und Iris ab Gen8 Broadwell, Bugfix bis 19.3.6 geplant)[64][65] danach 20.0 im März 2020 geplant mit OpenGL 4.6 für AMD GCN und mit Voreinstellung für Intel Iris Gallium 3D anstatt i965 ab Gen8 Broadwell[66]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 20.0.8 aktuell (Mai 2020, OpenGL 4.6 für Intel i965 ab Gen7 Ivy Bridge, Iris ab Gen8 Broadwell und RadeonSI für AMD GCN, Vulkan RadV auch für GCN 1. Gen.)[67][68]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 20.1.10 (Oktober 2020, OpenGL 4.6) 20.1 mit vielen Verbesserungen, neuer Treiber Zink für OpenGL auf Vulkan, Ende Bugfix.[69][70][71]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 20.2.6 (16. Dezember 2020, OpenGL 4.6) Neu in 20.2: Zink: OpenGL 3.0+, LLVMpipe: OpenGL 4.3+ und OpenGL ES 3.2+, ARM Panfrost: nahe OpenGL 3.0+

[72][73]

OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 20.3.5 (24. März 2021) Neu in 20.3: LLVMpipe: OpenGL 4.5+, Vulkan 1.0+: v3dv für Raspberry Pi 4 verfügbar

[74][75]

OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 21.0.3 (21. April 2021) Neu in 21.0: d3d12 für Microsoft WSL2: OpenGL 3.3+, Zink: OpenGL 4.1+ (4.6+ in 21.1), Qualcomm freedreno: OpenGL 3.3+, ARM Panfrost: OpenGL 3.1+ [76][77][78]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 21.1.8 (08. September 2021) Neu in 21.1: Zink: OpenGL 4.6+ und OpenGL ES 3.1+, Lavapipe: Vulkan 1.1+, Google: virtueller Vulkan GPU Treiber Venus verfügbar mit Vulkan 1.2+, mit vielen Verbesserungen in allen Modulen und viel bugfix.[79][80][81][82]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 21.2.6 (24. November 2021) Neu in 21.2: Intel Crocus mit bis zu OpenGL 4.6+ und OpenGL ES 3.1+ für Sandy Bridge bis Haswell, ARM Panfrost: OpenGL ES 3.1+ und neuer Vulkan-Treiber panVK, mit vielen Verbesserungen in allen Modulen mit Schwerpunkt Vulkan und viel bugfix.[83][84][85][86]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.2+ 21.3.9 (1. Juni 2022) Neu in 21.3: OpenGL 4.6 für llvmpipe, Zink OpenGL ES 3.2, mit vielen Verbesserungen in allen Modulen mit Schwerpunkt Vulkan und viel bugfix.[87][88][89]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.3+ 22.0.5 (01. Juni 2022) Neu in 22.0: Vulkan 1.3 für Anvil Intel Gen 9+ und AMD RADV GCN 2+, OpenGL ES 3.1 für d3d12 (OpenGL 4.2+ in 22.1), mit vielen Verbesserungen in allen Modulen mit Schwerpunkt Vulkan und viel bugfix.[90][91][92]
OpenGL 4.6+ (ES 3.2+), Vulkan 1.3+ 22.1.3 (29. Juni 2022) Neu in 22.1: OpenGL 4.2 für d3d12, Vulkan 1.3 für Lavapipe (noch ein fehlendes 1.2-Modul in mesamatrix), Intel DG2 support [93][94][95][96]

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. Beim Update von Mesa 12 auf 13 konnte die Leistung um bis zu 70 % gesteigert werden bei AMD Radeon RX 480 mit Ubuntu 16.10 und Linux 4.8.[97]

Aktuelle Grafikkarten sind oft durch fehlende Informationen wie zum Beispiel zum Powermanagement in ihrer Leistung limitiert. Später stehen diese oft erst Jahre nach Verkaufsende der Baureihe zur Verfügung. So ist eine NVIDIA GTX 680 (Kepler) bis zu 10-mal schneller in Mesa 12.0 als neuere Karten der eigentlich schnelleren Maxwell-Architektur.[98] Mit den Versionen 13 und 17 wurde Maxwell 1 stark beschleunigt.[99] Nun sind Maxwell 2 und auch Pascal gering in ihrer Leistung gegenüber dem Nvidia-Treiber und den Vorgängern wegen fehlender Daten.[100]

Mesa unterstützt ab Version 8 OpenGL ES 1.1 und 2.0 aufsetzend auf EGL 1.4.[101] 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 steht in Mesa 13.0 erstmals komplett zur Verfügung (siehe mesamatrix). Dazu werden optionale zusätzliche Funktionen für die einzelnen Stufen entwickelt aus dem Khronos-Baukasten neuer vorgeschlagener Module. In Android und anderen Systemen sind EGL und OpenGL ES wichtige Bestandteile der Grafiksoftware.

Das Testen mit Bugfixing und das Building wurden in den letzten Jahren stark verbessert.[102] Der aktuelle Status der Intel-Entwicklung ist nun öffentlich einsehbar.[103] Mit Iris ist ein Nachfolger von i965 in Arbeit für Hardware Skylake und neuer.[104] Mit Spir-V wird das Mesa-Projekt für OpenGL stark modernisiert. Da starke Änderungen nötig sind, sind noch einige Fehler zu bereinigen.[105]

Variable Frequenzen der Monitore (VRR) durch Freesync für weniger Energieverbrauch und besseres Gaming ohne Stottern steht für AMD Radeonsi und RadV ab Mesa 19.2 zur Verfügung.[106]

Im Vergleich zu Nvidia kann AMD bei Mesa 20.1 besonders mit den neuen Navi-Karten wieder sehr gut mithalten in den Benchmarks zu Spielen mit Vulkan und OpenGL.[107]

Im Vergleich des offenen Treibers für AMD RadeonSI mit dem AMD-eigenen AMDGPUPRO 21.50 kann dieser nicht nur mithalten, sondern sogar in einigen CAD-Tests für Workstations stark übertrumpfen bei Mesa 21.2 wie 22.1dev.[108]

Mit Mesa 22.1 kann AMD-Hardware auch der bisher dominierenden Nvidia-Hardware mit dem geschlossenen Nvidia-Treiber mithalten oder sogar diesen übertreffen. Die AMD-Hardware wird damit ähnlich ausgereizt wie bisher die Nvidia-Hardware.[109]

OpenCL[Bearbeiten | Quelltext bearbeiten]

  • GalliumCompute (Clover)

Eine gemeinsame OpenCL-Plattform für alle wichtigen Plattformen mit GalliumCompute zu etablieren ist bisher gescheitert. Die Entwicklung war hier langsam gegenüber anderen Modulen in Mesa (früher Clover: OpenCL 1.0 und 1.1 nahezu vollständig (CTS unvollständig), 1.2 großteils für AMD GPU und teilweise für NVIDIA GPU). Es findet zumindest die Wartung statt, damit der bisherige Code weiterhin läuft. 2017 kamen mit den Funktionen FP16 und INT64 atomics wichtige Teile für OpenCL 1.2 hinzu.[110] Mit einer Bridge kann nun ein AMDGPU-OpenCL2-Compiler mit Mesa 3D gekoppelt werden und erheblich mehr Programme laufen nun fehlerfrei.[111] Neue Entwicklungen von Redhat für NIR und Spir-V ermöglicht auch Fortschritt für Clover.[112][113][114] Ab Mesa 20.3 ist OpenCL 1.2 voll verfügbar.[115] OpenCL 3.0 mit optionalen Teilen von OpenCL 1.x und 2.x ist das nächste Ziel der Entwicklung. Basissupport für Freedreno ist mit Mesa 22.0 verfügbar.[116]

  • RustiCL (openCL mit Rust für Galliumcompute)

Eine neue Implementierung wird in Mesa 22.2 mit RustiCL mit OpenCL 3.0 konform experimentell verfügbar sein. Rust hat hier als Programmiersprache Vorteile in der Wartung des Codes und Vermeidung von Fehlern gegenüber C.[117] Durch den vorhandenen, wichtigen, optionalen Image-Support unterstützt RustiCL im Unterschied zu Clover zum Beispiel das Programm Darktable.[118]

  • Beignet (Intel China) und Compute Runtime (Neo)

Intel China hat mit Beignet (aktuell Version 1.3.2) eine weitere Software für OpenCL (1.2, 2.0 ab Version 1.3.0 mit Skylake+) für Intel CPU mit eingebauter GPU ab Ivy Bridge abseits von Mesa implementiert.[119] Unter dem Codenamen NEO wurde ein neuer Open-Source-Treiber für Hardware ab Gen. 8 mit Broadwell bis aktuell Icelake und neu Tigerlake entwickelt mit aktuell OpenCL 2.1-Unterstützung. OpenCL 2.2 soll zeitnah folgen.[120][121] Mit dieser neuen Compute Runtime NEO wird Beignet nicht mehr weiterentwickelt, steht jedoch den GPUs von Ivybridge bis Haswell zur Verfügung. Mit Version 20.42 unterstützt NEO OpenCL 3.0 ab Broadwell und eine neue API LevelZero ab Skylake[122]

  • Nvidia

Für NVIDIA steht nur der Closed-Source-Treiber mit OpenCL 1.1 für Tesla und Fermi, sowie OpenCL 1.2 für Kepler, Maxwell und Pascal zur Verfügung. OpenCL 2.0 ist hier in der Entwicklung.[123] OpenCL 3.0 steht mit Nvidia-Treibern 465 und höher seit 2021 zur Verfügung. Das nun optionale OpenCL 2.x wird dabei wie bisher nur teilweise implementiert. Mit der aktuellen Weiterentwicklung mit NIR und SPIR-V wird Mesa 3D Clover mit OpenCL 1.0 bis 1.2 für Nvidia-Karten zur Verfügung stehen. In Mesa 20.3 ist ein signifikanter Fortschritt eingebaut. Die CTS als offizielle Test Suite wird jedoch noch nicht voll erfüllt.

  • Shamrock

Das Clover final bis 1.2 entwickelt werden kann, zeigt das Projekt Shamrock als Port von Mesa Clover für ARM mit vollem Support von OpenCL 1.2 seit Juli 2016.[124][125]

In Zukunft soll OpenCL als OpenCL-V ein Teil von Vulkan werden laut Khronos.[126] Damit würden die Treiber von Vulkan ANV für Intel und RADV für AMD auch OpenCL ausführen. Weil Vulkan eine Weiterentwicklung von AMD Mantle und dieses ein OpenCL mit Graphik-Schicht ist, stehen die Chancen einer erfolgreichen Weiterentwicklung mit ähnlicher Performance wie dem jetzigen OpenCL gut. 2017 waren die Fortschritte in Clover in Richtung OpenCL 1.2 und anderen Open-Source-Projekten in Richtung OpenCL 2.x gering.[127] Mit OpenCL 3.0 wird die Entwicklung von OpenCL 1.2 als Basisvoraussetzung seit Anfang 2020 angekurbelt.

Softwarearchitektur[Bearbeiten | Quelltext bearbeiten]

Implementierte APIs[Bearbeiten | Quelltext bearbeiten]

Das Mesa 3D-Projekt beinhaltet und pflegt auch Implementierungen von diversen Programmierschnittstellen für die Hardware-beschleunigte Rasterung:

  • OpenGL (voll unterstützt bis zu 4.6, weitere Zusätze in Arbeit)
  • OpenGL ES (voll unterstützt bis zu 3.2, weitere Zusätze in Arbeit)
  • GLX (voll unterstützt bis zu 1.4)
  • EGL (voll unterstützt bis zu 1.5)
  • OpenVG (1.1, ab Version 10.6 nicht mehr vorhanden)
  • Glide (überholt)
  • Vulkan (1.0: Intel Graphic Gen7+ ANV ab Version 12, AMD GCN mit RADV ab Version 13, 1.1: in 18.1 für ANV mit Intel Graphic Gen9+ und für RADV mit AMD GCN Gen3+, 1.2: ab Mesa 20.0 für ANV mit Intel Graphics Gen8+ und RADV mit AMD GCN2+)[128]
  • OpenCL (mit Mesa 20.3 komplett 1.0, 1.1 und 1.2 in aktuell schneller Entwicklung in GalliumCompute, neue Impulse durch Umstellung von TGSI auf NIR und modularem OpenCL 3.0)[129][130]

Das ebenfalls unter einer freien Lizenz entwickelte Wine-Projekt beinhaltet eine Implementierung von Microsofts Direct3D Version 9c. 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 9c direkt.

Aktueller Status (22.1) der verschiedenen Treiber nach Mesamatrix und Mesa3d.org:

  • OpenGL:
  • 4.6+: RadeonSI AMD GCN+, i965 für Intel Haswell+ (Gen7.5), Iris mit Gallium 3D-Basis ab Mesa 20.0 für Intel Broadwell+ (Gen8+), Zink für Vulkan 1.1+, neu in 21.2: crocus mit Gallium 3D-Basis für Intel Haswell (Gen7.5), LLVMpipe
  • 4.5+: r600 für AMD R600+, nvC0 für Nvidia Fermi+
  • 4.3+: virGL für virtuelle Maschinen
  • 4.2+: i965 für Intel Gen7, neu in 21.2: crocus mit Gallium 3D-Basis für Intel ivy bridge (Gen7), d3d12 (Mesa 22.1)
  • 4.0+: d3d12 (Mesa 22.0)
  • 3.3+: i965 für Intel Gen6, freedreno für Qualcomm 5xx+, nv50 für Nvidia Tesla, softpipe, openSWR, d3d12, VMware SVGA3D, neu in 21.2: crocus mit Gallium 3D-Basis für Intel sandy bridge (Gen6)
  • 3.1+: Panfrost für ARM T760+, freedreno für Qualcomm 2xx-4xx
  • 3.0+: v3d für Broadcom Raspberry Pi 4 (wip mit über 80 %)
  • 2.1+: i965 für Intel Gen4, Gen4.5, Gen5,[131] Lima für Panfrost T4xx, Panfrost für ARM T720, vc4 für Broadcom raspberry, Zink für Vulkan 1.0+ (bis zu 4.x+ je nach Hardware)
  • OpenGL ES:
  • 3.2+: AMD RadeonSI für GCN+, i965 und Iris für Intel Skylake Gen9+, freedreno für A6xx, llvmpipe, virGL, Zink (ab Mesa 21.3)
  • 3.1+: r600g für AMD R600+, i965 für Intel Ivy Bridge Gen7+, Iris für Intel Broadwell Gen8, freedreno für A5xx, nvC0, Panfrost, v3d für Broadcom, Zink, softpipe, neu ab 21.2: crocus für Intel sandy bridge bis Haswell (Gen6-7.5), d3d12 (Mesa 22.0)
  • 3.0+: i965 für Intel Sandy Bridge Gen6+,[132] nv50 für Nvidia Tesla (3.1+ für NVIDIA GT 21x ab Mesa 21.2[133])
  • 2.0+: Lima für Panfrost T4xx, vc4 für Broadcom raspberry
  • Vulkan:
  • 1.3+: Anvil für Intel gen9+, radv für AMD GCN2+ (gfx7+), Software Lavapipe (neu ab Mesa 22.1)
  • 1.2+: Anvil für Intel gen9+, radv für AMD GCN2+ (gfx7+), VirtIO-GPU Venus mit Vulkan-1.2-Hardware
  • 1.1+: Anvil für Intel gen8+, radv für AMD GCN+, turnip mit Qualcomm A650+, VirtIO-GPU Venus mit Vulkan-1.1-Hardware
  • 1.0+: v3dv für Broadcom Raspberry Pi 4, anv für Intel gen7+, turnip mit Qualcomm A6xx, VirtIO-GPU Venus mit Vulkan-1.0-Hardware, panVK für ARM Mali Midgard und Bifrost[134]
  • OpenCL mit Modul Clover:
  • 3.0 (wip, teilweise): nvC0 für Nvidia Fermi+, RadeonSI für AMD GCN+, R600 für AMD Terascale 3
  • 2.2 (wip, teilweise): nvE0 für Nvidia Kepler+, RadeonSI für AMD GCN2+
  • 2.1 (wip, teilweise): nvE0 für Nvidia Kepler+, RadeonSI für AMD GCN2+
  • 2.0 (wip, teilweise): nvE0 für Nvidia Kepler+, RadeonSI für AMD GCN2+
  • 1.2: nvC0 für Nvidia Fermi+, RadeonSI AMD GCN+ und R600 für AMD Terascale 3 (ohne printf), d3d12 für WSL2 in Windows 10 mit OpenCLOn12[135][136]
  • 1.1 (ohne optionale wichtige weitere Images (wip)): nvC0 für Nvidia Fermi+, RadeonSI AMD GCN+, R600 für AMD Terascale 2
  • 1.0 (ohne optionales aber wichtiges Image (wip)): nvC0 für Nvidia Fermi+, RadeonSI AMD GCN+, R600 für AMD R600+
  • OpenCL mit RustiCL (experimentell ab 22.2)
  • 3.0 (wip): nvE0 für Nvidia Kepler+, RadeonSI für AMD GCN2+,
  • Legacy Hardware: AMD R200, R300 und Intel i915 werden nur noch von der Community gepflegt.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Project History. (abgerufen am 11. März 2021).
  2. [ANNOUNCE] mesa 22.1.3.
  3. Mesa Languages Page (englisch) – Open Hub; Stand: 12. April 2018
  4. Mesa 8.0 Release Notes (englisch)
  5. Mesa 9.0 Release Notes (englisch)
  6. Mesa 10.0 Release Notes (englisch)
  7. Mesa 11.2.2 Release Notes (englisch)
  8. glxinfo
  9. Mesamatrix
  10. Paraview and OpenSWR
  11. Thorsten Leemhuis: Grafikbibliothek Mesa 13.0: Quelloffene Linux-Treiber unterstützen jetzt OpenGL 4.5 (so halb), Heise online, 2. November 2016.
  12. [Mesa-dev [ANNOUNCE] mesa 13.0.0], 1. November 2016 (englisch)
  13. mesa/mesa – The Mesa 3D Graphics Library: mesa: Bump the version to 17.0, 7. Januar 2017 (englisch)
  14. mesa/mesa – The Mesa 3D Graphics Library: i965/gen7: expose OpenGL 4.2 on Haswell when supported, 11. Oktober 2016 (englisch)
  15. mesa/mesa – The Mesa 3D Graphics Library: i965: Enable OpenGL 4.5 on Haswell. 13. Januar 2017 (englisch)
  16. mesa/mesa – The Mesa 3D Graphics Library: nvc0: enable GL 4.3 on gm107+, 22. August 2016 (englisch)
  17. Michael Larabel: A Look At The Huge Performance Boosts With Nouveau Mesa 17.0-devel On Maxwell, phoronix, 15. Januar 2017 (englisch)
  18. Khronos Open-Sources OpenGL / OpenGL ES Conformance Tests, phoronix, 24. Januar 2017 (englisch)
  19. Michael Larabel: Today Is The Last Day Of Feature Development For Mesa 17.1, phoronix, 14. April 2017 (englisch)
  20. Thorsten Leemhuis: Mesa 17.1 steigert 3D-Performance von Linux, Heise online, 10. Mai 2017.
  21. a b Mesa 17.2: Weiterer Performance-Schub für 3D-Treiber von Linuxc’t, am 5. September 2017
  22. x.org
  23. Mesa 17.3: Performance-Optimierungen bei den 3D-Treibern für Linuxc’t, am 11. Dezember 2017
  24. Mesa 17.3.0 Release Notes (englisch) – Mesa, am 8. Dezember 2017
  25. Sebastian Grüner: Linux-Grafiktreiber: Mesa 18.0 bringt Cannon-Lake-Support und Meson-Buildsystem, Golem.de, 28. März 2018.
  26. khronos.org
  27. Michael Larabel: Mesa 18.2 Is Releasing Soon With Many OpenGL / Vulkan Driver Improvements, phoronix, 21. August 2018 (englisch)
  28. Thorsten Leemhuis: Linux: Mesa 18.2 verbessert 3D-Performance und Grafikkarten-Unterstützung, Heise online, 10. September 2018.
  29. Michael Larabel: The Shiny New Features Of Mesa 18.3 For Open-Source Intel / Radeon Graphics Drivers, phoronix, 13. November 2018 (englisch)
  30. Mesa 19.0 Released With Many Improvements To The Open-Source Vulkan/OpenGL Drivers - Phoronix. Abgerufen am 19. Januar 2021.
  31. Mesa 19.1's New Features From The Intel Gallium3D Driver To New Drivers & Vulkan Optimizations - Phoronix. Abgerufen am 19. Januar 2021.
  32. Mesa 19.2 Released With Navi Support, Much Improved Intel Gallium3D - Phoronix. Abgerufen am 19. Januar 2021.
  33. Mesa 19.2 R600 Gallium3D Can Advertise OpenGL 4.5 With Select GPUs - Phoronix. Abgerufen am 19. Januar 2021.
  34. Intel's Iris Gallium3D Driver Now Has Better OpenGL Compatibility Profile Support - Phoronix. Abgerufen am 19. Januar 2021.
  35. Intel's Gallium3D Driver Is Running Much Faster Than Their Current OpenGL Linux Driver With Mesa 19.3 - Phoronix. Abgerufen am 19. Januar 2021.
  36. Mesa 20.0-devel Intel Gallium3D Performance Benchmarks Are Looking Good For Ice Lake - Phoronix. Abgerufen am 19. Januar 2021.
  37. RadeonSI NIR Benchmarks Show Great Progress With Mesa 20.0 - Phoronix. Abgerufen am 19. Januar 2021.
  38. https://xdc2020.x.org/event/9/contributions/621/attachments/701/1297/XDC_-_Mesa_for_Mapping_Layers.pdf
  39. Mesa 20.1 Features Include Big Improvements For Open-Source Intel, Radeon Graphics Drivers - Phoronix. Abgerufen am 19. Januar 2021.
  40. Zink GL-On-Vulkan Driver Approaching OpenGL 3.1 Support - Phoronix. Abgerufen am 19. Januar 2021.
  41. Mesa 20.3 Supports Intel Alder Lake Gen12 Graphics - Phoronix. Abgerufen am 19. Januar 2021.
  42. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.1-rc1-Released
  43. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0.3-21.1-rc2-Released
  44. https://www.phoronix.com/scan.php?page=news_item&px=Lavapipe-Vulkan-1.2
  45. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.3-Released
  46. https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-NIR-Default
  47. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-Stripping-GLSL-To-TGSI
  48. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/12.0.0.html
    https://docs.mesa3d.org/relnotes/12.0.1.html
    https://docs.mesa3d.org/relnotes/12.0.2.html
    https://docs.mesa3d.org/relnotes/12.0.3.html
    https://docs.mesa3d.org/relnotes/12.0.4.html
    https://docs.mesa3d.org/relnotes/12.0.5.html
    https://docs.mesa3d.org/relnotes/12.0.6.html
  49. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/13.0.0.html
    https://docs.mesa3d.org/relnotes/13.0.1.html
    https://docs.mesa3d.org/relnotes/13.0.2.html
    https://docs.mesa3d.org/relnotes/13.0.3.html
    https://docs.mesa3d.org/relnotes/13.0.4.html
    https://docs.mesa3d.org/relnotes/13.0.5.html
    https://docs.mesa3d.org/relnotes/13.0.6.html
  50. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/17.0.0.html
    https://docs.mesa3d.org/relnotes/17.0.1.html
    https://docs.mesa3d.org/relnotes/17.0.2.html
    https://docs.mesa3d.org/relnotes/17.0.3.html
    https://docs.mesa3d.org/relnotes/17.0.4.html
    https://docs.mesa3d.org/relnotes/17.0.5.html
    https://docs.mesa3d.org/relnotes/17.0.6.html
    https://docs.mesa3d.org/relnotes/17.0.7.html
  51. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/17.1.0.html
    https://docs.mesa3d.org/relnotes/17.1.1.html
    https://docs.mesa3d.org/relnotes/17.1.2.html
    https://docs.mesa3d.org/relnotes/17.1.3.html
    https://docs.mesa3d.org/relnotes/17.1.4.html
    https://docs.mesa3d.org/relnotes/17.1.5.html
    https://docs.mesa3d.org/relnotes/17.1.6.html
    https://docs.mesa3d.org/relnotes/17.1.7.html
    https://docs.mesa3d.org/relnotes/17.1.8.html
    https://docs.mesa3d.org/relnotes/17.1.9.html
    https://docs.mesa3d.org/relnotes/17.1.10.html
  52. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/17.2.0.html
    https://docs.mesa3d.org/relnotes/17.2.1.html
    https://docs.mesa3d.org/relnotes/17.2.2.html
    https://docs.mesa3d.org/relnotes/17.2.3.html
    https://docs.mesa3d.org/relnotes/17.2.4.html
    https://docs.mesa3d.org/relnotes/17.2.5.html
    https://docs.mesa3d.org/relnotes/17.2.6.html
    https://docs.mesa3d.org/relnotes/17.2.7.html
    https://docs.mesa3d.org/relnotes/17.2.8.html
  53. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/17.3.0.html
    https://docs.mesa3d.org/relnotes/17.3.1.html
    https://docs.mesa3d.org/relnotes/17.3.2.html
    https://docs.mesa3d.org/relnotes/17.3.3.html
    https://docs.mesa3d.org/relnotes/17.3.4.html
    https://docs.mesa3d.org/relnotes/17.3.5.html
    https://docs.mesa3d.org/relnotes/17.3.6.html
    https://docs.mesa3d.org/relnotes/17.3.7.html
    https://docs.mesa3d.org/relnotes/17.3.8.html
    https://docs.mesa3d.org/relnotes/17.3.9.html
  54. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/18.0.0.html
    https://docs.mesa3d.org/relnotes/18.0.1.html
    https://docs.mesa3d.org/relnotes/18.0.2.html
    https://docs.mesa3d.org/relnotes/18.0.3.html
    https://docs.mesa3d.org/relnotes/18.0.4.html
    https://docs.mesa3d.org/relnotes/18.0.5.html
  55. phoronix.com
  56. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/18.1.0.html
    https://docs.mesa3d.org/relnotes/18.1.1.html
    https://docs.mesa3d.org/relnotes/18.1.2.html
    https://docs.mesa3d.org/relnotes/18.1.3.html
    https://docs.mesa3d.org/relnotes/18.1.4.html
    https://docs.mesa3d.org/relnotes/18.1.5.html
    https://docs.mesa3d.org/relnotes/18.1.6.html
    https://docs.mesa3d.org/relnotes/18.1.7.html
    https://docs.mesa3d.org/relnotes/18.1.8.html
    https://docs.mesa3d.org/relnotes/18.1.9.html
  57. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/18.2.0.html
    https://docs.mesa3d.org/relnotes/18.2.1.html
    https://docs.mesa3d.org/relnotes/18.2.2.html
    https://docs.mesa3d.org/relnotes/18.2.3.html
    https://docs.mesa3d.org/relnotes/18.2.4.html
    https://docs.mesa3d.org/relnotes/18.2.5.html
    https://docs.mesa3d.org/relnotes/18.2.6.html
    https://docs.mesa3d.org/relnotes/18.2.7.html
    https://docs.mesa3d.org/relnotes/18.2.8.html
  58. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/18.3.0.html
    https://docs.mesa3d.org/relnotes/18.3.1.html
    https://docs.mesa3d.org/relnotes/18.3.2.html
    https://docs.mesa3d.org/relnotes/18.3.3.html
    https://docs.mesa3d.org/relnotes/18.3.4.html
    https://docs.mesa3d.org/relnotes/18.3.5.html
    https://docs.mesa3d.org/relnotes/18.3.6.html
  59. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/19.0.0.html
    https://docs.mesa3d.org/relnotes/19.0.1.html
    https://docs.mesa3d.org/relnotes/19.0.2.html
    https://docs.mesa3d.org/relnotes/19.0.3.html
    https://docs.mesa3d.org/relnotes/19.0.4.html
    https://docs.mesa3d.org/relnotes/19.0.5.html
    https://docs.mesa3d.org/relnotes/19.0.6.html
    https://docs.mesa3d.org/relnotes/19.0.7.html
    https://docs.mesa3d.org/relnotes/19.0.8.html
  60. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/19.1.0.html
    https://docs.mesa3d.org/relnotes/19.1.1.html
    https://docs.mesa3d.org/relnotes/19.1.2.html
    https://docs.mesa3d.org/relnotes/19.1.3.html
    https://docs.mesa3d.org/relnotes/19.1.4.html
    https://docs.mesa3d.org/relnotes/19.1.5.html
    https://docs.mesa3d.org/relnotes/19.1.6.html
    https://docs.mesa3d.org/relnotes/19.1.7.html
    https://docs.mesa3d.org/relnotes/19.1.8.html
  61. heise.de
  62. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/19.2.0.html
    https://docs.mesa3d.org/relnotes/19.2.1.html
    https://docs.mesa3d.org/relnotes/19.2.2.html
    https://docs.mesa3d.org/relnotes/19.2.3.html
    https://docs.mesa3d.org/relnotes/19.2.4.html
    https://docs.mesa3d.org/relnotes/19.2.5.html
    https://docs.mesa3d.org/relnotes/19.2.6.html
    https://docs.mesa3d.org/relnotes/19.2.7.html
    https://docs.mesa3d.org/relnotes/19.2.8.html
  63. heise.de
  64. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/19.3.0.html
    https://docs.mesa3d.org/relnotes/19.3.1.html
    https://docs.mesa3d.org/relnotes/19.3.2.html
    https://docs.mesa3d.org/relnotes/19.3.3.html
    https://docs.mesa3d.org/relnotes/19.3.4.html
    https://docs.mesa3d.org/relnotes/19.3.5.html
  65. phoronix.com
  66. mesa3d.org
  67. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/20.0.0.html
    https://docs.mesa3d.org/relnotes/20.0.1.html
    https://docs.mesa3d.org/relnotes/20.0.2.html
    https://docs.mesa3d.org/relnotes/20.0.3.html
    https://docs.mesa3d.org/relnotes/20.0.4.html
    https://docs.mesa3d.org/relnotes/20.0.5.html
    https://docs.mesa3d.org/relnotes/20.0.6.html
    https://docs.mesa3d.org/relnotes/20.0.7.html
    https://docs.mesa3d.org/relnotes/20.0.8.html
  68. phoronix.com
  69. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/20.1.0.html
    https://docs.mesa3d.org/relnotes/20.1.1.html
    https://docs.mesa3d.org/relnotes/20.1.2.html
    https://docs.mesa3d.org/relnotes/20.1.3.html
    https://docs.mesa3d.org/relnotes/20.1.4.html
    https://docs.mesa3d.org/relnotes/20.1.5.html
    https://docs.mesa3d.org/relnotes/20.1.6.html
    https://docs.mesa3d.org/relnotes/20.1.7.html
    https://docs.mesa3d.org/relnotes/20.1.8.html
    https://docs.mesa3d.org/relnotes/20.1.9.html
    https://docs.mesa3d.org/relnotes/20.1.10.html
  70. phoronix.com
  71. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.1-Features
  72. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/20.2.0.html
    https://docs.mesa3d.org/relnotes/20.2.1.html
    https://docs.mesa3d.org/relnotes/20.2.2.html
    https://docs.mesa3d.org/relnotes/20.2.3.html
    https://docs.mesa3d.org/relnotes/20.2.4.html
    https://docs.mesa3d.org/relnotes/20.2.5.html
    https://docs.mesa3d.org/relnotes/20.2.6.html
  73. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.2-RC1-Features-Released
  74. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/20.3.0.html
    https://docs.mesa3d.org/relnotes/20.3.1.html
    https://docs.mesa3d.org/relnotes/20.3.2.html
    https://docs.mesa3d.org/relnotes/20.3.3.html
    https://docs.mesa3d.org/relnotes/20.3.4.html
    https://docs.mesa3d.org/relnotes/20.3.5.html
  75. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.3-RC1-Released
  76. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/21.0.0.html
    https://docs.mesa3d.org/relnotes/21.0.1.html
    https://docs.mesa3d.org/relnotes/21.0.2.html
  77. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-RC1-Released
  78. https://www.phoronix.com/scan.php?page=search&q=Mesa+21.0
  79. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/21.1.0.html
    https://docs.mesa3d.org/relnotes/21.1.1.html
    https://docs.mesa3d.org/relnotes/21.1.2.html
    https://docs.mesa3d.org/relnotes/21.1.3.html
    https://docs.mesa3d.org/relnotes/21.1.4.html
    https://docs.mesa3d.org/relnotes/21.1.5.html
    https://docs.mesa3d.org/relnotes/21.1.6.html
    https://docs.mesa3d.org/relnotes/21.1.7.html
    https://docs.mesa3d.org/relnotes/21.1.8.html
  80. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.1-Released
  81. https://www.phoronix.com/scan.php?page=search&q=Mesa+21.1
  82. https://www.phoronix.com/scan.php?page=news_item&px=VirtIO-GPU-Venus-Vulkan
  83. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/21.2.0.html
    https://lists.freedesktop.org/archives/mesa-dev/2021-August/225464.html
    https://docs.mesa3d.org/relnotes/21.2.1.html
    https://docs.mesa3d.org/relnotes/21.2.2.html
    https://docs.mesa3d.org/relnotes/21.2.3.html
    https://docs.mesa3d.org/relnotes/21.2.4.html
    https://docs.mesa3d.org/relnotes/21.2.5.html
    https://docs.mesa3d.org/relnotes/21.2.6.html
  84. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.2-Released
  85. https://www.phoronix.com/scan.php?page=search&q=Mesa+21.2
  86. https://www.phoronix.com/scan.php?page=article&item=ivy-bridge-crocus&num=1
  87. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/21.3.0.html
    https://lists.freedesktop.org/archives/mesa-dev/2021-August/225464.html
    https://docs.mesa3d.org/relnotes/21.3.1.html
    https://docs.mesa3d.org/relnotes/21.3.2.html
    https://docs.mesa3d.org/relnotes/21.3.3.html
    https://docs.mesa3d.org/relnotes/21.3.4.html
    https://docs.mesa3d.org/relnotes/21.3.5.html
  88. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.3-Released
  89. https://www.phoronix.com/scan.php?page=search&q=Mesa+21.3
  90. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/22.0.0.html
    https://docs.mesa3d.org/relnotes/22.0.1.html
  91. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-22.0-Released
  92. https://www.phoronix.com/scan.php?page=search&q=Mesa+22.0
  93. https://mesa.freedesktop.org/archive/
    https://docs.mesa3d.org/relnotes/22.1.0.html
    https://docs.mesa3d.org/relnotes/22.1.1.html
  94. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-22.1-Released
  95. https://www.phoronix.com/scan.php?page=search&q=Mesa+22.1
  96. mesa3d.org
  97. Radeon Ubuntu Linux Users Have A Lot To Gain By Upgrading Mesa - Phoronix. Abgerufen am 19. Januar 2021.
  98. Nouveau Kepler vs. Maxwell Performance On Linux 4.6 + Mesa 11.3-dev - Phoronix. Abgerufen am 19. Januar 2021.
  99. A Look At The Huge Performance Boosts With Nouveau Mesa 17.0-devel On Maxwell - Phoronix. Abgerufen am 19. Januar 2021.
  100. Nouveau Maxwell: Mesa 17.0 + Linux 4.10 vs. NVIDIA's Linux Driver - Phoronix. Abgerufen am 19. Januar 2021.
  101. OpenGL ES — The Mesa 3D Graphics Library latest documentation. Abgerufen am 19. Januar 2021.
  102. xdc2018.x.org
  103. xdc2018.x.org
  104. xdc2018.x.org
  105. xdc2018.x.org
  106. xdc2019.x.org
  107. 20-Way GPU Gaming Comparison With March 2020 Linux Drivers - Phoronix. Abgerufen am 19. Januar 2021.
  108. https://www.phoronix.com/scan.php?page=article&item=radeon-spvp2020-linux&num=1
  109. https://www.phoronix.com/scan.php?page=article&item=mesa-221-rc1&num=1
  110. mesa/mesa - The Mesa 3D Graphics Library (mirrored from https://gitlab.freedesktop.org/mesa/mesa). Abgerufen am 19. Januar 2021.
  111. AMDGPU-PRO OpenCL Compiler Hacked Into Mesa's Clover - Phoronix. Abgerufen am 19. Januar 2021.
  112. Gallium Clover With SPIR-V & NIR Opening Up New Compute Options Inside Mesa - Phoronix. Abgerufen am 19. Januar 2021.
  113. Rob Clark, Karol Herbst: XDC 2018: Clover, this time with SPIR-V and NIR. (PDF) In: xdc2018.x.org. September 2018, abgerufen am 19. März 2022.
  114. Working OpenCL Through Gallium3D Clover With LLVM To SPIR-V Conversion - Phoronix. Abgerufen am 19. Januar 2021.
  115. OpenCL 1.2 Support Merged For Mesa's Gallium3D Clover While OpenCL 3.0 Is Being Tackled - Phoronix. Abgerufen am 19. Januar 2021.
  116. Michael Larabel: Freedreno Gallium3D Lands Basic Support For "Clover" OpenCL. 16. November 2021, abgerufen am 19. März 2022 (englisch).
  117. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-OpenCL-3.0-CTS-Passes
  118. https://www.phoronix.com/scan.php?page=news_item&px=Rusticl-Darktable-Milestone
  119. beignet - Beignet OpenCL Library for Intel Ivy Bridge and newer GPUs (mirrored from https://gitlab.freedesktop.org/beignet/beignet). Abgerufen am 19. Januar 2021.
  120. Intel Open-Sources LLVM Graphics Compiler, Compute Runtime With OpenCL 2.1+ - Phoronix. Abgerufen am 19. Januar 2021.
  121. intel/compute-runtime. Intel Corporation, 19. Januar 2021, abgerufen am 19. Januar 2021.
  122. Release 20.42.18209 · intel/compute-runtime. Abgerufen am 19. Januar 2021 (englisch).
  123. Jakub Szuppe: NVIDIA enables OpenCL 2.0 beta-support. In: StreamHPC. 22. Februar 2017, abgerufen am 19. Januar 2021 (britisches Englisch).
  124. About Shamrock. In: Git.Linaro.org. Abgerufen am 15. Mai 2020.
  125. T. Gall & G. Pitney: LCA14-412: GPGPU on ARM SoC. (PDF) In: Amazon Web Services. 6. März 2014, abgerufen am 22. Januar 2017.
  126. Scott Michaud: Breaking: OpenCL Merging Roadmap into Vulkan. 16. Mai 2017, archiviert vom Original am 1. November;.
  127. Tom Stellard: Current State of Open Source GPGPU. (PDF) In: x.org. 20. September 2017, abgerufen am 19. März 2022.
  128. Golem.de: IT-News für Profis. Abgerufen am 19. Januar 2021.
  129. GalliumCompute. Abgerufen am 19. Januar 2021.
  130. Tom Stellard: Clover Status Update. Advanced Micro Devices, Inc., 24. September 2013, abgerufen am 18. Januar 2021 (englisch).
  131. https://dri.freedesktop.org/wiki/IntelCodenames/
  132. https://www.phoronix.com/scan.php?page=news_item&px=MTMwOTc
  133. https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-GLES-3.1-GT21x
  134. https://www.phoronix.com/scan.php?page=news_item&px=PanVK-Lands-In-Mesa
  135. https://github.com/microsoft/OpenCLOn12
  136. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-Direct3D-12-Gallium3D