"--Scale 2x2" in xrandr bewirkt, dass der Monitor nichts anzeigt

11

Ich habe einen externen 4k-Hauptmonitor und versuche, links davon einen externen 1680x1050-Monitor anzuschließen.

Ich habe versucht:

 xrandr --output HDMI-0 --scale 2x2 --pos 0x0 --fb 7200x2160 --output DP-4 --pos 3360x0

Das scheint zu funktionieren, und wenn ich mir anschaue, was der Computer in den NVIDIA-Einstellungen für richtig hält, wird links von meinem 4K-Monitor korrekt ein 3200x2160-Monitor angezeigt.

Auf meinem externen Monitor wird jedoch nur Schwarz mit einer flackernden Linie oben angezeigt.

Die einzige Möglichkeit, dies zu korrigieren, besteht darin, die Skalierung auf 1x1 zurückzusetzen. An diesem Punkt kehrt das Bild zurück (unter Beibehaltung der X-Server-Größe. Dies bedeutet, dass nur ein Totraum vorhanden ist, durch den ich scrollen muss, um zwischen meine Monitore zu gelangen).

Ich denke, das Problem liegt speziell in der 2x2-Skalierung in xrandr. Ich bin mir nicht sicher, was ich tun soll?

Der Computer läuft am 14.04. Und enthält eine NVIDIA GTX960 mit dem empfohlenen Treiber (352.63).

Hier ist meine xrandr-Ausgabe:

  Screen 0: minimum 8 x 8, current 7200 x 2160, maximum 16384 x 16384
  DVI-I-0 disconnected (normal left inverted right x axis y axis)
  DVI-I-1 disconnected (normal left inverted right x axis y axis)
  DP-0 disconnected (normal left inverted right x axis y axis)
  DP-1 disconnected (normal left inverted right x axis y axis)
  DP-2 disconnected (normal left inverted right x axis y axis)
  DP-3 disconnected (normal left inverted right x axis y axis)
  HDMI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
     1680x1050      59.9*+   60.0  
     1280x1024      75.0     60.0  
     1280x960       60.0  
     1152x864       75.0  
     1024x768       75.0     70.1     60.0  
     800x600        75.0     72.2     60.3     56.2  
     640x480        75.0     72.8     59.9  
  DP-4 connected primary 3840x2160+3360+0 (normal left inverted right x axis y axis) 527mm x 296mm
     3840x2160      60.0*+   30.0  
     2560x1440      60.0  
     2048x1280      60.0  
     1920x1200      59.9  
     1920x1080      60.0     60.0     59.9     50.0     24.0     60.0     50.0  
     1600x1200      60.0  
     1600x900       60.0  
     1280x1024      75.0     60.0  
     1280x720       60.0     59.9     50.0  
     1152x864       75.0  
     1024x768       75.0     60.0  
     800x600        75.0     60.3  
     720x576        50.0     50.1  
     720x480        59.9     60.1  
     640x480        75.0     59.9     59.9  
m4p85r
quelle
Ich habe das gleiche Problem. Es scheint bis zu einer Größe von 1,71 x 1,71 zu funktionieren. Alles, was größer ist, führt dazu, dass eine kleinere Anzeige leer wird
Maciej Wozniak,
Leider habe ich das nie behoben. Ich habe versucht, zwei Monitore zu betreiben, einen mit und einen ohne Skalierung. Wenn Sie nur versuchen, mit 2x Skalierung zu arbeiten, ist dies mit Cinammon sehr einfach. Ich glaube, es gibt einen Weg, Unity dazu zu bringen, es auch zu tun.
m4p85r

Antworten:

5

Ich wollte nur hinzufügen, dass dies etwas ist, mit dem ich schon lange zu kämpfen habe, und jedes Mal habe ich einfach aufgegeben - bis ich mich entschied, es ein für alle Mal herauszufinden. Die folgende Lösung funktioniert für mich, ich hoffe, sie funktioniert auch für Sie.

tl; dr: Konfigurieren ForceFullCompositionPipeline=On

Hintergrund

Ein Teil davon ist auch in der Hoffnung, mehr Schlüsselwörter bereitzustellen, falls jemand mit einem ähnlichen Problem nach einer Lösung sucht.

Mein Setup ist:

  • ThinkPad P50 mit integriertem 4K-Display bei 3840 × 2160 (primär)
  • Ein externer Monitor als sekundäres Display - Dell U2412M - 1920 × 1200

Ich benutze Ubuntu Gnome 16.04 LTS.

