Linux: Der beste schlechte Treiber, den ich je hatte
Schon bevor wir die Grafikkarte RX 480 in AMDs Referenzdesign als Testexemplar erhielten, konnte ich mich als Linux-Redakteur richtig freuen. Denn die Treiberunterstützung dafür war bereits mehrere Wochen vor Erscheinen der Karte frei verfügbar und in AMDs Pro-Treiber für Linux aufgenommen worden. Während der Hardware-Kollege also weiter auf den Windows-Treiber warten musste, konnte ich schon mal mit dem Testen anfangen.

Zugegeben, dieser kleine Zeitvorsprung ist kaum der Rede wert, denn auch in der Vergangenheit haben es die Hersteller der Grafikchips geschafft, pünktlich zur Veröffentlichung dazu passende Linux-Treiber bereitzustellen. Viel wichtiger war mir, dass ich zum Start einer neuen Hardware-Generation endlich einen guten Linux-Treiber nutzen konnte, der all meinen Anforderungen entspricht. Leider schneidet der neue Pro-Treiber von AMD aber nur im direkten Vergleich mit den Treibern von Intel und Nvidia gut ab. Er ist immer noch nicht so gut, wie ich das gern hätte.
Neue Architektur für AMDs Linux-Treiber weckte Hoffnungen
Denn von dem Pro-Treiber hatte ich mir erhofft, endlich eine Grafikkarte mit der für Spiele notwendigen Leistung unter Linux nutzen zu können und dabei weiter meine Tests und Spielereien mit Linux-Techniken durchführen zu können, ohne umständlich den Treiber oder gar die Grafikkarte beziehungsweise den -Chip wechseln zu müssen.
Darüber hinaus bin ich vor einigen Jahren noch teilweise schier verzweifelt, um aktuelle Grafikkarten fehlerfrei unter Linux zum Laufen zu bringen. Auch diese Zeit wähnte ich dank des Pro-Treibers längst in der Vergangenheit. Die Hoffnungen, die ich in die neue Treiber-Architektur gesetzt hatte, sind allerdings jäh zerstört worden, dabei hat das eigentlich alles so gut ausgesehen.
Im Oktober 2014 hat das Entwicklerteam von AMD erstmals bekanntgegeben, an einer komplett neuen Hybrid-Architektur zu arbeiten, die den freien und proprietären Treiber zusammenführen soll. Grundlage dieses Konzepts ist das freie Kernel-Modul AMDGPU. Darauf setzen die proprietären Userspace-Komponenten des Pro-Treibers ebenso auf, wie die alternativ angebotenen völlig freien Bestandteile. Knapp eineinhalb Jahre nach der Ankündigung und einige Wochen vor dem Polaris-Start ist der Pro-Treiber dann auch endlich erschienen.
Ein richtiger Linux-Treiber
Und wie von AMD versprochen, ist ein freies Kernel-Modul enthalten. Das bietet zudem einige Patches, die noch nicht offiziell in den Linux-Kernel aufgenommen worden sind. Für mich persönlich wichtiger als die damit verbundenen eventuellen Zusatzfunktionen ist aber, dass der Code für das Modul unter einer freien Lizenz steht und damit kompatibel zu den Lizenzbestimmungen des Linux-Kernels ist.
Dieser im Sinne der freien Software klare ethische Vorteil hat aber auch praktische Relevanz. So kann der Code, wenn es sein muss, auch von externen Entwicklern nach Fehlern durchsucht werden und die Verwendung von Vorabversionen des Linux-Kernels oder einer Rolling-Release-Distribution ist damit leicht möglich. Mit den proprietären Treibern von Nvidia ist das Erste gar nicht und das Zweite, wenn überhaupt, nur sehr schwer möglich, weshalb ich in bestimmten Situationen auf die Technik von Nvidia verzichten muss.
Zusätzlich dazu nutzt der Pro-Treiber aber auch die üblichen Schnittstellen der komplett freien Treiber wie etwa DRM(öffnet im neuen Fenster) oder GBM(öffnet im neuen Fenster). Auch deshalb hab ich mich auf den Pro-Treiber gefreut. Denn dies sollte die Verwendung anderer Techniken der Linux-Community wie etwa Wayland genauso einfach machen wie bei den freien Treibern, was das Testen deutlich vereinfachen sollte, da ich so, wie erwähnt, die lästigen Wechsel von Treiber oder Plattform nicht mehr durchführen muss.
Doch der Versuch, einen Wayland-Compositor zu verwenden, scheiterte kläglich mit einem Speicherzugriffsfehler. Das spricht klar für schwerwiegende Fehler im Code des Treibers. Diese nicht vorhandene Funktionalität ist damit noch schlechter als die Eigenlösung, die Nvidia an der Community vorbei für seinen proprietären Treiber umgesetzt hat. Das Problem mit dem Pro-Treiber von AMD scheint immerhin durch Bug-Fixes lösbar. Ob Nvidia die Community-Lösung für die Wayland-Architektur annimmt, ist schwer absehbar.
Der Pro-Treiber wird seinem Namen nicht gerecht
Anders als ich mir das vor dem Testen der Polaris-Karte mit dem Pro-Treiber gedacht habe, kann ich damit also zwar einen neuen Kernel ohne Probleme nutzen, für Wayland-Tests muss ich vorerst aber weiter auf die freien Treiber wechseln. Doch genau das wollte ich eigentlich vermeiden, denn wie so oft sind die freien Treiber zum Verkaufsstart der Hardware noch nicht fertig.
So befindet sich etwa das Linux-Kernelmodul offiziell noch in Entwicklung und ist deshalb noch nicht in Linux-Distributionen vorhanden. Deshalb begrüßt mich Ubuntu 16.04 beim ersten Start der RX 480 auch mit seltsamem Grafikmüll, der eine grafische Benutzung unmöglich macht. Da der in Ubuntu 16.04 genutzte Kernel 4.4 bereits zurückportierten Code der Version 4.5 verwendet, hätte AMD den Linux-Code zur Unterstützung der Polaris-Karten spätestens Anfang Januar dieses Jahres veröffentlichen müssen, damit mir der Grafikmüll erspart bleibt. Die Patches sind aber erst rund vier Monate später erschienen.
Das war zwar zu erwarten, trotzdem wäre es schön gewesen, wenn ich die Karte ohne solche Probleme einfach hätte in Betrieb nehmen können. Dass das prinzipiell funktionieren kann, zeigt das Treiberteam von Intel. Doch auch diesem unterlaufen peinliche Fehler. So hat es in diesem Jahr zum Beispiel vergessen, einige PCI-IDs für bestimmte Skylake-Grafikchips zu hinterlegen. Auch die Intel-Treiber sind zum Verkaufsstart einer neuen Grafikgeneration teilweise von schweren Fehlern betroffen. Da nutze ich doch lieber den proprietären Treiber.
Ausreichende Leistung zum Spielen
Darüber hinaus haben die proprietären Treiber einen weiteren entscheidenden Vorteil im Vergleich zu den freien Treibern: Sie bieten die Leistungsfähigkeit, um adäquate Benchmarks durchführen zu können, die auch Vergleiche mit Windows erlauben oder um schlicht einfach mal selbst zu zocken.
Für Letzteres sind die freien Treiber einfach nicht geeignet. Denn die 3D-Treiber der Grafikbibliothek Mesa unterstützen noch nicht alle Versionen der OpenGL-Spezifikation. Auch wenn sich die Entwickler mit ihrem freien Treiber der vollständigen Unterstützung langsam annähern, bleibt das Problem, dass diese kaum zum Spielen geeignet sind. Denn ob die Hardware tatsächlich die zum Spielen benötigte Leistung bringt, hängt sehr stark vom Treiber ab.
Weil mich die freien Treiber hier bisher nicht überzeugen konnten, bleibt nur, die proprietären Treiber zu verwenden. Doch offenbar ist das Linux-Team von AMD mit den unterschiedlichen Varianten seiner Treiber etwas überfordert. Das zeigt sich zum Beispiel an der Umsetzung der Energieverwaltung für die Polaris-Karten.
So haben die Entwickler auch noch in der Woche vor der Veröffentlichung der RX 480 wichtige Veränderungen an der Steuerung der Energieverwaltung im Linux-Kernel vorgenommen und die Patches zunächst allein für den freien Treiber veröffentlicht, statt sie in den Pro-Treiber zu integrieren. AMD konnte oder wollte uns zudem keine aktualisierte Version des Pro-Treibers anbieten. Wegen der damit verbundenen unzureichenden Aussagekraft haben wir im Test der RX 480 keine Linux-Benchmarks durchgeführt.
Nicht gut, aber besser als die anderen
Dem Pro-Treiber fehlt zudem für die Polaris-Karten noch Software zur Unterstützung aller Hardware-Funktionen wie das für HDR notwendige 10-Bit-Profil des H.265-Codecs. Letzteres sollte über die Schnittstelle VDPAU angeboten werden, die von vielen Playern zur hardwarebeschleunigten Wiedergabe von Videos genutzt wird. Doch VDPAU unterstützt dieses Codec-Profil noch nicht. Davon ist auch der proprietäre Treiber von Nvidia betroffen.
Trotz all der aufgezählten Probleme ist der Pro-Treiber aber schon jetzt besser als die anderen Linux-Treiber. Immerhin kann ich damit die Vorabversionen des Kernels testen oder auf eine Rolling-Release-Distro setzen, was bei Nvidia unmöglich ist. Ebenso kann ich mit dem Pro-Treiber eine deutlich bessere Leistung erzielen als mit den freien Treibern. Das ist für die Desktop-Nutzung zwar nicht relevant, aber Linux kann seit einigen Jahren eben auch zum Spielen genutzt werden und dafür ist die Leistung sehr wichtig.
Mir bleibt damit nur zu hoffen, dass das Team von AMD die Probleme etwa mit Wayland oder VDPAU durch schnell durch Patches lösen kann. Dann hätte ich endlich den Linux-Treiber, den ich mir wünsche.
- Anzeige Hier geht es zu AMD-Grafikkarten bei Alternate Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.