Linux: Mesa 18.2 verbessert 3D-Performance und Grafikkarten-Unterstützung

Mesa 18.2

Trends & News | News

Support für VR-Brillen, OpenGL-4.3-Unterstützung in einem VM-Treiber und Performance-Verbesserungen bei den 3D-Treibern von AMD und Intel sind Highlights von Mesa 18.2.

Das Mesa-Projekt hat eine neue Version seiner Grafikbibliothek veröffentlicht, die auch die 3D-Treiber enthält, die Linux-Distributionen wie Fedora und Ubuntu typischerweise einrichten. Jede neue Version hat daher größere Auswirkungen auf die Hardware-Unterstützung und die Spieltauglichkeit. Daher hat sich c't die neue Version etwas näher angesehen. Zu den Highlight zählen Support für VR-Brillen, OpenGL-4.3-Unterstützung in einem Treiber für virtuelle Maschinen und die Unterstützung für höhere OpenGL-Level. Außerdem gab es zahlreiche signifikante Performance-Verbesserungen bei den Treibern für Grafikprozessoren von AMD und Intel. Mesa 18.2 bringt zudem einen Treiber für GPUs mit, die laut Gerüchten in zukünftigen Varianten des Raspberry Pi stecken könnten.

Mesa 18.2 verbessert den Support für VR-Brillen wie die HTC Vive.

Die in Mesa enthaltenen Vulkan-Treiber Anvil und Radv unterstützen jetzt einige von X-Urgestein Keith Packard für SteamVR entwickelte Erweiterungen. Mit ihnen sollen sich die auch Head-mounted Displays (HMD) genannten VR-Brillen besser unter Linux nutzen lassen, denn durch die Erweiterungen kann der Display-Server die Kontrolle über Teilfunktionen der Grafikhardware an VR-Software überstellen, damit diese die Ressourcen frei und ungestört verwenden kann. Diese "DRM_Object Lease Infrastructure" ist dabei auf Funktionen im Kernel angewiesen, die Linux seit Version 4.15 mitbringt.

Einen großen Sprung vorwärts hat auch der Treiber Virgl gemacht, denn er beherrscht jetzt OpenGL 4.3 und OpenGL ES 3.2. In virtuellen Maschinen laufende Linux-Distributionen können diesen Treiber nutzen, um zusammen mit einem in Linux 4.4 eingeflossen Treiber die 3D-Beschleunigung von Linux-Hosts zu nutzen. Google nutzt diesen Weg auch bei ChromeOS.

Neu dabei ist der OpenGL-Treiber V3D (zeitweise unter dem Namen "VC5" entwickelt), der Broadcoms Grafikeinheiten VideoCore V (VC5) und VideoCore VI (VC6) unterstützt. Der Treiber ist auf den gleichnamigen Kernel-Treiber angewiesen, der jüngst in Linux 4.18 eingeflossen ist.

Die beiden Broadcom-GPUs sind Nachfolger des Broadcom VideoCore IV (VC4), der in den SoCs sitzt, den alle bisher erhältlichen Raspberry-Pi-Modelle als Prozessor verwenden. Mainstream-Distributionen wie Debian oder Fedora unterstützen diese VC4 genannte Treiber im Linux-Kernel und in Mesa. Genau wie die beiden V3D-Treiber stammen diese größtenteils von Eric Anholt, den Broadcom extra zum Schreiben eines quelloffenen Grafiktreiberstacks für Raspis angeheuert hat. Schon in der Frühphase der Entwicklung der V3D-Treiber hat das zu Gerüchten geführt, zukünftige Raspis würden eine der beiden neueren VideoCore-Einheiten erhalten.

Der RadeonSI-Treiber beherrscht jetzt die Kantenglättung mit EQAA (Enhanced Quality Anti-Aliasing). Statt Support für OpenGL 3.1 weist AMDs Treiber für moderne Radeon-GPUs jetzt Unterstützung für OpenGL 4.4 aus, wenn Anwendungen lediglich das "Compatibility Profile" anfordern. Dieses Profil ist für Software gedacht, die neben Funktionen neuerer OpenGL-Versionen auch welche von älteren Versionen nutzen wollen, die mit neueren Version fallen gelassen wurden. Das ist etwa zur Unterstützung kommerzieller Software wichtig, bei denen Teile nie auf aktueller OpenGL-Versionen angepasst wurden. Das Ganze ist aber auch für eine Reihe von Spielen relevant, die das Compatibility Profile brauchen oder schlicht aus Nachlässigkeit verwenden; dazu gehören etwa einige per Wine ausführbare Spiele für Windows. Im "Core Profile" unterstützt der Treiber nach wie vor OpenGL 4.5.

