Hardwarebeschleunigung und Xinerama für Multi-Monitor / Multi-GPU unter Linux aktivieren

2412
mynameiscoffey

Mein aktuelles Setup besteht aus drei Monitoren, die wie folgt angeschlossen sind (Monitore von links nach rechts aufgelistet):

GPU0 (nVidia GTX 280):
- Dell 2405FPW (1920x1200)
- Dell U2410 (1920x1200)
GPU1 (nVidia 210):
- Dell 2405FPW (1920x1200)

Funktioniert unter Windows 7 wie ein Zauber, weniger unter Linux. Ich habe scheinbar nur drei echte Optionen:

  1. Wenn Sie alle drei Monitore als separaten X-Bildschirm ausführen, erhalte ich eine Hardwarebeschleunigung. Da es sich jedoch um unabhängige X-Sitzungen handelt, kann ich keine Fenster zwischen ihnen verschieben und Firefox nur zu einem bestimmten Zeitpunkt geöffnet haben.
  2. Führen Sie die beiden auf GPU0 im TwinView-Modus aus und verwenden Sie GPU1 als separaten X-Bildschirm. Gleiche Einschränkung wie bei 1, aber mindestens zwei Monitore funktionieren zusammen. Ich hatte ein Problem, bei dem Linux gelegentlich beide Monitore auf GPU0 als einen einzigen großen Monitor sah.
  3. Aktivieren Sie Xinerama und haben Sie alles so, wie ich es will, aber die Hardwarebeschleunigung ist weg und das Display ist abgehackt im Windows 95-Stil.

Meine ideale Lösung wäre, dass alle Bildschirme wie unter Xinerama funktionieren, ohne dass die Hardwarebeschleunigung deaktiviert ist. Es ist mir auch nicht wichtig, ob dies bedeutet, alle drei auf GPU0 zu rendern und irgendwie das Display des dritten Monitors auf GPU1 aufzubereiten, was auch immer funktioniert.

Meine Frage ist folgende: Gibt es eine Möglichkeit, dies zu erreichen? Ich habe nicht das Gefühl, dass mein Use Case so draußen ist, dass es nicht irgendeine Form der Unterstützung geben sollte (jenseits der drei begrenzten Möglichkeiten, die oben dargestellt wurden), oder es ist meine beste Option, es einfach aufzusaugen und auszuwählen eine bessere Karte, um beide zu ersetzen, die drei Ausgänge für sich alleine verarbeiten kann?

10
Beantwortet [this] (http://de.download.nvidia.com/XFree86/Linux-x86/256.35/README/sli.html) Ihre Frage? Naftuli Kay vor 11 Jahren 1

2 Antworten auf die Frage

1
Akim Sissaoui

Dies ist ein Skript, das ich unter Linux Mint mit XFCE für dieselbe Art von Setup erstellt habe. Xinerama nicht verwenden. Mein Setup war das 1. Monitor-Portrait, 2. und 3. Landschaft. Lief wie am Schnürchen. Die 5 Sekunden Pause beim Start war, dass die Sitzung mit der Sitzung gestartet wurde. Wenn sie zu früh ausgeführt wurde, funktionierte sie nicht richtig.

Beachten Sie auch, dass ich in meinem speziellen Beispiel die Bildschirme unten ausrichten musste, da einer höher war als die anderen. Die Ausrichtung an der Oberseite ergab nicht das erwartete Verhalten.

Am Ende war Xrandr die einzige Möglichkeit, die Arbeit so zu machen, wie ich es wollte.

Probieren Sie es mit Ihren eigenen Einstellungen aus

#!/bin/bash sleep 5 xrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \ --output DVI-1-1 --mode 1920x1080 --pos 3120x840 \ --output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left 

Ich habe einen Artikel in meinem Blog geschrieben, der jedoch auf Französisch ist: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/

0
runeks

Du hast im Grunde selbst geantwortet. Unter Linux ist dies derzeit nicht möglich, da Linux keine geeignete Unterstützung für mehrere GPUs bietet.

Die Unterstützung mehrerer GPUs für Linux wurde als Projekt für den Google Summer of Code vorgeschlagen. Aber es ist sehr unwahrscheinlich, dass Sie in Kürze zur Hauptzeit bereit sein werden, wenn Sie mich fragen.