Mesa 17.3: Performance-Optimierungen bei den 3D-Treibern für Linux

Mesa 17.3: Weiterer Performance-Schub für 3D-Treiber von Linux

Trends & News | News

Eine Reihe von Linux-Spielen laufen mit dem neuen Mesa schneller und flüssiger. Auch die Vulkan-Treiber für Grafikprozessoren von AMD und Intel machen größere Sprünge.

Viel Feintuning bei den OpenGL-Treibern, deutliche Fortschritte beim Vulkan-Treiber für Radeon-GPUs und endlich Support für eine aus DirectX-6-Zeiten stammende Technik – das sind die Highlights der jetzt erhältlichen Version 17.3 von Mesa. Die Grafikbibliothek und Treibersammlung enthält die 3D-Treiber, die Linux-Distributionen standardmäßig verwenden. Die Neuerungen von Mesa 17.3 werden die Spieltauglichkeit und Hardware-Kompatibilität von Fedora, Ubuntu & Co. verbessern – besonders bei Systemen mit AMD- und Intel-Grafik (siehe Kasten am Artikelende).

Anzeige
Was gemeinhin als "Linux-Grafiktreiber" bezeichnet wird, ist in Wirklichkeit eine Familie eng zusammenarbeitender Treiber. (Bild:  c't 23/2014, S. 160)

Das neue Mesa kann per S3 Texture Compression (S3TC) komprimierte Texturen handhaben. Das verbessert die Spielekompatibilität, weil die schon für DirectX 6 und OpenGL 1.3 erforderliche Technik eine Grundvoraussetzung vieler Spiele ist. Schon länger gibt es daher zwei Open-Source-Implementierungen, die S3TC-Support nachrüsten. Mesa und viele Distributionen haben sie aber bis vor Kurzem außen vor gelassen, weil S3TC lange durch Patente geschützt war. Die sind jüngst abgelaufen, daher haben die Entwickler jetzt die Libdxtn integriert.

Der in Mesa steckende Vulkan-Treiber Radv, der moderne Radeon-GPUs von AMD unterstützt, stemmt jetzt die Vulkan-Konformitätstests. Dank einer ganzen Reihe von Optimierungen sollte er jetzt mehr 3D-Leistung liefern. Nachdem AMDs OpenGL-Treiber bei Mesa 17.1 einen Binary Shader Cache erhalten hat, kann nun auch jener für Vulkan solch einen Zwischenspeicher nutzen. Der hilft, Ruckler bei Szenenwechseln zu vermeiden und reduziert die Ladezeiten, sodass Spiele teilweise deutlich schneller starten. Darüber hinaus haben die Programmierer hinter dem weitgehend unabhängig von AMD entwickelten Radv-Treiber den Support für GPUs der Vega-Generation verbessert.

Radeonsi, dem von AMD selbst vorangetriebene OpenGL-Treiber für moderne Radeon-GPUs, hat viel Feintuning bekommen. Das beseitigt einige Spiel-spezifische Fehler und steigert die Performance teils merklich. Ferner wurde auch hier der Vega-Support erheblich verbessert.

Bei den folgenden Spiele macht das neuen Mesa mehr Grafikleistung locker: Dreamfall Chapters, Hitman, Renowned Explorers, Sid Meier's: Civilization Beyond Earth, Overlord, Overlord 2, Oil Rush, Outlast, Spec Ops: The Line und die Saints-Row-Reihe. Diese stehen jetzt nämlich auf der seit Mesa 17.2 mit Anwenderhilfe gepflegten Whitelist, die den bei Mesa 17.1 integrierten "OpenGL Threaded Dispatch" in Spielen automatisch aktiviert, wo er keine Probleme bereitet und die Leistung steigert. Davon profitiert bislang insbesondere der Radeonsi-Treiber.

Bei den OpenGL-Treibern von AMD und Intel fehlt nicht mehr zum Support von OpenGL 4.6. (Bild:  mesamatrix.net (10.11.2017))

Intels Entwickler haben ihren Vulkan-Treiber um Unterstützung für einige jüngst zum Vulkan-Standard hinzugefügte Erweiterungen bereichert. Der OpenGL-Treiber i965 unterstützt jetzt mehr der bei OpenGL 4.6 vorgeschriebenen Erweiterungen. Es fehlt nur noch der Support für GL_ARB_gl_spirv und GL_ARB_spirv_extensions, um die im Sommer freigegebene Programmierschnittstelle voll zu unterstützen. Das gleiche gilt auch für Radeonsi. Die Entwickler von AMD und Intel haben aber bereits Änderungen in petto, um beide Lücken zu stopfen.

Anzeige

Mesa liegt nun auch ein Treiber für die VideoCore V (VC5) genannte Grafikeinheit bei, die im vornehmlich für Settop-Boxen gedachten Broadcom BCM7268 steckt. Dieser Grafikkern stellt eine Weiterentwicklung von VC4 dar, die in den Broadcom-Prozessoren auf den verschiedenen Raspberry-Pi-Modellen sitzen. Der Treiber stammt vom eigens von Broadcom angeheuerten Programmierer, der die quelloffenen Linux-Kernel- und Mesa-Treiber für VC4 entwickelt. Am Kernel-Treiber für VC5 arbeitet er noch. Einige Details zu den Treiberfamilien VC4 und VC5 hat der Entwickler Anfang September in einem Vortrag vorgestellt, von dem Videoaufzeichnung und Folien im Netz abrufbar sind.

Neben den erwähnten Änderungen gab es noch viele weitere – insbesondere bei den Treibern für SoCs mit ARM-Kern. Der OpenGL-Treiber Etnaviv, der die vor allem in i.MX-SoCs von Freescale verbauten Vivante-GCxxx-GPUs unterstützt, beherrscht jetzt etwa OpenGL 2.1. Details zu diesen und weiteren Neuerungen erläutern die Freigabeankündigung und die Release Notes von Mesa 17.3.

Wie immer gilt ein neue Major-Version von Mesa als Development Release. Auf Stabilität bedachte Anwender sollen laut den Entwicklern bei der Vorversion bleiben und auf 17.3.1 warten, das in wenigen Wochen erscheinen soll. Das nächste Major-Release soll in zirka drei Monaten folgen und dürfte die Versionsnummer 18.0 tragen.

Bedeutung der Mesa-Treiber für Grafikprozessoren von PCs

Die in Mesa enthaltenen OpenGL- und Vulkan-Treiber sind die besten und einzig relevanten Linux-3D-Treiber für die Grafikkerne aktueller Intel-Prozessoren. Mesas Treiber sind zumeist auch die besten für Radeon-GPUs von AMD. Für Nvidia-Hardware sind sie aber nur bedingt geeignet: Die für GeForce-GPUs zuständigen Mesa-Treiber entlocken diesen Grafikprozessoren nur einen Bruchteil des Leistungspotenzials, das die proprietären Linux-Treiber des Herstellers locker machen. Für nur halbwegs anspruchsvolle Spiele ist das zu wenig, für moderne Desktop-Oberflächen, Büroanwendungen und Internet-Browser reichen die Mesa-Treiber aber zumeist aus.

Weitere Hintergründe zu diesen groben Einordnungen liefern ein Kasten in einem Artikel zu Mesa 17.2; auch der zweiseitige Artikel "Grafik-Hardware für Linux-Anwender" aus c't 24/2017 beleuchtet die Situation.

Die 3D-Treiber in Mesa entscheiden übrigens keineswegs allein über Performance und Funktionsumfang, denn sie sind nur ein Teil einer eng zusammenarbeitenden Familie von Treibern. Andere Mitglieder bestimmen über 3D-Leistung und Hardware-Support mit – allen voran die verwendeten Kernel-Grafiktreiber, über den Treiber für 3D, Video, OpenCL & Co. mit der Grafik-Hardware kommunizieren. Teilweise ist sogar LLVM im Spiel. Details zum Zusammenwirken der verschiedenen Treiber liefert der im Herbst 2014 erschienene und kostenfrei abrufbare c't-Artikel "Die Grafiktreiber-Architektur von Linux".

(thl)

Kommentare

Anzeige
Anzeige