«--Scale 2x2» dans xrandr empêche le moniteur d'afficher quoi que ce soit

11

J'ai un moniteur principal externe 4k et j'essaie de connecter un moniteur externe 1680x1050 à sa gauche.

J'ai essayé d'utiliser:

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

ce qui semble que cela devrait fonctionner, et quand je regarde ce que l'ordinateur pense se passe dans les paramètres nvidia, il affiche correctement un moniteur 3200x2160 à gauche de mon 4k.

Cependant, sur mon moniteur externe, il n'y a que du noir avec une ligne vacillante en haut.

La seule façon de corriger cela est de réinitialiser la mise à l'échelle à 1x1, point auquel l'image revient (tout en conservant la taille du serveur X. Cela signifie qu'il y a juste un espace mort que je dois parcourir pour passer entre mes moniteurs).

Je pense donc que le problème est spécifiquement lié à la mise à l'échelle 2x2 dans xrandr. Je ne sais pas quoi faire?

L'ordinateur fonctionne sous 14.04 et contient un nvidia GTX960 avec le pilote recommandé (352.63)

Voici ma sortie 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  
m4p85r
la source
J'ai le même problème. Il semble fonctionner à l'échelle 1.71x1.71. Tout ce qui est plus grand fait que l'écran est plus petit
Maciej Wozniak
Malheureusement, je n'ai jamais réussi à résoudre ce problème. J'essayais de faire fonctionner deux moniteurs, l'un avec mise à l'échelle et l'autre sans. Si vous essayez simplement de courir à l'échelle 2x, c'est très facile avec Cinammon. Je pense qu'il y a un moyen pour que Unity le fasse aussi.
m4p85r

Réponses:

5

Je voulais juste ajouter que c'est quelque chose avec lequel je me bats depuis longtemps, et chaque fois que je viens d'abandonner - jusqu'à ce que je décide de le comprendre une fois pour toutes. La solution ci-dessous fonctionne pour moi, j'espère qu'elle le fera aussi pour vous.

tl; dr: Configurer ForceFullCompositionPipeline=On

Contexte

Une partie de cela est également dans l'espoir de fournir plus de mots clés au cas où quelqu'un ayant un problème similaire finit par chercher la solution.

Ma configuration est:

  • ThinkPad P50 avec écran 4K intégré à 3840 × 2160 (principal)
  • Un moniteur externe comme écran secondaire - Dell U2412M - 1920 × 1200

J'utilise Ubuntu Gnome 16.04 LTS.

Lorsque je branche le moniteur via un câble HDMI + un convertisseur HDMI-DVI (car le moniteur n'a pas d'entrée HDMI), tout était trop grand. Divers articles en ligne suggéraient d'utiliser xrandrpour configurer --scale 2x2sur cet affichage, ce qui l'a rendu presque entièrement noir, avec seulement une fine ligne visible en haut.

Je suis tombé sur cette question et bien que la 2x2.001solution de mise à l' échelle ait permis au moniteur d'afficher réellement des choses, elle a également ajouté un pixel supplémentaire sous l'écran X, ce qui a entraîné un léger défilement vers le haut / bas lorsque les curseurs atteignent le haut / bas de l'écran.

Après beaucoup de recherches sur Google, dont beaucoup ont donné lieu à des problèmes et à aucune solution, je suis tombé sur ceci: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -moniteur-résultats-en-affichage-brouillé-pour-valeurs-sur-3211x1800

Donc, pour le tester, je l'ai configuré à l'aide des commandes suivantes - supposons qu'il xrandrn'a pas encore été configuré avec mise à l'échelle.

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

Cela affiche la CurrentMetaModevaleur et c'est là que j'ai ajouté l' ForceFullCompositionPipeline=Onoption aux deux écrans. Notez que DPY-4c'est mon écran d'ordinateur portable intégré, alors que DPY-1c'est le moniteur externe.

La chaîne réelle qui doit être configurée est celle qui suit ::dans la sortie de cette commande.

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

Après cela, j'ai couru:

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

Enfin, la résolution de l'affichage externe était correcte, sans défilement ni aucun autre problème.

Notez qu'après avoir exécuté ces commandes, le CurrentMetaModeest un peu différent de ce qui a été attribué, probablement en raison de la mise à l'échelle appliquée:

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

J'espère que cela résout le problème pour quelqu'un d'autre aussi!

Milos Levacic
la source
4

J'ai eu exactement le même problème. Je l'ai résolu avec --scale 2x2.001. Curieusement, --scale 2x1.999ou 2x2.0001n'a pas fonctionné, assurez-vous donc d'essayer plusieurs nombres autour de 2.

igogo
la source
j'ai aussi eu ce problème ... la force brute a fonctionné pour mr
juggernauthk108
Qu'avez-vous brutalisé? Valeurs de 2?
m4p85r
Et comme c'est étrange! Merci pour le post. J'ai fini par abandonner. J'ai en fait un deuxième ordinateur maintenant connecté via synergie. Fonctionne très bien lorsque j'ai parfois besoin d'applications Windows (le deuxième ordinateur est gagnant)
m4p85r
Cela fonctionne réellement. Quelqu'un devrait le signaler ... de toute façon, merci beaucoup!
Columbo
2

Merci Milos pour votre excellente solution, qui a bien fonctionné pour moi!

J'ai un petit ajout. En plus d'utiliser la ligne de commande, vous pouvez également configurer confortablement l' ForceFullCompositionPipelineinterface utilisateur de Nvidia-Settings. Pour cela, vous devez aller dans "Configuration d'affichage du serveur X", cliquez sur "Avancé" et activez simplement l'option "Forcer le pipeline de composition complète". Veuillez consulter https://imgur.com/a/3jE78 pour un exemple.


PS: J'utilise une configuration à trois têtes avec deux moniteurs externes (1920x1080; 1680x1050) et un moniteur 3k interne (3840x2160). Pour que cela fonctionne, j'applique la xrandr-config suivante:

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
la source