Nouveau

Mesa 3D/DRI und Gallium3D haben unterschiedliche Modelle für Gerätetreiber. Beide teilen allerdings große Mengen an freiem Quellcode

nouveau (frz. für „neu“) ist eine Sammlung an freien Treibern für Grafikkarten des Herstellers Nvidia, um diese unter dem Betriebssystem Linux nutzen zu können. Die Entwicklung wird primär von der X.Org Foundation und von freedesktop.org geleitet.

Hintergrund

Das Projekt startete 2006 mit dem Ziel, den bisherigen freien Treiber nv zu ersetzen, da dieser nur rudimentäre Funktionen bot. 2010 stellte Nvidia die Entwicklung von nv ein, verweigerte jedoch eine Beteiligung am nouveau-Projekt. Alle nötigen Informationen mussten daher per Reverse Engineering des proprietären Treibers ermittelt werden. Das Projekt ist einzigartig und ist extrem aufwändig, da die komplette Architektur der Grafikprozessoren nachvollzogen werden muss.

Am 24. September 2013 kündigte Nvidia zwar an, das nouveau-Projekt künftig mit Dokumentationen fördern zu wollen,[1] die Entwickler kritisierten im April 2015 jedoch – insbesondere im Hinblick auf neuere Chipsätze (GeForce 900) – eine unzureichende Unterstützung und sogar eine Behinderung ihrer Arbeit durch Maßnahmen wie der Einführung von signierter Firmware. Auch dem Versprechen, Mikrocode-Abbilder an die Nouveau-Entwickler zu übergeben, sei Nvidia bislang nicht nachgekommen.[2] Anfang 2016 lenkte Nvidia ein und übergab Patches, welche grundlegende Funktionen zum Laden der signierten Firmware implementieren. Firmware an sich wurde zu diesem Zeitpunkt jedoch nicht weitergereicht.[3]

Auf der X.org Developers Conference 2016 kritisierte der Entwickler Martin Peres erneut die mangelnde Unterstützung seitens Nvidia und sprach von einer akuten Gefährdung des nouveau-Projekts. Durch die zunehmende Einführung signierter Firmware sei eine Entwicklung per Reverse Engineering kaum mehr möglich und nötige Informationen würden teilweise erst mit bis zu zweijähriger Verspätung übergeben, wenn überhaupt. Ferner wurde angeführt, dass Nvidia selbst von nouveau profitiere, da die Treibersammlung mittlerweile die Grundlage für die Unterstützung der Produktlinie Tegra unter Linux sei.[4]

Die beiden großen Mitbewerber hingegen unterstützen die Entwicklung freier Treiber durch die Offenlegung ihrer Spezifikationen. Intel seit jeher und ATI/AMD seit Ende 2008.

Entwicklungsstatus

Seit Anfang 2013 ist nouveau in der Lage, sowohl die 2D- als auch die 3D-Beschleunigung aller unterstützten Karten anzusprechen; seit der Linux-Kernel-Version 3.8 ist auch letztere gewöhnlich standardmäßig aktiviert.[5] Defizite existieren hingegen noch bei der Unterstützung von Leistungsstufen, wovon insbesondere die Prozessoren Tesla, Fermi und Kepler (Geforce 600) betroffen sind. Die 3D-Beschleunigung ist dadurch momentan weniger leistungsfähig als mit dem proprietären Treiber.[6]

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. Im Vergleich zum NVIDIA-Treiber kann über 90 % der Leistung nicht genutzt werden bei Maxwell 1 (750, 750 Ti) in Mesa 10.6.[7]

Somit ist eine Nvidia GTX 680 (Kepler) bis zu 10-mal schneller in Mesa 12.0 als neuere Karten der eigentlich schnelleren Maxwell-Architektur.[8]

