I'm working on a video display device that uses custom timings for resolutions at848x480 and 800x480 that do not conform to any VESA standard. The device has an EDID that specifies these timings.
I would like to know the process that Windows XP uses to determine the resolution to display at, and how it presents the user with a list of choices. This seems highly dependent on the video card manufacturer and driver.
I have observed wildly different behaviors on different systems:
- It seems that vanilla Windows XP does not query the EDID except at boot time, however laptops and custom video drivers sometimes seem to query the EDID at will (plug in a computer with no reboot, hit presentation mode, and the device name shows up)
- Some PCs seem to have no trouble generating 848x480 or 800x480, but some just seem to ignore the detailed timings and fall back to a VESA 640x480. If you specify a custom timing mode, what is the chance that any given video driver/card will be able to generate the proper VGA signal?
- Often times, the EDID information will be transmitted to the system, but if you open the Windows display properties, and select the device in the settings tab, the slider of available modes does not show either 848x480 or 800x480. It usually just shows 640x480 among a list of other standard modes (but not the custom modes supplied).
- If this happens, then you can often get the device to display at 848x480 or 800x480 by selecting it in the list of all modes under display properties -> settings -> advanced -> adapter -> list all modes. When you select this, it switches to the proper resolution.
- However, if you go back in to display properties -> settings, you will see the mode you selected in the slider, but the slider only has the one resolution. It should (at least) also show 640x480. Is this just a fact of life when dealing with Windows XP and non-standard video timings? It would be great to know exactly how Windows populates that slider.
I would greatly appreciate any resources that discuss the details associated with all of this. I know that this is not strictly speaking a programming question, but it is closely related to a programming problem that I am having, and I am having trouble finding any information on this subject.