Intel GFX driver resolution fix
I recently encountered a problem whereby I had a batch of brand new Hewlett Packard DC5700 (small form factor) computers which would not allow me to set a widescreen resolution of 1440x900. The chipset model was an Intel Q963 Express, and the onboard graphics media accelerator was an Intel GMA 3000.
After some research it appeared that the latest driver from Intel was not configured to support the resolution of 1440x900, even though after experimenting with settings within Windows display properties and actually getting it set to 1440x900 on one occasion. A quick Google also revealed the maximum resolution supported was 1680x1050. I was baffled as to why a graphics controller and its driver that allows a resolution as high as 1680x1050 would not allow me to set a resolution at the lower 1440x900.
It turns out that the driver is to blame. It seems Intel do not configure their driver to natively allow a resolution of 1440x900 (as well as other resolutions between 800x600 and the maximum supported resolution of 1680x1050). It seems this has also been a problem with other chipsets that Intel manufactures (from their 915 series upwards).
An inspection of the zip version of the driver (Intel provide 2 drivers, one in the form of a self extracting .exe and the other is a .zip file containing all the driver files) for my graphics controller revealed that a file within the driver- igxp32.inf (a setup information file) would allow me to specify extra resolutions that could be used by the computer after the driver was installed. Opening this file in notepad, one section immediately caught my attention:
Within this section of igxp32.inf it appeared I could enable up to 5 extra resolutions for use within Windows display properties. The next line of the file has been commented by Intel:
HKR,, TotalDTDCount, %REG_DWORD%, 0 ; This shows number of DTDs to be used. ; 0-->Disable the feature.
Well I wanted to enable all the resolutions I could, so I changed the 0 to a 5 like so:
HKR,, TotalDTDCount, %REG_DWORD%, 5 ; This shows number of DTDs to be used. ; 0-->Disable the feature.
The next 5 lines within the file seemed to be the settings for the extra resolutions that would be added after this driver is installed. The first 4 had been set already to offer 1920x1080@60, 1920x1080@50, 1280x720@60 and 1280x720@50 resolutions. The last, 5th line had no hexadecimal values, and the comment on the end of the setting was blank, so here is where I edited and added the resolution for the screen I was trying to get working. A quick Google of 1440x900@60 revealed the hex values for that resolution to be:
HKR,, DTD_5,%REG_BINARY%, 97,29,A0,D0,51,84,20,30,50,98,13,00,00,00,00,00,00,1C,37,01 ;1440x900@60
So I edited the 5th line to look like that above and saved the file. Upon un-installation of the old driver and installation of the newly modified driver, a quick delve into the settings in display properties revealed all 5 new resolutions selectable. I could now apply the 1440x900 resolution I wanted.
I believe that other Intel graphics drivers may have the setup information file named differently from igxp32.inf, but that they can all be modified in the same way.