Bug 13545

Summary: wrong dpi setting
Product: Branch 4.0 Reporter: Yura Kalinichenko <yuk>
Component: alterator-x11Assignee: inger <inger>
Status: CLOSED FIXED QA Contact: Q.A. 4.0 <qa-4.0>
Severity: normal    
Priority: P2 CC: mike, rider, zerg
Version: 4.0   
Hardware: all   
OS: Linux   
Bug Depends on: 13370    
Bug Blocks:    
Attachments:
Description Flags
Xorg.0.log with wrong dpi
none
XFree86.0.log with proper dpi
none
xorg.conf
none
ddcprobe log none

Description Yura Kalinichenko 2007-11-28 23:59:26 MSK
Неверно устанавливается значение DPI для видеокарт S3 ViRGE. Правильное значение
для этой же карты, выставлявшееся XFree 4.3.0 = 75,75, в то время как x.org с
драйвером xorg-x11-drv-s3virge-1.9.1-alt3 выставляет 20,15
Comment 1 Valery Inozemtsev 2007-11-29 11:39:28 MSK
Xorg.0.log в студию
Comment 2 Yura Kalinichenko 2007-11-29 13:11:08 MSK
Created attachment 2293 [details]
Xorg.0.log with wrong dpi
Comment 3 Yura Kalinichenko 2007-11-29 13:13:29 MSK
Created attachment 2294 [details]
XFree86.0.log with proper dpi
Comment 4 Valery Inozemtsev 2007-11-29 13:16:22 MSK
и xorg.conf
Comment 5 Yura Kalinichenko 2007-11-29 13:47:03 MSK
Created attachment 2295 [details]
xorg.conf

Сгенерирован ltsp5, с небольшими ручными дополнениями.
Comment 6 Valery Inozemtsev 2007-11-29 14:03:49 MSK
$ grep DisplaySize /etc/X11/xorg.conf
не известно что тут сгенерино, а что вписано руками, но в конфиге много 
лишнего. необходимо исправлять либо эту генерялку, либо руки
Comment 7 Michael Shigorin 2007-11-29 15:36:28 MSK
ltsp5 пользуется x11_autosetup, тот -- скриптами из alterator-x11.

