Сделайте так, чтобы прошивка монитора рекламировала рекомендуемое разрешение ниже максимального - PullRequest
0 голосов
/ 20 сентября 2018

Мониторы ПК объявляют список поддерживаемых разрешений на ПК.Обычно ПК выбирает самое высокое разрешение по умолчанию или рекомендуется, по крайней мере, в Windows.

У меня есть один тип монитора, который объявляет разрешения до 1920x1200, но имеет более низкое физическое разрешение.Если вы попытаетесь использовать разрешение выше физического, оно просто уменьшит изображение.

Интересно, есть ли способ заставить прошивку рекламировать правильное рекомендованное (физическое) разрешение при сохранении возможных более высоких разрешений.Можете ли вы сделать это в EDID / DDC (или какой-то другой протокол для этого), или вам нужно написать драйвер монитора?Мне просто нужно знать, возможно ли это.

(Для контекста моя компания является производителем мониторов, я не просто пользователь, и у нас есть доступ к источнику прошивки.)

1 Ответ

0 голосов
/ 22 марта 2019

из стандартного документа EDID :

"Первый блок дескриптора должен использоваться для указания предпочтительного режима синхронизации дисплея."

Похоже, в EDIDмонитор дает подсказку о том, какой режим должен быть предпочтительным.Так что да, это возможно в EDID, если вы переопределите тот, который отправляет монитор.

Например, на этом мониторе (который, как ни странно, не рекламирует свое собственное разрешение):

cat /sys/class/drm/card0-DP-2/edid | parse-edid 
Checksum Correct

Section "Monitor"
    Identifier "EX-LDQ241D"
    ModelName "EX-LDQ241D"
    VendorName "IOD"
    # Monitor Manufactured week 14 of 2018
    # EDID version 1.3
    # Digital Display
    DisplaySize 530 300
    Gamma 2.20
    Option "DPMS" "true"
    Horizsync 15-96
    VertRefresh 24-90
    # Maximum pixel clock is 300MHz
    #Not giving standard mode: 1280x1024, 60Hz
    #Not giving standard mode: 2048x1152, 60Hz
    #Not giving standard mode: 1280x720, 60Hz
    #Not giving standard mode: 1600x900, 60Hz

    #Extension block found. Parsing...
#WARNING: I may have missed a mode (CEA mode 86)
#WARNING: I may have missed a mode (CEA mode 87)
#WARNING: I may have missed a mode (CEA mode 88)
#WARNING: I may have missed a mode (CEA mode 90)
    Modeline    "Mode 1" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
    Modeline    "Mode 0" +hsync -vsync 
    Modeline    "Mode 2" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 4" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
    Modeline    "Mode 5" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
    Modeline    "Mode 6" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace
    Modeline    "Mode 7" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace
    Modeline    "Mode 8" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
    Modeline    "Mode 9" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
    Modeline    "Mode 10" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
    Modeline    "Mode 11" +hsync -vsync 
    Modeline    "Mode 12" +hsync +vsync 
    Modeline    "Mode 13" +hsync +vsync interlace
    Option "PreferredMode" "Mode 1"
EndSection

Вы можете увидеть запись "PreferredMode" в Mode 1 в конце.

...