Я работаю над устройством отображения видео, которое использует настраиваемые тайминги для разрешений 848x480 и 800x480, которые не соответствуют ни одному стандарту VESA. Устройство имеет EDID, который определяет эти тайминги.
Я хотел бы знать процесс, который Windows XP использует для определения разрешения для отображения, и как он представляет пользователю список вариантов. Это сильно зависит от производителя видеокарты и драйвера.
Я наблюдал совершенно разное поведение в разных системах:
- Кажется, что ванильная Windows XP не запрашивает EDID, кроме как во время загрузки, однако ноутбуки и пользовательские видеодрайверы иногда запрашивают EDID по желанию (подключите компьютер без перезагрузки, нажмите режим презентации, и появится имя устройства)
- Некоторые ПК без проблем генерируют разрешение 848x480 или 800x480, но некоторые просто игнорируют подробные тайминги и возвращаются к VESA 640x480. Если вы укажете пользовательский режим синхронизации, какова вероятность того, что любой данный видеодрайвер/карта сможет генерировать правильный сигнал VGA?
- Часто информация EDID будет передаваться в систему, но если открыть свойства экрана Windows и выбрать устройство на вкладке настроек, ползунок доступных режимов не показывает ни 848x480, ни 800x480. Обычно он просто показывает 640x480 среди списка других стандартных режимов (но не поставляемых пользовательских режимов).
- Если это произойдет, то вы часто можете заставить устройство отображать разрешение 848x480 или 800x480, выбрав его в списке всех режимов в свойствах дисплея -> настройки -> дополнительные -> адаптер -> список всех режимов. Когда вы выбираете это, он переключается на правильное разрешение.
- Однако, если вы вернетесь к свойствам дисплея -> настройки, вы увидите режим, который вы выбрали в ползунке, но ползунок имеет только одно разрешение. Он должен (по крайней мере) также показывать 640x480. Это просто жизненный факт при работе с Windows XP и нестандартными таймингами видео? Было бы здорово точно знать, как Windows заполняет этот ползунок.
Я был бы очень признателен за любые ресурсы, которые обсуждают детали, связанные со всем этим. Я знаю, что это, строго говоря, не вопрос программирования, но он тесно связан с проблемой программирования, с которой я сталкиваюсь, и мне трудно найти какую-либо информацию по этому вопросу.