staging.inyokaproject.org

PRIME: Grundlage für Hybridgrafik in 12.10 mit freien Treibern gelegt

software.png

Hybridgrafikkarten wurden bisher relativ bescheiden unter Linux behandelt. PRIME soll eine Grundlage für die gute Unterstützung von Hybridgrafikkarten legen.

Mit Erscheinen von Ubuntu 12.10 gibt es erstmals Unterstützung für Laptops mit AMD und Nvidia Hybridgrafik: Dave Airlies PRIME ist in Ubuntu 12.10 integriert, wenn auch nur rudimentär. So gibt es noch Probleme mit manchen Anwendungen, die nicht oder fehlerhaft gerendert werden. Außerdem existiert noch keine graphische Oberfläche, um eine Anwendung auf der AMD bzw. Nvidia Grafikkarte zu starten. Das Setzen eines Präfixes genügt aber, wie unser Wikiartikel PRIME zeigt. Powermanagement, also das Ab- und Anschalten der stromfressenden dedizierten GPU ist noch nicht implementiert, kann jedoch mittels switcheroo manuell realisiert werden.

Da PRIME – im Gegensatz zu Bumblebee – keinen zweiten XServer benötigt, wird die Performance nicht durch den Bildtransport zwischen den XServern limitiert. Das hat zur Folge, dass der normalerweise deutlich langsamere freie Nouveau-Treiber mit PRIME die Leistung des proprietären Nvidia-Treibers unter Verwendung von Bumblebee – je nach Anwendung – annähernd erreicht oder übertrifft. So zeigt beispielsweise ein Nexuiz Timedemo Benchmark als Maximum 94 FPS, Bumblebee mit Nvidia-Treiber erreicht hingegen nur 65 FPS.

Dieser Vergleich wurde auf einer Nvidia GT 420M (Fermi) GPU durchgeführt, die recht gut vom Nouveau Treiber unterstützt wird. Bei den aktuellen Kepler GPUs ist die 3D Unterstützung teils noch im Alpha-Stadium. Ebenso ist bei Verwendung des Radeon-Treibers, z. B. mit AMD Northern Islands GPUs, ein Kernel ≥ 3.6 und unter Umständen eine aktuellere Version des Radeon-Treibers nötig.

Zu der guten Performance kommt die Befriedigung, eine echte, in Kernel und Treiber integrierte Lösung zu benutzen, statt eines – wenn auch sehr guten – Workarounds wie Bumblebee.

Interessant wäre jetzt natürlich die Performance des proprietären Nvidia-Treibers mit PRIME. Allerdings verweigern 🇬🇧 einige der Linux-Kernel Entwickler Nvidia aus lizenzrechtlichen Gründen die Nutzung von „DMA buffer sharing“, der Technik, die hinter PRIME steckt, was für einige Endverbraucher ärgerlich ist. Immerhin gibt es ein neues Projekt namens primus, das Bumblebee stark beschleunigt. Ikhaya wird in Kürze auch darüber berichten.


Ein großes Dankeschön an realzippy für den eingereichten Artikel.

Veröffentlicht von svij | 2. November 2012 22:40 | Kategorie: Software | # Fehler im Artikel melden

Polix

Avatar von Polix
1 3. November 2012 09:50

Erster! 😀

Ich verstehe es nicht, warum diese Entwickler die Nutzung von "DMA buffer sharing" verweigern? Es passiert doch nichts schlimmes, außer Freude der leidenden Hardware-Besitzer....

Letalis_Sonus

2 3. November 2012 11:42