In Mesa 13.0 steht OpenGL 4.3 für Kepler und Fermi zur Verfügung. OpenGL 4.4 und 4.5 sind noch nicht zertifiziert, obwohl alle Funktionen in Nouveau vorhanden sind. Das Reclocking für die bessere Nutzung der Leistungsstufen steht mit Linux 4.5 und höher zur Verfügung bis Maxwell 1. Maxwell wird nur bis OpenGL 4.1 voll unterstützt.[9]

In Mesa-dev 17.0 (Linux 4.10, Test OpenGL 4.3, Stand 2016-12) wurden zwar einige Verbesserungen (OpenGL 4.3 für Maxwell u. a.) eingefügt. Im Vergleich Kepler (hier GeForce GTX 680, 760, 780 Ti) zu Maxwell 2 (hier GeForce GTX 980, 980 Ti) fallen die noch fehlenden Informationen zu Maxwell 2 zur vollen Ausnutzung der Hardware mit höchstem Stromverbrauch stark ins Gewicht. Im Open-Source-Sparmodus liegen folglich auch Welten mit Faktor 8 und mehr gegenüber den Treibern der Firma NVIDIA. Die neue Pascal-Serie (GeForce 10) wird hier noch ungenügend unterstützt und wurde hier nicht getestet. Bei AMD liegen die Leistungen der Open-Source-Treiber schon über denen der AMD Closed-Source-Treiber. Hier zeigt sich auch die bisherige Überlegenheit der OpenGL-Treiber der Firma NVIDIA mit einer erheblich besseren Ausnutzung der NVIDIA-Hardware.[10]

Für 2018 wurde der aktuelle Status und die Pläne auf der Konferenz FOSDEM vorgestellt. Die Arbeit an Vulkan wurde begonnen und einige Fortschritte bei Pascal und älteren Baureihen sind abhängig von den Informationen von Nvidia in Arbeit. OpenGL 4.4 und 4.5 für Fermi, Kepler, Maxwell und Pascal stehen vor der offiziellen Freigabe nach dem Bestehen der letzten Tests der Test Suite CTS.[11]

nouveau ist mittlerweile bei den meisten Linux-Distributionen der voreingestellte Treiber für Nvidia-Hardware.

Im Jahr 2019 veröffentlichte NVIDIA GPU-Hardware-Dokumentation zu ihren Chipsätzen Kepler, Maxwell, Pascal und Volta und stellte diese unter die MIT-Lizenz.[12][13][14]

Einzelnachweise

  1. Andy Ritger: [Nouveau] offer to help, DCB. In: freedesktop.org. 23. September 2013, abgerufen am 27. März 2024 (englisch).
  2. Sebastian Grüner: Nvidias neue Hardware erschwert Open-Source-Entwicklung. In: golem.de. 16. April 2015, abgerufen am 27. März 2024.
  3. Sebastian Grüner: Nouveau-Entwickler bereiten Firmware-Integration vor. In: golem.de. 18. Januar 2016, abgerufen am 27. März 2024.
  4. Golem.de: „Nvidias Verhalten gefährdet freien Linux-Treiber“
  5. Nachrichtenartikel bei heise.de
  6. nouveau-Artikel im freedesktop.org-wiki
  7. https://www.phoronix.com/scan.php?page=article&item=nvidia-gtx750-nouveau&num=1
  8. Nouveau Kepler vs. Maxwell Performance On Linux 4.6 + Mesa 11.3-dev
  9. https://people.freedesktop.org/~imirkin/glxinfo/
  10. https://www.phoronix.com/scan.php?page=article&item=openclose-amdnv-2017&num=1
  11. https://fosdem.org/2018/schedule/event/nouveau/attachments/slides/2280/export/events/attachments/nouveau/slides/2280/nouveau.pdf
  12. https://github.com/nvidia/open-gpu-doc NVIDIA open-gpu-doc repository
  13. https://nvidia.github.io/open-gpu-doc/ NVidia open-gpu-doc Webseite
  14. https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-Open-GPU-Docs Phoronix News Artikel zu "NVIDIA Starts Publishing GPU Hardware Documentation To Help Open-Source Drivers"