Configuração de renderização de subpixel diferente em monitores diferentes

13

Estou usando monitores duplos, um deles girado em 90 graus. Antialising de fonte não parece certo no monitor girado (ou seja, existem bordas de arco-íris em torno de caracteres).

Acredito que isso seja porque X está usando a mesma ordem de renderização de subpixel em ambos os monitores. Existe uma maneira de configurar ordens de renderização de subpixel diferentes para cada monitor? (isto é, monitor 1 = RGB e monitor 2 = vRGB).

    
por scaramouche 14.12.2014 / 23:37

1 resposta

5

Você teria que configurar suas exibições como telas X separadas, não como uma área de trabalho compartilhada. O Ubuntu deve então permitir que você ajuste a ordem de sub-pixels para telas X individuais.

Caso contrário, o que aconteceria com uma janela que abrangeria dois dispositivos de exibição com diferentes pedidos de subpixel? Ou ainda mais complicado, dois monitores no modo clone com diferentes ordens físicas (RGB vs BGR).

Esta é uma limitação conhecida para todos os sistemas operacionais no momento e precisaria de um grande redesenho para corrigi-lo. O ajuste dinâmico não é viável porque a biblioteca que está fazendo a renderização teria que saber em qual tela você está e ajustar dinamicamente. Além disso, suponha que você tenha metade de uma janela em uma tela e metade em outra - não saberia qual escolher.

Configurando várias telas X:

  1. Inicialize e reconfigure o X. %código% Siga as etapas para configurar a exibição principal. (Eu não sei de uma maneira de fazer essa etapa específica do CLI)
  2. Abra um terminal e
    sudo dpkg-reconfigure -phigh xserver-xorg
    Isso deve fornecer uma lista de seus dispositivos e seus IDs de ônibus. Encontre a placa gráfica e anote o ID do seu ônibus.
  3. Faça uma cópia do seu lspci como xorg.conf talvez e abra: xorg.conf.orig
  4. Leia isto ANTES procedendo para ter certeza de que você pode personalizá-lo o quanto quiser.
  5. Agora faça duas seções sudo vi /etc/X11/xorg.conf e liste o Device do cartão a ser compartilhado e também liste o driver assim:

    Section "Device"
        Identifier  "nvidia0"
        # Your preferred driver
        Driver      "nvidia"
        # Edit the BusID with the location of your graphics card
        BusID       "PCI:2:0:0"
        Screen      0
    EndSection
    
    Section "Device"
        Identifier  "nvidia1"
        # Your preferred driver
        Driver      "nvidia"
        # Edit the BusID with the location of your graphics card
        BusId       "PCI:2:0:0"
        Screen      1
    EndSection
    
  6. Agora crie duas seções BusID (com os parâmetros de sua escolha, é claro, a única coisa que precisa corresponder é a Screen nesta seção para a Device na anterior) como:

    Section "Screen"
        Identifier  "Screen0"
        Device      "nvidia0"
        Monitor     "Monitor0"
        DefaultDepth 24
        Subsection "Display"
            Depth       24
            Modes       "1600x1200" "1024x768" "800x600" "640x480" 
        EndSubsection
    EndSection
    
    Section "Screen"
        Identifier  "Screen1"
        Device      "nvidia1"
        Monitor     "Monitor1"
        DefaultDepth 24
        Subsection "Display"
            Depth       24
            Modes       "1600x1200" "1024x768" "800x600" "640x480" 
        EndSubsection
    EndSection
    
  7. Agora crie uma seção Identifier para cada monitor como:

    Section "Monitor"
        Identifier "monitor name here"
    EndSection
    
    Section "Monitor"
        Identifier "monitor name here"
        # Rotate as you want (your question says one is rotated)
        Rotate "left"
    EndSection
    
  8. Por fim, atualize a seção Monitor para usar e posicionar as duas seções ServerLayout :

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Reinicie o X e cruze os dedos! Se funcionar, continue ajustando o quanto quiser.

AGORA PELA ORDEM DE SUBPARTIÇÃO DE SUBPIXEL Faça essa alteração em Screen em font.conf ou /etc/X11/font.conf '.                                bgr                     

    
por Ashhar Hasan 12.12.2015 / 07:37