Подозрителен DisplaySize -- он действительно квадратный по метру с четвертью на
сторону? (возможно, видео или монитор криво отдают DDC... мы планируем сделать в
ltsp5 перекрытие автомата, но для этого надо см. #13370)

Юр, DisplaySize автоматом появился или руками? (так понимаю, первое)
Comment 8 Yura Kalinichenko 2007-11-29 19:12:21 MSK
(In reply to comment #7)
> ltsp5 пользуется x11_autosetup, тот -- скриптами из alterator-x11.
> 
> Подозрителен DisplaySize -- он действительно квадратный по метру с четвертью на
> сторону? (возможно, видео или монитор криво отдают DDC...
Да, похоже на то. Смутно припоминаю, что какие-то проблемы у этого монитора были
(SyncMaster 152B), и границы разверток приходилось выставлять вручную, чтобы
нормального разрешения добиться.

 мы планируем сделать в
> ltsp5 перекрытие автомата, но для этого надо см. #13370)
> 
> Юр, DisplaySize автоматом появился или руками? (так понимаю, первое)
Разумеется, автоматом. Я этого слона и не заметил-то сразу. Естественно, как
убрал его из конфига - все стало на место. Может вообще этот параметр не нужно
генерить ?
Comment 9 Michael Shigorin 2007-11-29 20:20:32 MSK
Тогда перевешиваем на автомат.

2 rider: не помнишь таких приколов? (нарисовало DisplaySize 1270 1270)
Comment 10 Michael Shigorin 2007-11-29 20:20:51 MSK
reassign
Comment 11 Anton Farygin 2007-11-29 20:45:15 MSK
ddcprobe на этом девайсе что говорит ?
Comment 12 Yura Kalinichenko 2007-11-29 22:21:21 MSK
Created attachment 2296 [details]
ddcprobe log

Вот вывод ddcprobe
Comment 13 Anton Farygin 2007-11-29 23:46:58 MSK
Ну что ж.. 127x127 сантиметров - это возвращает VBE этой видеокарты.

Есть идеи как это побороть ?
Comment 14 Anton Farygin 2007-11-29 23:49:21 MSK
2inger: Стас, сделай хак - если размеры монитора больше метра, то нафиг не надо
прописывать его DisplaySize.

Хак не корректный, но мне кажется - в ближайшее время таких мониторов много не
увидим.
Comment 15 Michael Shigorin 2007-12-04 16:45:28 MSK
Бывают и 56" VGA, но есть мнение, что DisplaySize -- всё-таки не штатно
забиваемый параметр, а "аварийный" для кривого железа.  Если оно отдаёт криво,
то забивать не поможет (всё равно надо мерять-править, а для этого нужна
линейка).  Если ровно -- то забивать излишне.

Или что-то пропустил?
Comment 16 Michael Shigorin 2008-03-14 20:37:21 MSK
На будущее: копать в alterator-x11/helpers/ddcresbest (btw может иметь смысл
ориентироваться на 96, а не 90dpi)
Comment 17 Michael Shigorin 2008-03-19 17:54:57 MSK
Цели автонастраивалки:
- для LCD/TFT: выдать номинальное (оно же максимальное) пиксельное разрешение;
- для CRT мы вынуждены играть в автоугадав, отталкиваясь от желаемого DPI,
физических размеров экрана и списка пиксельных разрешений.

Я не знаю, как посредством DDC отличить CRT и TFT (даже на DVI). Поле input: в
`ddcprobe` пока смахивает на бесполезное -- и при подключении через VGA, и через
DVI там фигурирует что-нить вроде
[separate sync, [composite sync, ]]sync on green, analog signal

Посему мысли вслух (заготовки для эвристик):
- для CRT в DDC присутствуют ctiming:.*@85 (или отсутствует DDC);
- для LCD/TFT в DDC отсутствуют 85, присутствуют 60/70/75 Hz;
- самый низкий обнаруженный DPI -- у 40" с максимальным 1366x768;
- самый высокий наблюдавшийся мной DPI -- 133 (15" @1600x1200), ну пусть 200.
Comment 18 Michael Shigorin 2008-03-19 17:56:21 MSK
Точнее, нижний порог DPI даже не 40, а чуть меньше 39 (так что пусть 30--35):
http://hotline.ua/gd/2/cmp/?s=56588-8996-9747-59914-49074
Comment 19 Anton Farygin 2008-03-19 19:38:35 MSK
Миша, всё это от лукавого.. не будет работать на DDC2.

Реально, определить какой монитор подключен, а какой нет - может только драйвер
xorg.

Соответственно была идея сделать некую обёртку, которая будет напрямую звать
драйвер xorg для данной видюхи и узнавать тип подключенного монитора.

Но тут тоже есть ряд засад. 
Comment 20 Michael Shigorin 2008-03-19 20:03:01 MSK
(In reply to comment #19)
> Миша, всё это от лукавого.. не будет работать на DDC2.
Да уже начал задумываться, стоит ли изобретать старый велик.

> Соответственно была идея сделать некую обёртку, которая будет напрямую звать
> драйвер xorg для данной видюхи и узнавать тип подключенного монитора.
> Но тут тоже есть ряд засад. 
Ну вот тот самый уже выкинутый из ubuntu hardy пакет xresprobe грепал xorg'овые
логи, выцепляя специфичные для драйверов рассказы... (подробнее написал в Bug
#14371 -- связанная, но другая тема)

Собственно засада получается в том, что автомат может ошибаться -- железо бывает
кривое.  Или человек может знать конкретно лучше, что он конкретно хочет.
Comment 21 Anton Farygin 2008-03-19 20:05:16 MSK
Не надо грепать логи.. эта идея ещё бредовее.

Всё что нужно - открыть драйвер, вызвать его, узнать монитор и выйти. Это может
делать некая спец-версия сервера xorg (фактически эмулятор сервера xorg).

По поводу пользователей - безусловно, пользователь знает лучше нас. Но лучше ему
помочь в автоопределении. .приятно же, когда можно не выбирать свой монитор, а
просто согласиться с предложенными настройками.
Comment 22 Sergey V Turchin 2013-07-18 16:56:47 MSK
В alterator-x11 добавлена возможность задать размер экрана, из которого вычислится DPI.