“--Scale 2x2” in xrandr impedisce al monitor di non visualizzare nulla


11

Ho un monitor principale esterno 4k e sto cercando di collegare un monitor esterno 1680x1050 a sinistra.

Ho provato a usare:

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

che sembra che dovrebbe funzionare, e quando guardo ciò che il computer pensa stia succedendo nelle impostazioni di nvidia mostra correttamente un monitor 3200x2160 a sinistra del mio 4K.

Tuttavia sul mio monitor esterno mostra solo nero con una linea tremolante nella parte superiore di esso.

L'unico modo in cui posso correggere questo è ripristinare il ridimensionamento a 1x1 a quel punto l'immagine ritorna (mantenendo le dimensioni del server X. Ciò significa che c'è solo uno spazio morto che devo scorrere per passare tra i miei monitor).

Quindi penso che il problema sia specificamente legato al ridimensionamento 2x2 in xrandr. Non sono sicuro di cosa fare?

Il computer esegue 14.04 e ha un nvidia GTX960 con il driver consigliato (352.63)

Ecco il mio output xrandr:

  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  

Sto avendo lo stesso problema. Sembra funzionare fino alla scala 1.71x1.71. Tutto ciò che è più grande causa lo svuotamento del display più piccolo
Maciej Wozniak,

Purtroppo non sono mai riuscito a risolvere questo problema. Stavo cercando di eseguire due monitor, uno con ridimensionamento e uno senza. Se stai solo cercando di eseguire il ridimensionamento 2x, è molto facile con Cinammon. Credo che ci sia un modo per convincere anche Unity a farlo.
m4p85r,

Risposte:


5

Volevo solo aggiungere che questo è qualcosa con cui sto combattendo da molto tempo, e ogni volta che ho appena rinunciato - fino a quando non ho deciso di capirlo una volta per tutte. La soluzione qui sotto funziona per me, spero lo faccia anche per te.

tl; dr: configura ForceFullCompositionPipeline=On

sfondo

Parte di questo è anche nella speranza di fornire più parole chiave nel caso in cui qualcuno con un problema simile finisca per cercare la soluzione.

La mia configurazione è:

  • ThinkPad P50 con display 4K incorporato a 3840 × 2160 (primario)
  • Un monitor esterno come display secondario - Dell U2412M - 1920 × 1200

Uso Ubuntu Gnome 16.04 LTS.

Quando collego il monitor tramite un cavo HDMI + un convertitore da HDMI a DVI (poiché il monitor non ha un ingresso HDMI), tutto era troppo grande. Vari articoli online hanno suggerito di utilizzare la xrandrconfigurazione --scale 2x2su quel display, il che lo ha reso quasi completamente nero, con solo una linea sottile visibile in alto.

Mi sono imbattuto in questa domanda e mentre la 2x2.001soluzione di ridimensionamento ha consentito al monitor di visualizzare effettivamente le cose, ha anche aggiunto un ulteriore pixel sotto lo schermo X che ha provocato un leggero scorrimento su / giù quando i cursori raggiungono la parte superiore / inferiore dello schermo.

Dopo molti Googling, molti dei quali hanno prodotto problemi e nessuna soluzione, mi sono imbattuto in questo: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -monitor-risultati-in-display incomprensibili-per-valori-over-3211x1800

Quindi per provarlo, l'ho configurato usando i seguenti comandi: supponiamo che xrandrnon sia stato ancora configurato con il ridimensionamento.

$ 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}

Questo visualizza il CurrentMetaModevalore ed è qui che ho aggiunto l' ForceFullCompositionPipeline=Onopzione a entrambi i display. Si noti che DPY-4è il display del mio laptop integrato, mentre DPY-1è il monitor esterno.

La stringa effettiva che deve essere configurata è quella successiva ::nell'output di quel comando.

$ 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}"

Dopo questo, ho corso:

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

Infine, la risoluzione del display esterno andava bene senza scorrimento o altri problemi.

Nota che dopo aver eseguito questi comandi, CurrentMetaModeè un po 'diverso da quello che è stato assegnato, probabilmente a causa dell'applicazione del ridimensionamento:

$ 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}

Spero che questo risolva il problema anche per qualcun altro!


4

Ho avuto esattamente lo stesso problema. L'ho risolto con --scale 2x2.001. Stranamente, --scale 2x1.999o 2x2.0001non ha funzionato, quindi assicurati di provare diversi numeri intorno a 2.


ho avuto anche questo problema ... forza bruta risolta per mr
juggernauthk108

Cosa hai fatto della forza bruta? Valori di 2?
m4p85r,

E che strano! Grazie per il post. Ho finito per arrendermi. In realtà ho un secondo computer ora collegato tramite sinergia. Funziona abbastanza bene quando ho bisogno occasionalmente di applicazioni Windows (il secondo computer è win)
m4p85r

1
Questo funziona davvero. Qualcuno dovrebbe segnalarlo ... comunque, grazie mille!
Columbo,

2

Grazie Milos per la tua eccellente soluzione, che ha funzionato bene per me!

Ho una piccola aggiunta. Oltre a utilizzare la riga di comando, puoi anche impostare comodamente l' ForceFullCompositionPipelineinterfaccia utente di Nvidia-Settings. Per questo devi andare su "Configurazione display X Server", fare clic su "Avanzate" e attivare l'opzione "Forza pipeline a composizione completa". Per un esempio, consultare https://imgur.com/a/3jE78 .


PS: sto usando una configurazione a tripla testa con due monitor esterni (1920x1080; 1680x1050) e un monitor 3k interno (3840x2160). Perché questo funzioni applico il seguente xrandr-config:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.