@1: Du musst auch immer sehen, was dahinter steckt - es geht letztendlich darum, ob die Schnittstellen wirklich nur Schnittstellen nach außen sind oder ob sie quasi GPL lizenzierten internen Code darstellen oder zugänglich machen, dessen Nutzung aus rechtlicher Sicht die GPL erfordert. Eben jene Entwickler (und deren Anwälte) sind eben der Meinung, dass diese Schnittstellen zu viele Interna freilegen, um sie uneingeschränkt zugänglich zu machen. Das heißt letztendlich, dass das benutzende Kernel Modul ebenfalls GPL lizenziert sein muss, und das wird bei Nvidia so schnell nicht passieren. Es geht beim Konflikt eben in erster Linie um eine juristische Angelegenheit und weniger um die Haltung Nvidia gegenüber - so ist Dave Airle völlig egal ob Nvidia es nutzt oder nicht, seiner Meinung nach ist einfach die juristische Ansicht der sich quer stellenden Entwickler falsch.

Es ist zwar gerade im mobilen Bereich häufig anzutreffen, dass ein freies Kernel Modul mit proprietären Userspace Code kombiniert wird (weshalb man sich auch weigert diese Module direkt in den Kernel Entwicklungszweig zu integrieren - es gibt keinen freien Code der diese nutzt), aber Nvidia hat sich um so viel Code wie möglich zwischen den Plattformen zu teilen ein sehr steifes Gerüst aufgebaut, das sich nicht so schnell anpassen lässt (siehe die Jahre die ins Land gingen um RandR 1.2 zu unterstützen), und das Management hat da auch noch mitzureden, und von dem was man bei Phoronix hört sind die bei solchen Sachen nicht gerade wohlwollend.

Küchenschabe

3 3. November 2012 13:28

Was mich mehr interessieren würde ist, welche Methode man jetzt mehr empfehlen kann, wenn Bumblebee jetzt mit Primus beschleunigt werden kann.

realzippy

4 3. November 2012 15:59

Hängt vom Nvidia Chip ab, bzw. von dessen Unterstützung durch Nouveau. Einfach ausprobieren 😉

Schlafmuetze82

5 3. November 2012 23:15

@3: Hatte es heute mal mit meiner NVIDIA GeForce GT 540M probiert, da funktionierte das Spiel Borderlands unter Wine nicht beim Einsaz von Prime, mit Hilfe von Primus hingegen schon.

Benno-007

6 3. November 2012 23:56

Sehr schöne Erklärung im Artikel, um wieder ein bisschen mehr im Bilde zu sein.

Grüße, Benno

Küchenschabe

7 4. November 2012 01:28

@4 und @5 Danke erstmal für die Antwort. Habe es mal mit den glxspheres probiert und da war Primus am schnellsten allerdings auch erst nach dem ich

export vblank_mode=0

ausgeführt hatte.

Octavian

Avatar von Octavian
8 4. November 2012 18:36

Oha, gut das ich über diesen Artikel gestolpert bin. Mit diesem "Trick" funktioniert auch ATI (AMD-Graphics) + Intel. Dies ist im aktuellen bumblebee wohl noch nicht möglich. In den Entwicklungs-Repositories hab ich zwar schon etwas in die Richtung gesehen...

Aber so funktioniert es für mich einwandfrei ☺ Danke realzippy für diesen Artikel.

H.i.M

Avatar von H.i.M
9 4. November 2012 23:12

Es muss doch möglich sein eine Schnittstelle zu kreieren, welche sowohl von proprietären, als auch freien Graphikkomponenten genutzt werden kann..

pprian

10 11. November 2012 12:54

Habe ein Dell XPS15 nit NVIDIA Gt540. Unter Ubuntu ist mir lange Laufzeit und leise Lüfter wichtig, nicht die 3d fähigkeit. Bumblebee funktioniert gut, Primus nicht getestet. Prime funktioniert noch nicht richtig, der PC läßt sich nicht ausschalten oder in den Ruhezustand versetzen bei deaktivierter Nvidia Karte. Akkulaufzeit & Lüftergeräusche beider Systeme scheinen vergleichbar, auch vergleichbar mit Windows. Somit scheint bei allen die Nvidia Karte sauber abgeschaltet zu werden.

Wegen der bei Prime nur manuellen Umschaltung sowie der Bugs beim herunterfahren verwende ich weiterhin bumblebee.

Wenn jemand auf vergleichbarer Hardware Prime sauber zum laufen gebracht hat, würde ich mich über Tipps freuen.