Como usar resoluções altas (4K) com hardware mais antigo

Pensando em comprar monitores 4K UHD, mas seu hardware atual não suporta? Comprou um monitor e ficou com 30Hz? Adie a atualização.
TL; DR: 3840 × 2160 a 43 Hz, 3200 x 1800 a 60 Hz. 2560 × 1440 a 86 Hz com Intel HD 3000 (Sandy Bridge); 3840 × 2160 @ 52 Hz com Intel Iris 5100 (Haswell).

Introdução

Muito tempo atrás, quando todos os monitores eram gordos e pesados, os computadores usavam resoluções fixas e timings para produzir algo na tela. Ele foi padronizado como Display Monitor Timings (DMT) e não havia nenhuma maneira universal de calcular as temporizações para resoluções personalizadas. Os monitores costumavam enviar resoluções suportadas do DMT usando um protocolo especial chamado EDID (Extended Display Identification Data) que armazenava a tabela DMT com os modos suportados. Conforme os tempos passam, os monitores sentiram o limite do DMT. Em 1999, a VESA anunciou a Generalized Timing Formula (GTF), cálculo de tempo universal (com precisão fixa). Apenas em 3 anos, em 2002, foi substituído pelo padrão Coordinated Video Timings (CVT), que era um pouco mais preciso.

Ambas as normas foram projetadas com a consciência da característica do tubo de raios odeodo, houve um atraso especial para o campo magnético se configurar adequadamente. Os ecrãs LCD eram muito mais rápidos e não havia necessidade de tais atrasos, o padrão CVT Reduced Blanking (CVT-R ou CVT-RB) nasceu exatamente como o CVT, mas para o novo tipo de ecrãs. Isso permitiu reduzir significativamente a largura de banda de interface necessária. Existe uma versão mais nova deste padrão, CVT-R2, mas não está disponível para acesso público, a VESA vende por US $ 350.

A história

Finalmente, depois de tantos anos, conseguimos comprar display de alta densidade para PC. Todos esses anos nós vimos um teatro absurdo onde os dispositivos móveis têm telas de 1920 × 1080 5 ", as lojas estavam cheias de TVs 4K (apesar de assistirmos de 2 a 4 metros de distância), mas os monitores estavam com os pixels do tamanho original. Digamos que Full HD é "bom o suficiente" para um monitor de 27 ", esquecendo completamente o último" bom o suficiente "para ir com o lançamento do iPad Retina. Na minha opinião, isso acontece principalmente porque as versões mais antigas do Windows não suportam densidade de pixel diferente e ficam bem apenas no Windows 8.1.

Bem, vamos encarar isso. Agora, em 2015, temos 246 modelos de TV e apenas 36 modelos de monitores, um dos quais – DELL P2415Q – tive a sorte de comprar por um preço relativamente baixo (€ 377). Esta é uma tela IPS de 23,8 "com resolução de 3840 × 2160 e densidade de pixels de 185 PPI com portas DisplayPort 1.2 e HDMI 1.4. Os primeiros monitores 4K foram detectados pelo SO como dois monitores diferentes e combinados em um por um driver de placa de vídeo. aconteceu porque os primeiros escaladores foram incapazes de operar em resolução total e os fabricantes de displays colocaram 2 scalers para metade (1920 × 2160) de resolução em cada monitor. Os monitores modernos se livraram de tal invasão, mas agora exigem adaptadores de vídeo mais poderosos. O Thinkpad X220 não suporta resoluções superiores a 2560 × 1440 de acordo com informações nos sites da Intel e da Lenovo. Podemos fazer alguma coisa com ele?

Padrões padrão e não-padrão

Monitores modernos e videocards não dão a mínima para resoluções e timings fixos de tempos de DMT. Eles podem trabalhar em uma ampla gama de resoluções e taxas de atualização. Vamos dar uma olhada nos detalhes técnicos do meu monitor :

 Faixa de varredura horizontal: 31 kHz a 140 kHz (automático) 
Faixa de varredura vertical: 29 Hz a 76 Hz (automático)

E a predefinição máxima:

 Modo de exibição: VESA, 3840 x 2160 
Freqüência Horizontal (kHz): 133.3
Freqüência Vertical (Hz): 60.0
Clock de Pixel (MHz): 533.25
Polaridade de Sincronização (Horizontal / Vertical): +/-

Então, por que o laptop não consegue lidar com resolução máxima?
A resposta é: relógio de pixel.

Muitos videocards, especialmente integrados em CPU, têm um limite de hardware para o clock de pixel. Como o EDID não tem resolução máxima, mas menor frequência vertical predefinida devido à limitação de tamanho, meu laptop não pode usar resolução máxima.