Wenn ich den Monitor über ein HDMI-Kabel + einen HDMI-zu-DVI-Wandler anschließe (da der Monitor keinen HDMI-Eingang hat), war alles zu groß. In verschiedenen Online-Artikeln wurde vorgeschlagen, diese Anzeige xrandrzu konfigurieren --scale 2x2, was dazu führte, dass sie fast vollständig schwarz war und nur eine dünne Linie oben sichtbar war.

Ich bin auf diese Frage gestoßen, und während die 2x2.001Skalierungslösung es dem Monitor ermöglichte, tatsächlich Inhalte anzuzeigen, fügte er unter dem X-Bildschirm ein zusätzliches Pixel hinzu, was zu einem leichten Scrollen nach oben / unten führte, wenn die Cursor den oberen / unteren Rand des Bildschirms erreichten.

Nach vielem Googeln, von denen viele Probleme und keine Lösungen ergaben, stieß ich auf Folgendes: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -Überwachungsergebnisse-in-verstümmelter-Anzeige-für-Werte-über-3211x1800

Um es zu testen, habe ich dies mit den folgenden Befehlen xrandrkonfiguriert - vorausgesetzt, es wurde noch keine Skalierung konfiguriert.

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0}

Dies zeigt den CurrentMetaModeWert an und hier habe ich die ForceFullCompositionPipeline=OnOption zu beiden Anzeigen hinzugefügt . Beachten Sie, dass dies DPY-4mein eingebautes Laptop-Display ist, während DPY-1es sich um den externen Monitor handelt.

Die eigentliche Zeichenfolge, die konfiguriert werden muss, ist die nachfolgende ::in der Ausgabe dieses Befehls.

$ nvidia-settings --assign CurrentMetaMode="DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0, ForceFullCompositionPipeline=On}"

Danach rannte ich:

$ xrandr --output DP-1 --scale=2x2

Schließlich war die externe Anzeigeauflösung ohne Scrollen oder andere Probleme in Ordnung.

Beachten Sie, dass sich das nach dem Ausführen dieser Befehle CurrentMetaModeetwas von dem unterscheidet, was zugewiesen wurde, wahrscheinlich aufgrund der angewendeten Skalierung:

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @3840x2400 +3840+0 {Transform=(2.000000,0.000000,0.000000,0.000000,2.000000,0.000000,0.000000,0.000000,1.000000), ViewPortIn=3840x2400, ViewPortOut=1920x1200+0+0, ResamplingMethod=Bilinear, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}

Hoffe, das löst das Problem auch für jemand anderen!

Milos Levacic
quelle
4

Ich hatte genau das gleiche Problem. Ich habe es gelöst mit --scale 2x2.001. Seltsamerweise --scale 2x1.999oder 2x2.0001nicht funktioniert, versuchen Sie also unbedingt mehrere Zahlen um 2.

Igogo
quelle
Ich hatte auch dieses Problem ... Brute Force für mr
juggernauthk108
Was hast du brutal erzwungen? Werte von 2?
m4p85r
Und wie seltsam! Danke für den Beitrag. Am Ende gab ich einfach auf. Ich habe tatsächlich einen zweiten Computer, der jetzt über Synergie verbunden ist. Funktioniert ganz gut, wenn ich gelegentlich Windows-Anwendungen benötige (zweiter Computer ist Win)
m4p85r
Das funktioniert tatsächlich. Jemand sollte das melden ... trotzdem, großes Dankeschön!
Columbo
2

Vielen Dank, Milos, für Ihre hervorragende Lösung, die für mich gut funktioniert hat!

Ich habe eine kleine Ergänzung. Neben der Verwendung der Befehlszeile können Sie diese auch bequem ForceFullCompositionPipelinein der Benutzeroberfläche von Nvidia-Settings einstellen . Gehen Sie dazu zu "X Server Display Configuration", klicken Sie auf "Advanced" und aktivieren Sie einfach die Option "Force Full Composition Pipeline". Ein Beispiel finden Sie unter https://imgur.com/a/3jE78 .


PS: Ich verwende ein Triple-Head-Setup mit zwei externen Monitoren (1920 x 1080; 1680 x 1050) und einem internen 3k-Monitor (3840 x 2160). Damit dies funktioniert, wende ich die folgende xrandr-config an:

xrandr --output eDP-1-1 --auto --output HDMI-0 --auto --scale 2x2 --above eDP-1-1 --output DP-1 --auto --scale 2x2 --rotate left --right-of eDP-1-1
Nicolaj Kirchhof
quelle