"--Escala 2x2" en xrandr hace que el monitor no muestre nada


11

Tengo un monitor principal externo de 4k y estoy tratando de conectar un monitor externo de 1680x1050 a la izquierda.

He intentado usar:

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

parece que debería funcionar, y cuando miro lo que la computadora piensa que está sucediendo en la configuración de nvidia, muestra correctamente un monitor de 3200x2160 a la izquierda de mi 4k.

Sin embargo, en mi monitor externo solo aparece negro con una línea parpadeante en la parte superior.

La única forma en que puedo corregir esto es restablecer la escala a 1x1, momento en el que la imagen regresa (manteniendo el tamaño del servidor X. Esto significa que solo hay espacio muerto por el que tengo que desplazarme para pasar entre mis monitores).

Así que creo que el problema tiene que ver específicamente con la escala de 2x2 en xrandr. ¿No estoy seguro de qué hacer?

La computadora ejecuta 14.04 y tiene una nvidia GTX960 con el controlador recomendado (352.63)

Aquí está mi salida 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  

Estoy teniendo el mismo problema Parece estar funcionando a escala 1.71x1.71. Todo más grande hace que la pantalla más pequeña se quede en blanco
Maciej Wozniak

Lamentablemente nunca logré arreglar esto. Estaba tratando de ejecutar dos monitores, uno con escala y otro sin. Si solo estás tratando de correr a una escala 2x, entonces es muy fácil con Cinammon. Creo que también hay una manera de lograr que Unity lo haga.
m4p85r

Respuestas:


5

Solo quería agregar que esto es algo con lo que he estado luchando durante mucho tiempo, y cada vez que me rendí, hasta que decidí resolverlo de una vez por todas. La solución a continuación funciona para mí, espero que también lo haga para usted.

tl; dr: configurar ForceFullCompositionPipeline=On

Antecedentes

Algo de esto también tiene la esperanza de proporcionar más palabras clave en caso de que alguien con un problema similar termine buscando la solución.

Mi configuración es:

  • ThinkPad P50 con una pantalla 4K integrada a 3840 × 2160 (primaria)
  • Un monitor externo como pantalla secundaria - Dell U2412M - 1920 × 1200

Yo uso Ubuntu Gnome 16.04 LTS.

Cuando enchufo el monitor a través de un cable HDMI + un convertidor de HDMI a DVI (ya que el monitor no tiene una entrada HDMI), todo era demasiado grande. Varios artículos en línea sugirieron usar xrandrpara configurar --scale 2x2en esa pantalla, lo que resultó en que era casi completamente negro, con solo una línea delgada visible en la parte superior.

Me topé con esta pregunta y, si bien la 2x2.001solución de escalado permitió que el monitor realmente mostrara cosas, también agregó un píxel adicional debajo de la pantalla X que resultó en un ligero desplazamiento hacia arriba / abajo cuando los cursores alcanzan la parte superior / inferior de la pantalla.

Después de mucho googlear, muchos de los cuales arrojaron problemas y no hubo soluciones, me topé con esto: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -monitor-results-in-garbled-display-for-values-over-3211x1800

Entonces, para probarlo, configuré esto usando los siguientes comandos: supongamos que xrandrtodavía no se ha configurado con escala.

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

Esto muestra el CurrentMetaModevalor y aquí es donde agregué la ForceFullCompositionPipeline=Onopción a ambas pantallas. Tenga en cuenta que DPY-4es la pantalla de mi computadora portátil incorporada, mientras que DPY-1es el monitor externo.

La cadena real que debe configurarse es la siguiente ::en la salida de ese 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}"

Después de esto, corrí:

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

Finalmente, la resolución de la pantalla externa estaba bien sin desplazamiento ni ningún otro problema.

Tenga en cuenta que después de ejecutar esos comandos, CurrentMetaModees un poco diferente de lo que se asignó, probablemente debido a la aplicación de la escala:

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

¡Espero que esto resuelva el problema para otra persona también!


4

Tuve exactamente el mismo problema. Lo resolví con --scale 2x2.001. Por extraño que parezca, --scale 2x1.999o 2x2.0001no funcionó, así que asegúrese de probar varios números alrededor del 2.


yo también tuve este problema ... la fuerza bruta funcionó para el señor
juggernauthk108

¿Qué hiciste fuerza bruta? Valores de 2?
m4p85r

¡Y qué extraño! Gracias por la publicacion. Terminé simplemente rindiéndome. De hecho, ahora tengo una segunda computadora conectada por sinergia. Funciona bastante bien para cuando ocasionalmente necesito aplicaciones de Windows (la segunda computadora gana)
m4p85r

Esto realmente funciona. Alguien debería informar que ... de todos modos, ¡muchas gracias!
Columbo

2

¡Gracias Milos por su excelente solución, que funcionó bien para mí!

Tengo una pequeña adición. Además de usar la línea de comando, también puede configurarlo cómodamente ForceFullCompositionPipelineen la interfaz de usuario de Nvidia-Settings. Para ello, debe ir a "Configuración de pantalla del servidor X", hacer clic en "Avanzado" y simplemente activar la opción "Forzar tubería de composición completa". Consulte https://imgur.com/a/3jE78 para ver un ejemplo.


PD: estoy usando una configuración de triple cabezal con dos monitores externos (1920x1080; 1680x1050) y un monitor interno de 3k (3840x2160). Para que esto funcione, aplico el siguiente 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.