Infelizmente, os fabricantes de PCs e laptops raramente publicam clocks máximos de pixels para seus chips, mas apenas o máximo de resoluções suportadas, mas consegui encontrá-lo:

 Intel HD 3000 (Sandy Bridge): 389 kHz 
Haswell ULT (-U): 450 kHz
Haswell ULX (-Y): 337 kHz

O que deve ser feito e o que devemos fazer?

A resposta é óbvia – devemos baixar o relógio de pixel! Baixar o relógio de pixel nos permite obter taxas de atualização mais baixas. Como fazer isso? Precisamos gerar a chamada modeline, uma linha de informação de tempo. Há um monte de geradores disponíveis on-line, mas a maioria está muito além de sua data de validade e não sabe nada sobre o CVT-R que devemos usar. Eu recomendo que você use umc no Linux, PowerStrip no Windows e SwitchResX no Mac OS. By the way, SwitchResX é o único software pode fazer modelines usando CVT-R2, mas meu monitor não suporta isso.

Modeline tem a seguinte estrutura:

 Modelo "modeline_name" dot_clock hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal sinalizadores 

Dê uma olhada na tabela acima. A frequência vertical mínima do meu monitor é de 29 Hz. Vamos gerar modeline para 3840 × 2160 com taxa de atualização de 30 Hz:

 % umc 3840 2160 30 --rbt 
 # 3840x2160x29.98 @ 65.688kHz 
Modelo "3840x2160x29,98" 262.750000 3840 3888 3920 4000 2160 2163 2167 2191 + HSync -VSync

Como podemos ver, o clock de pixel é de 262,75 MHz para este modo, que é muito mais baixo do meu limite de adaptador.

Vamos tentar configurar e ativar este modo:

 % xrandr --newmode "3840x2160x29.98" 262.750000 3840 3888 3920 4000 2160 2163 2167 2191 + HSync -VSync 
% xrandr --addmode DP1 "3840x2160x29.98"
% xrandr --output DP1 --modo "3840x2160x29,98"

Se tudo correr bem, você verá uma imagem em "sem suporte" pela resolução do monitor. Viva!

Ainda temos muitos relógios de pixel e dificilmente alguém ficaria feliz em usar a tela com taxa de atualização de 30 Hz. Vamos aumentar a taxa de atualização até atingirmos um limite de 389 MHz de clock de pixel para meu adaptador. Para o clock de 389 MHz, obtemos uma taxa de atualização de 44,1 Hz.

 # 3840x2160x44.10 @ 97.250kHz 
Modelo "3840x2160x44.10" 389.000000 3840 3888 3920 4000 2160 2163 2167 2205 + HSync -VSync

Não é ótimo, mas ainda assim.

Como você pode ver, gerou a frequência horizontal – 97,25 KHz – em uma faixa de freqüência suportada. Assim como na frequência vertical, o monitor não se importa com “modos” fixos, então podemos usar 3200 × 1800 com taxa de atualização de 60 Hz – não tão baixa quanto 2560 × 1440 e com taxa de atualização usual.

 % umc 3200 1800 60 --rbt 
 # 3200x1800x59.98 @ 111.086kHz 
Modelo "3200x1800x59.98" 373.250000 3200 3248 3280 3360 1800 1803 1807 1852 + HSync -VSync

Podemos aplicar nossas modificações na inicialização de várias maneiras:

  • Edite informações EDID e direcione o driver para ele
  • Adicionar modeline às configurações do Xorg

O último é mais conveniente e eu uso. Se você escolher o primeiro, use o Phoenix EDID Designer.

Para usar a segunda maneira, devemos adicionar o arquivo de seção "Monitor" do Xorg e colocá-lo em /etc/X11/xorg.conf.d/:

 % cat /etc/X11/xorg.conf.d/30-dp1.conf 
Seção "Monitor"
Identificador "DP1"
ModelName "DELL P2415Q"
Modelo "3200x1800" 373.250000 3200 3248 3280 3360 1800 1803 1807 1852 + HSync -VSync
Modelo "3840x2160" 370,000000 3840 3888 3920 4000 2160 2163 2167 2203 + HSync -VSync
Opção "PreferredMode" "3200x1800"
EndSection

Onde Identificador é seu nome de saída do monitor xrandr. Com PreferredMode você pode definir o modo padrão.

Não funciona!

Certifique-se de conectar seu monitor com o DisplayPort 1.2. O HDMI 1.4 está limitado ao clock de 340 MHz, enquanto o DisplayPort (HBR2) permite até 540 MHz. Certifique-se também de que seu monitor suporta mais de 30 Hz com a mais alta resolução, porque os modelos mais antigos não podem fazer isso.

O fim

Não confie cegamente nos documentos técnicos dos seus monitores. Parece que o limite de frequência vertical é de 86 Hz em vez de 76 Hz na documentação. Eu posso desfrutar de uma imagem suave, embora não em uma resolução muito alta.