A resolução de 2560x1440 só é possível via DisplayPort.
Note que os "hacks" na rede não são suportados na maioria dos modelos de monitores.
Apesar de no seu caso ser possível, o linux suporta apenas os modos "oficiais" AFAIK.
Anexei um novo monitor de 2560 x 1440 (Dell P2416D) com HDMI ao meu laptop de inicialização dupla (Asus N56VJ) que possui a tecnologia de duas GPUs da NVIDIA.
No Windows 8.1, consegui que o monitor fosse executado com sua resolução nativa e taxa de atualização de 60 Hz, criando uma resolução personalizada nas configurações da NVIDIA. O menu de exibição também mostra que está executando 2560x1440 @ 60 Hz, portanto não há downscaling envolvido.
No entanto, no Ubuntu 15.10, não tive sorte em ativar a resolução nativa. O widget de configurações de exibição oferece apenas tamanhos de imagem de até 2048x1152 e a execução do Xrandr falha da seguinte maneira:
fabio@fabio-N56VJ:~$ xrandr --newmode 2560x1440 311.825 2560 2744 3024 3488 1440 1441 1444 1490 +hsync +vsync
fabio@fabio-N56VJ:~$ xrandr --addmode HDMI-0 2560x1440
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 36
Current serial number in output stream: 37
Eu tentei modelines geradas pela ferramenta gtf
e aquelas baseadas nas configurações do Windows exportadas pelo PowerStrip.
Estou executando os drivers binários mais recentes da NVIDIA disponíveis no Ubuntu, o que significa nvidia-352
.
Meu cabo HDMI também suporta a especificação 1.4, embora esse não deva ser o problema, já que a tela está funcionando bem no Windows.
Existe alguma maneira de eu forçar o X.org ou o Xrandr a forçar o modo, ou outra maneira de usar o display sem escalar?
A resolução de 2560x1440 só é possível via DisplayPort.
Note que os "hacks" na rede não são suportados na maioria dos modelos de monitores.
Apesar de no seu caso ser possível, o linux suporta apenas os modos "oficiais" AFAIK.
Provavelmente o clock de pixel 311.83MHz é muito alto para sua GPU ou monitor. Tente com outras linhas de modo com relógios de pixel mais baixos. Por exemplo, 2560x1440 a 60Hz (redução de blanking) adquirida por cvt -r
:
$ cvt -r 2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
$ xrandr --newmode 2560x1440@60R 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
$ xrandr --addmode HDMI-0 2560x1440@60R
Ou aceite taxas de atualização inferiores a 60 Hz:
$ xrandr --newmode 2560x1440@55 220.812 2560 2608 2640 2720 1440 1443 1448 1478 -hsync -vsync
$ xrandr --newmode 2560x1440@45 227.75 2560 2720 2992 3424 1440 1443 1448 1480 -hsync +vsync
$ xrandr --newmode 2560x1440@30 146.25 2560 2680 2944 3328 1440 1443 1448 1468 -hsync +vsync
Meu notebook antigo com CPU Sandy Bridge parece incapaz de pclk acima de 225MHz sobre HDMI, mas faz com sucesso a saída HDMI de 2560x1440 @ 55Hz para o ASUS PB278Q ou o DELL U2713H.
Observe que as taxas de atualização muito baixas, como 30 Hz, podem não ser suportadas pelo seu monitor. O ASUS PB278Q processa padrões psicodélicos para esses dados.