Der RadeonSI-Treiber, den AMD selbst vorantreibt, beherrscht jetzt auch OpenGL ES 3.2. Das ist unter anderem dem Support für den verlustbehafteten Textur-Kompressionsalgorithmus ASTC (Adaptive Scalable Texture Compression) zu verdanken. Dieser ist ins Mesa-eigene Framework Gallium3D eingeflossen, was es den Autoren anderer Gallium3D-Treiber erleichtert, die Technik zu implementieren.

AMDs OpenGL-Treiber weiß bereits eine neue und noch nicht angekündigte Generation der Vega-GPU anzusprechen, die derzeit unter ihrem Codenamen "Vega20" bekannt ist. Laut Spekulationen handelt es sich dabei um eine überarbeitete Fassung der Vega10-GPU, die auf AMDs derzeit leistungsfähigster Grafikkarte Radeon RX Vega 64 sitzt; der zugehörige Kernel-Treiber unterstützt diese neue Vega-Generation seit Linux 4.18 experimentell.

AMD-Entwickler haben allerlei Performance-Optimierungen vorgenommen, um die Prozessorlast des OpenGL-Treibers zu reduzieren oder den Grafikchips deutlich mehr Grafikleistung zu entlocken; eine Reihe davon soll insbesondere die 3D-Leistung von Vega-GPUs steigern. Dadurch soll der Mesa-Treiber den proprietären OpenGL-Grafiktreiber von AMDs Treiberpaket AMDGPU-PRO in der 3D-Performance noch häufiger als bislang hinter sich lassen.

Allerlei Feintuning und Performance-Verbesserungen gab es auch beim in Mesa enthaltenen Vulkan-Treiber Radv, der unabhängig von AMD entstand und nach wie vor weiterentwickelt wird. AMDs Entwickler arbeiten am quelloffenen und unabhängig von Mesa vorangetriebenen Vulkan-Treiber AMDVLK, den das Unternehmen Ende 2017 veröffentlicht hatte, nachdem es diesen schon eine ganze Weile in Aussicht gestellt hatte. Radv war zu der Zeit schon ein Jahr lang Bestandteil von Mesa und bewältigte auch Vulkan-Konformitätstests. Mittlerweile implementiert er auch das im April veröffentlichte Vulkan 1.1.

Vorwiegend aus der Intel-Ecke kamen einige Grundlagen, um die OpenGL-Extensions GL_ARB_gl_spirv und GL_ARB_spirv_extensions bald sowohl in Mesa als auch in Intels OpenGL-Treiber i965 zu unterstützen. Das sind die letzten beiden Extensions, die dem Treiber zur Unterstützung von OpenGL 4.6 fehlen; das gleiche gilt aber auch für den Radeonsi-Treiber, dessen Entwickler auch auf 4.6-Support hinarbeiten.

Intels Vulkan-Treiber Anvil (ANV) erhielt allerlei Feintuning, um die Performance zu verbessern. Genau wie Radv beherrscht auch dieser Treiber Vulkan 1.1.

Neben den erwähnten Änderungen gab es noch viele weitere – insbesondere bei den Treibern für die Grafikeinheiten, die in System-on-Chips (SoCs) mit ARM-Kern stecken. Details zu diesen und weiteren Neuerungen erläutern die Ankündigung und den Freigabehinweisen von Mesa 18.2.

Wie immer gilt die neue Major-Version von Mesa als Development Release. Auf Stabilität bedachte Anwender sollen laut den Entwicklern vorerst bei der Versionsreihe 18.1 bleiben und auf 18.2.1 warten, das in wenigen Wochen erscheinen soll. Das im Oktober erwartete Fedora 29 wird das neue Mesa nutzen, Ubuntu 18.10 nach derzeitigem Stand allerdings nicht.

Das nächste Major-Release dürfte in zwei bis drei Monaten folgen und die Versionsnummer 18.3 tragen. (thl)

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. Die Mesa-Treiber sind in der Regel auch die besten und schnellsten für Radeon-GPUs von AMD. Für Nvidia-Hardware sind sie aber nur bedingt geeignet: Der für GeForce-GPUs zuständigen Mesa-Treiber Nouveau entlockt Nvidias Grafikprozessoren nur einen Bruchteil des Leistungspotenzials, das die proprietären Linux-Treiber des Herstellers locker machen. Das ist bereits für nur halbwegs anspruchsvolle Spiele 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; etwas ausführlicher hat die c't die Situation im zweiseitigen Artikel "Grafik-Hardware für Linux-Anwender" beleuchtet, der in c't 24/2017 erscheinen ist.

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 in Linux-Distributionen mit – allen voran die verwendeten Kernel-Grafiktreiber, denn diesen nutzen die Treiber für OpenGL, Vulkan, Video-Decoding, Video-Encoding, OpenCL usw., um mit der Grafik-Hardware zu kommunizieren. Details zum Zusammenwirken dieser verschiedenen Treiber liefert der im Herbst 2014 erschienene und kostenfrei abrufbare c't-Artikel "Die Grafiktreiber-Architektur von Linux".

Kommentare

Anzeige