“--Scale 2x2” no xrandr faz com que o monitor não exiba nada

11

Eu tenho um monitor principal externo de 4k e estou tentando conectar um monitor externo de 1680x1050 à esquerda dele.

Eu tentei usar:

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

que parece que deveria funcionar, e quando olho para o que o computador pensa que está acontecendo nas configurações da nvidia, ele exibe corretamente um monitor de 3200x2160 à esquerda do meu monitor de 4k.

No entanto, no meu monitor externo, apenas mostra preto com uma linha trêmula na parte superior.

A única maneira de corrigir isso é redefinir o redimensionamento para 1x1, quando a imagem retorna (mantendo o tamanho do servidor X. Isso significa que há apenas espaço morto que eu preciso percorrer para passar entre meus monitores).

Então eu acho que o problema está especificamente relacionado ao dimensionamento 2x2 no xrandr. Eu não tenho certeza do que fazer?

O computador está executando o 14.04 e possui uma nvidia GTX960 com o driver recomendado (352.63)

Aqui está minha saída 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
fonte
Estou tendo o mesmo problema. Parece estar funcionando na escala 1.71x1.71. Tudo maior causa menor exposição para ir em branco
Maciej Wozniak
Infelizmente nunca consegui consertar isso. Eu estava tentando executar dois monitores, um com escala e outro sem. Se você está apenas tentando rodar na escala 2x, é muito fácil com o Cinammon. Eu acredito que há uma maneira de fazer o Unity fazer isso também.
M4p85r 17/05

Respostas:

5

Só queria acrescentar que isso é algo com o qual estou lutando há muito tempo, e cada vez que desisti - até que decidi descobrir de uma vez por todas. A solução abaixo funciona para mim, espero que funcione para você também.

tl; dr: configurar ForceFullCompositionPipeline=On

fundo

Parte disso também espera fornecer mais palavras-chave, caso alguém com um problema semelhante acabe procurando a solução.

Minha configuração é:

  • ThinkPad P50 com um monitor 4K embutido em 3840 × 2160 (primário)
  • Um monitor externo como monitor secundário - Dell U2412M - 1920 × 1200

Eu uso o Ubuntu Gnome 16.04 LTS.

Quando conecto o monitor através de um cabo HDMI + um conversor HDMI-DVI (como o monitor não possui uma entrada HDMI), tudo era muito grande. Vários artigos online sugeriram o uso xrandrpara configurar --scale 2x2nessa tela, o que resultou em quase completamente preta, com apenas uma linha fina visível na parte superior.

Eu me deparei com essa pergunta e, embora a 2x2.001solução de dimensionamento permitisse que o monitor realmente exibisse coisas, ele também adicionou um pixel extra abaixo da tela X, o que resultou em uma pequena rolagem para cima / baixo quando os cursores atingem a parte superior / inferior da tela.

Depois de pesquisar bastante no Google, muitos dos quais resultaram em problemas e sem soluções, deparei-me com isso: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -monitor-results-in-ilegível-display-for-values-over-3211x1800

Portanto, para testá-lo, configurei isso usando os seguintes comandos - suponha que xrandrainda não tenha sido configurado com a 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}

Isso exibe o CurrentMetaModevalor e foi aqui que adicionei a ForceFullCompositionPipeline=Onopção aos dois monitores. Observe que DPY-4é a tela do meu laptop embutida, enquanto DPY-1o monitor externo.

A sequência real que precisa ser configurada é a seguinte ::na saída desse 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}"

Depois disso, corri:

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

Finalmente, a resolução do monitor externo foi boa, sem rolagem ou outros problemas.

Observe que, após a execução desses comandos, CurrentMetaModeé um pouco diferente do que foi atribuído, provavelmente devido à aplicação da 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 isso resolva o problema para outra pessoa também!

Milos Levacic
fonte
4

Eu tive exatamente o mesmo problema. Eu resolvi isso --scale 2x2.001. Por estranho que pareça, --scale 2x1.999ou 2x2.0001não funcionou, tente vários números em torno de 2.

igogo
fonte
Eu tive esse problema vigor também ... bruta funcionou para mr
juggernauthk108
O que você força bruta? Valores de 2?
M4p85r
E que estranho! Obrigado pelo post. Acabei desistindo. Na verdade, agora tenho um segundo computador conectado via sinergia. Funciona muito bem para aplicações do Windows quando eu ocasionalmente precisa (segundo computador é vitória)
m4p85r
Isso realmente funciona. Alguém deveria relatar isso ... de qualquer maneira, muito obrigado!
Columbo
2

Obrigado Milos por sua excelente solução, que funcionou bem para mim!

Eu tenho uma pequena adição. Além de usar a linha de comando, você também pode definir confortavelmente a ForceFullCompositionPipelineinterface do usuário da Nvidia-Settings. Para isso, acesse "X Server Display Configuration", clique em "Advanced" e ative a opção "Force Full Composition Pipeline". Consulte https://imgur.com/a/3jE78 para um exemplo.


PS: Estou usando uma configuração de cabeça tripla com dois monitores externos (1920x1080; 1680x1050) e um monitor interno de 3k (3840x2160). Para que isso funcione, aplico o seguinte 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
Nicolaj Kirchhof
fonte