Aktivieren der Hardwarebeschleunigung und von Xinerama für Multi-Monitor / Multi-GPU unter Linux

10

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

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

Funktioniert wie ein Zauber in Windows 7, nicht so sehr in Linux. Ich habe anscheinend nur drei echte Optionen:

  1. Führen Sie alle drei Monitore als separaten X-Bildschirm aus. Ich erhalte eine Hardwarebeschleunigung. Da es sich jedoch um unabhängige X-Sitzungen handelt, kann ich keine Fenster zwischen ihnen verschieben und nur Firefox zu einem bestimmten Zeitpunkt auf einem öffnen.
  2. Führen Sie die beiden auf GPU0 im TwinView-Modus aus und verwenden Sie GPU1 als separaten X-Bildschirm. Gleiche Einschränkung wie 1, aber mindestens zwei Monitore arbeiten einwandfrei 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 lassen Sie alles so funktionieren, wie ich es möchte, aber die Hardwarebeschleunigung ist weg und die Anzeige ist im Windows 95-Stil abgehackt.

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

Meine Frage lautet: Gibt es eine Möglichkeit, dies zu erreichen? Ich habe nicht das Gefühl, dass mein Anwendungsfall so weit draußen ist, dass es nicht zumindest irgendeine Form von Unterstützung geben sollte (über die drei oben dargestellten eingeschränkten Optionen hinaus), oder meine beste Option ist es, ihn einfach aufzusaugen und auszuwählen eine bessere Karte, um beide zu ersetzen, die drei Ausgänge alleine verarbeiten können?

mynameiscoffey
quelle
1
Ist dies Ihre Frage beantwortet?
Naftuli Kay

Antworten:

1

Dies ist ein Skript, das ich unter Linux Mint mit XFCE für die gleiche Art von Setup erstellt habe. Xinerama nicht verwenden. Mein Setup war 1. Monitorporträt, 2. und 3. Querformat. Lief wie am Schnürchen. Die 5-Sekunden-Pause beim Start war darauf zurückzuführen, dass sie mit der Sitzung beginnen sollte. 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. Sich oben auszurichten war nicht das erwartete Verhalten.

Am Ende war die Verwendung von xrandr der einzige Weg, wie ich es so zum Laufen brachte, 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 verfasst, der jedoch auf Französisch ist: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/

Akim Sissaoui
quelle
0

Sie haben sich im Grunde selbst geantwortet. Dies ist derzeit unter Linux nicht möglich, da Linux keine ordnungsgemäße Unterstützung für mehrere GPUs bietet.

Als Projekt für den Google Summer of Code wurde die Unterstützung mehrerer GPUs für Linux vorgeschlagen . Aber es ist sehr unwahrscheinlich, dass es bald zur Hauptsendezeit bereit sein wird, wenn Sie mich fragen.

Runen
quelle