Aktualisierte 3D-Treibersammlung für Linux ermöglicht 3D in KVM-VMs

Eine neue Mesa-Version bringt Performance-Verbesserungen bei den 3D-Treibern für AMD-, Intel- und Nvidia-Chips. Über einen neuen Treiber kann Linux in virtuellen Maschinen die 3D-Beschleunigung von Wirten nutzen, die mit KVM virtualisieren.

In Pocket speichern vorlesen Druckansicht 27 Kommentare lesen
Linux: Aktualisierte 3D-Treibersammlung ermöglicht 3D in KVM-VMs
Lesezeit: 3 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Der 3D-Treiber Virgl ist eine der wichtigsten Neuerungen der jetzt erhältlichen Version 11.1 von Mesa – der Grafikbibliothek, in der die quelloffenen 3D-Treiber stecken, die alle großen Linux-Distributionen standardmäßig einrichten. Der neue Treiber ermöglicht 3D-Beschleunigung für virtuelle Maschinen (VMs), die mit der Kernel-eigenen Virtualisierungslösung KVM laufen.

Der für Linux-Gastsysteme gedachte Mesa-Treiber führt die 3D-Befehle dabei allerdings nicht selbst aus; er reicht sie vielmehr über den Linux-Kernel und den Systememulator Qemu an den Wirt durch, damit dessen Grafiktreiber die 3D-Befehle mit der Hardware-Beschleunigung seines Grafikchips ausführt. Dieses über mehrere Jahre unter dem Begriff "Virgl 3D" entwickelte Verfahren erforderte daher auch Änderungen an Kernel und Systememulator, die das im Januar erwartete Linux 4.4 und das noch für Dezember geplante Qemu 2.5 enthalten.

Die neue Mesa-Version enthält zudem einen verbesserten 3D-Treiber für Virtualisierungssoftware von VMware. Unter VMware Workstation 12 oder Fusion 8 laufende Linux-Gastsysteme sollen dadurch nun OpenGL 3.3 implementieren, was allerdings mindestens Linux 4.3 erfordert.

Der für AMDs moderne Grafikprozessoren zuständige 3D-Treiber Radeonsi erhielt neben einigen Fehlerkorrekturen und Funktionserweiterungen auch allerlei Feinschliff, der die 3D-Performance steigern soll. Das ist unter anderem der Unterstützung für Delta Color Compression (DCC) bei der neuesten Generation von Grafikchips zu verdanken; sie hat ein unabhängiger Entwickler ohne Hilfe der AMD-Mitarbeitern entwickelt, die den quelloffenen 3D-Treiber im Rahmen des Mesa-Projekts vorantreiben.

Intels 3D-Treiber beherrscht nun 16x Multisampling – allerdings nur bei Skylake-Prozessoren, zu denen die seit August verkauften Core-i-Modelle der 6000er-Reihe gehören.

Der für Qualcomms Snapdragon-Prozessoren der Reihen a3xx und a4xx zuständige 3D-Treiber Freedreno beherrscht jetzt OpenGL 3.1 und spricht nun auch den Grafikprozessor des a305 an. Radeonsi unterstützt bereits die AMD-APUs mit dem Codenamen "Stoney", die erst in einigen Monaten auf den Markt kommen sollen.

Es gab zudem einige Verbesserungen an der Unterstützung des VAAPI, über das Video-Player die Video-Beschleunigung moderner Grafikprozessoren nutzen können. Aufgrund einiger grundlegender Probleme dieser vorwiegend von Intel vorangetriebenen Programmierschnittstelle hat ein AMD-Entwickler indes die Unterstützung für MPEG4 Layer 2 im VAAPI-Code von Mesa lahmgelegt; diese Funktion lässt sich durch Setzen der Umgebungsvariable VAAPI_MPEG4_ENABLED reaktivieren. Die Probleme sitzen offenbar so tief, dass der AMD-Entwickler eine grundlegende Überarbeitung der MPEG4-Layer-2-Unterstützung beim VAAPI angeregt hat.

Wie sein Vorgänger unterstützt auch Mesa 11.1 maximal OpenGL 4.1 – und auch das nur bei Radeonsi und dem zu Nouveau gehörenden NVC0-Treiber. Der Intel-Treiber beherrscht nach wie vor nur OpenGL 3.3. Die Intel-Entwickler arbeiten aber an Unterstützung für weitere OpenGL-Features; dadurch sieht es derzeit so aus, als würde der Treiber bei der nächsten, für März geplanten Mesa-Version bereits OpenGL 4.2 unterstützten. Der R600-Treiber wird bei dieser Version erstmals OpenGL 4.1 implementieren; allerdings nur bei einigen Chips der Reihen Evergreen und Northern Islands, die unter anderem auf Radeon-Grafikkarten im Modellnummernbereich 5000 bis 7670 sitzen. (thl)