Настройка различного субпиксельного рендеринга на разных мониторах

16

Я использую двойные мониторы, один из которых повернут на 90 градусов. Сглаживание шрифтов выглядит неправильно на повернутом мониторе (т. Е. Вокруг символов есть радужные границы).

Я считаю, что это потому, что X использует один и тот же порядок рендеринга субпикселей на обоих мониторах. Есть ли способ настроить различные порядки рендеринга субпикселей для каждого монитора? (т. е. монитор 1 = RGB, а монитор 2 = vRGB).

негодник
источник
Похоже, это пока невозможно (нет программного решения). Смотрите это для чего-то связанного.
Ашхар Хасан

Ответы:

4

Вы должны настроить свои дисплеи как отдельные экраны X, а не как общий рабочий стол. Ubuntu должен позволить вам настроить порядок субпикселей для отдельных экранов X.

Иначе, что случилось бы с окном, которое охватывает два устройства отображения с различными порядками подпикселей? Или, что еще сложнее, два дисплея в режиме клонирования с разными физическими порядками (RGB и BGR).

На данный момент это известное ограничение для всех операционных систем, и для его исправления потребуется серьезная модернизация. Динамическая настройка невозможна, потому что библиотека, выполняющая рендеринг, должна знать, на каком экране вы находитесь, и динамически настраивать. Кроме того, предположим, у вас есть половина окна на одном экране и половина на другом - он не знает, какой выбрать.

Настройка нескольких экранов X:

  1. Загрузите и перенастройте X. sudo dpkg-reconfigure -phigh xserver-xorg Выполните шаги для настройки основного дисплея. (Я не знаю способ сделать этот конкретный шаг из CLI)
  2. Откройте терминал, и
    lspci
    это должно дать вам список ваших устройств и их идентификаторы шины. Найдите видеокарту и запишите их идентификаторы.
  3. Сделайте свою копию xorg.confкак можно xorg.conf.origи откройте ее:sudo vi /etc/X11/xorg.conf
  4. Прочтите это ДО продолжения, чтобы убедиться, что вы можете настроить его так, как вы хотите.
  5. Теперь сделайте два Deviceраздела и перечислите BusIDкарту для совместного использования, а также перечислите драйвер следующим образом:

    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. Теперь создайте два Screenраздела (с параметрами по вашему выбору, конечно, единственное, что нужно сопоставить - это Deviceв этом разделе и Identifierв предыдущем) как:

    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. Теперь создайте Monitorраздел для каждого монитора как:

    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. Наконец, обновите ServerLayoutраздел для использования и расположите оба Screenраздела:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Перезапустите X и скрестите пальцы! Если это работает, то продолжайте настройку, сколько хотите.

СЕЙЧАС ДЛЯ ПОРЯДОК ВЫПОЛНЕНИЯ СУБПИКСЕЛЕЙ. Измените это font.confлибо в ~/font.conf/ etc / X11 / font.conf` BGR

Ашхар Хасан
источник
Я добавляю шаги, как это сделать. Но давайте надеяться, что кто-то придет с удивительным способом сделать то, что вам нужно.
Ашхар Хасан
Похоже, я тоже попал в блок. Хотя я могу указать разные пути шрифтов, Xorg.confно, похоже, он не выбирает пути для разных font.confфайлов. :(
Ашхар Хасан