Hallo!
Schön dass sich jemand dieser Sache annimmt. So einen Artikel zu supporten wird eine menge Arbeit 😉 Nun zum Thema: Ich habe selbst ein Netbook mit Dual-GPU Konfiguration und be-'ackere' das Thema seit einiger Zeit. Eventuell kann ich das eine oder andere Sandkörnchen beitragen.
Erstmal ist es wichtig auf die verschiedenen Hardware Gegebenheiten hinzuweisen:
- Dual-GPU Laptops der ersten Generation: Diese Laptops verfügen über einen im Prozessor integrierten GPU der standardmäßig aktiv ist und einen dezidierten GPU. Solche Laptops der ersten Generation haben einen Schalter im BIOS mit dem man einstellen kann welcher GPU Modus aktiv sein soll. Hardwareseitig sind beide GPU's mit dem Bildschirm verkabelt und können diesen verwenden
- Dual-GPU Laptops der zweiten Generation: Diese Laptops haben keinen eigenen Schalter im Bios mit dem man den VGA Chip wählen kann, sondern der im CPU integrierte Grafik Chip ist standardmäßig aktiv und der dezidierte Chip fristet ein parasitäres Dasein, da er nur Strom frisst und (ohne Bumblebee) unter Linux keine weitere Funktion hat. Hardwaremäßig verfügen diese dezidierten Chips über keinen eigenen Mux zum Display sondern können nur über einen Framebuffer des im CPU integrierten GPU's auf den Bildschirm malen (das klingt jetzt ziemlich blöd auf deutsch, im english ist es logischer: 'Those dedicated GPU's can only draw to the screen via the framebuffer of the primary device').
- Dual GPU Laptops der dritten Generation: Diese Klasse hat auch keinen eigenen Schalter im Bios, jedoch kann man via einem acpi-call den Grafik Modus für den nächsten Boot wählen. Es stehen hier drei Grafik Modi zur Verfügung: Nur der im CPU integrierte GPU, Nur der dezidierte GPU und ein Dual-GPU Modus (Dies ist der eigentliche 'Optimus' Modus). Solche Laptops der dritten Generation erkannte man daran dass diese einen HDMI Ausgang haben (bevor die intel Sandybridge CPU's eingeführt wurden konnten die im CPU integrierten GPU's kein HDMI Device ansteuern), Die dezidierten Chips dieser Generation haben einen Hardware mux der es erlaubt direkt auf das Display- Device zuzugreifen und verwalten den HDMI Port exklusiv.
Nun zu Bumblebee:
Bei den Geräten der zweiten Generation hat der User die Wahl:
1) den dezidierten Chip mittels eines acpi_calls auszuschalten um so Energie zu sparen
2) einen weiteren X-Server am dezidierten GPU zu starten dessen Fenster sich in den primären Xserver "einnisten". Für Geräte dieser Generation bietet Bumblebee momentan die einzige Möglichkeit den dezidierten GPU zu verwenden/abzuschalten.
Bei den Geräten der dritten Generation hat der User die Möglichkeiten:
) den Grafik Modus selbst zu wählen (also nur der im CPU integrierte Chip ist aktiv oder nur der dezidierte Chip ist aktiv oder beide Chips sind aktiv)
2.) wenn beide Chips aktiv sind wird standardmäßig der im CPU integrierte Chip verwendet und der dezidierte Chip kann mittels eines acpi_calls ausgeschaltet werden
3.) wenn beide Chips aktiv sind wird standardmäßig der im CPU integrierte Chip verwendet und mittels Bumblebee kann ein weiterer X-Server am dezidierten GPU zugeschaltet werden dessen Fenster sich in den primären Xserver "einnisten".
Nun zu den Problemen von Bumblebee (Mein Netbook ist ein Protagonist der dritten Generation, also bezieht sich alles weitere auf diese Geräteklasse):
- Bumblebee erzeugt durch den weiteren Xserver einen recht großen overhead. Dies wirkt sich negativ auf die Performance des dezidierten GPU's aus, der mit Bumblebee weniger Leistung bringt als im "Exklusiven" Modus.
- Es gibt von Seiten der Hersteller keine öffentliche Dokumentation über die acpi Funktionen der Hardware. Die Acpi-Calls zum ausschalten der dezidierten GPU's sind deshalb im 'trial & error' Verfahren aus dsdl dumps extrahiert (sprich erraten) und können sehr unangenehme Nebenwirkungen (lockups ect.) haben.
- Bumblebee selbst setzt die GPU Mode für den nächsten Boot automatisch in den Dual-GPU Modus und macht das jedes mal wenn der dezidierte Chip aktiviert wird. Dies geht auf meinem Gerät genau einmal gut. Wird optirun während eines Boot Cycles ein zweites mal verwendet (und damit der Vga Modus für den nächsten Boot ein weiteres mal gesetzt) endet das bei mir in 99% der Fälle in einem kompletten System Lockup.
- Der HDMI Port kann im Dual-GPU Modus mit Bumblebee nicht verwendet werden da er wie oben erwähnt direkt mit dem dezidierten GPU verkabelt ist.
- Hardware-beschleunigte Video wiedergabe mittels vdpau soll bei einigen Modellen mit Bumblebee funktionieren, jedoch hab ich es nicht geschafft das meinem Gerät zu entlocken.
Also vom "Problem Solved", von dem Martin Juhl spricht, kann momentan leider noch keine Rede sein ☹