Lighting bug with device reset on 945GM chipset?

Lighting bug with device reset on 945GM chipset?

Hi,

I have a Dell Vista laptop with mobile 945GM express chipset. I am using DX 9.

When the device is reset (for example by toggling fullscreen), lighting is lost. This happens in my game but also in some of the DirectX samples - for example when I reset device with the SkinnedMesh sample, the character then renders black. I can't see any flaw with the code and since this happens with the DX samples I thought it might be a driver bug.

What is the fix please?

Tom

21 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Perhaps I am asking in the wrong forum? Does anyone know where I should seek a response? If it is driver bug then it is surely quite a biggie...

Cheers,

Tom

Hi Tom

What graphics driver version are you using?

Intel Graphics Media Accelerator Driver for Mobile Report

Report Date:06/20/2008
Report Time[hr:mm:ss]:11:28:24
Driver Version:7.14.10.1147
Operating System:* , (6.0.6000)
Default Language:English
DirectX* Version:10.0
Physical Memory:1013 MB
Minimum Graphics Memory:8 MB
Maximum Graphics Memory:224 MB
Graphics Memory in Use:66 MB
Processor:x86 family 6 Model 15 Stepping 6
Processor Speed:1662 MHZ
Vendor ID:8086
Device ID:27A2
Device Revision:03

* Accelerator Information *

Accelerator in Use:Mobile Intel 945GM Express Chipset Family
Video BIOS:1264
Current Graphics Mode:1280 by 800 True Color (60 Hz)

* Devices Connected to the Graphics Accelerator *

Active Notebook Displays: 1

* Notebook *

Monitor Name:Generic PnP Monitor
Display Type:Digital
Gamma Value:2.20
DDC2 Protocol:Supported
Maximum Image Size:Horizontal: Not Available
Vertical: Not Available
Monitor Supported Modes:
1280 by 800 (60 Hz)
Display Power Management Support:
Standby Mode:Not Supported
Suspend Mode:Not Supported
Active Off Mode: Not Supported

* Other names and brands are the property of their respective owners.

Can anyone from Intel advise me where toseek an answer?

Wow you are using a really old version of the GFX driver. Could you go to http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2301and download the latest and give it a try?

Done. I tried winvista_1582.exe because it is Vista Home Premium 32 bit, but got an error dialog that said "The driver being installed is not validated for this computer."

Also, when I try to "Update Driver Software" from the display adapter device in the device manager, the answer is "The best driver for your device is already installed."

Please advise.

Tom

Looks like Dell never upgraded their site to the 15.8.2 drivers.

In some cases (on request) Intel andan OEM (Dell)jointly customizethe .inf file which configures the registry for a new driver software install. If you pull a software release from Intel's site and the same driver version from Dell and do a side-by-side comparison of the two you'll see that the Dell version has a "SUBSYS" value appended to the hardware identification section.This is what is generating the "not validated for this computer" error: the generic Intel-site drivers are missing this SUBSYS value and the Dell installer is refusing to install the drivers without it.

There are other differences in the .inf files for the two separate installs: Dell calls forth or disablesfeatures of the drivers depending ontheir knowledge oftheirlaptop and what they want todeal withfrom a customer support standpoint. You could probably hack the generic-Intel .inf file with the SUBSYS values (and any other registry keys set only in Dell and not in the generic) and get it to install, but then if you ever call Dell customer support they'll likely be confused by the behavior of your system and the non-standard drivers you have installed.

I'd probably do it, but that's because I don't use customer support and like to tinker with the stuff; I don't necessarily advocate that solution for the general public.

Just as an FYI on INF files:

Each vendor (HW manufacturer) has their own ID number. For example, Intel's is 8086. This is known as a VendorID. Each hardware product has a unique device ID that identifies it for Windows. For example, the 945GM hardware has a device ID of 27A2. These are the minimum required items to identify a piece of hardware - who made it and what part is it. There are some optional IDs that can further narrow this down. One of those is the subsystem ID. The subsystem ID identifies the type of computer the part is in. I don't have an example handy here, but an OEM could put a subsystem ID of 32A6 for their Q6Xa3000 laptop model as a hypothetical example.

Windows will look for the best possible match of a driver to a piece of hardware.So, it looks at the device as reported by PCI space and attempts to match that to the INFs. It tries the most specific one possible first because that's obviously made for your specific part, and then gets more generic from there. So, if you have an INF file that lists the vendor ID and the device ID and the subsystem ID, it will use that particular INF file and driver set. If it can't find an INF that matches that, it will look for one that just has the vendor ID and the device ID.

Since Intel tends to make parts for a bunch of OEMs, we (generally) put out INFs that have themost genericinformation needed to install - vendor ID and device ID. That means the drivers will install on anyone's computer with the part in it. We don't want to leave out any OEMs by including subsystem IDs - then we'd have to update the INF file for every single model of computer with the part in it. As you can imagine, that would be a ginormous amount. (Since we do sell the most graphics parts in the world after all...)

However, some OEMs want to restrict which drivers go on the systems. In that case, they do add in the subsystem ID. This means that they can dictate that they want driver X on computer model 256QS22 and driver Y on computer model 982HVF (because they have different subystem IDs). This also means that the "generic" INF won't overwrite the specific one. (Remember why? Because Windows will find the best possible match first - the one with a subsystem ID.)

Now, why would an OEM want do that? They've spent a lot of money validating that particular driver versions work on their systems. Everytime a user calls them, emails them, etc, about an issue, it costs the OEM money in support costs. (Even if it appears they arent' doing anything - usually they are, just outward communication isn't the best.) A driver that hasn't gone through their validation is a risk to costing them more money - maybe it's broken, maybe the apps bundled with the computer don't work with the new version, maybe special workarounds are needed in the driver to fix bugs in their implementation; it's a complete unknown to the OEM. If they put in the subsystem ID, then they control which drivers will be updated - it won't be an "accident" (from their point of view).

Anyway, just a little background on INF files and why you might see a "You've already got the best driver message" even if you've got a newer "generic" version of the driver that you're trying to install...

Chris

Thanks guys. I'm keen to try this driver if you can instruct me on the edit needed - what line to add to what file?

I'd like to determine if the latest driver fixes the lighting bug.

BTW I would have thought that Intel would be rather proactive in working with major hardware manufacturers to ensure the best drivers are live; it is in your mutual interest. If the bug is confirmed then right now nobody would play games on this system because minimizing/restore destroys lighting state.

Tom

P.S. You should change your forum software and server hosting, this is buggy, and slow as molasses...

Maybe you do not need to tweak any files or the registry. Try to follow this instructions: http://www.intel.com/support/graphics/sb/CS-022355.htm
It shows how to work around installation problem in XP, but I had no problems to do the same in Vista.
Hopefully, this helps.

Well, we are proactive in working with the OEMs. We keep them all informed on the changes going into the drivers, why they're better, etc, etc, but it all comes down to money. Every update of the driver is a cost to the OEM (because they have validate the drivers, update their support documentation, change their manufacturing process for new machines, etc)and they have to weigh that price against just keeping what they have. Of course, we'd like them to update the drivers all the time since they're always improving, but it comes down to a business decision for them.

Chris

OK, so I managed to install it by downloading winvista_1582.zip and following the install instructions inside (yuriylsh, vista was too "clever" to allow the procedure you suggested).

I now have:

Driver Version:7.14.10.1461

The bug is not fixed.

If you had better forum software I could post a before and after shot for the DX SkinnedMesh sample. After going to fullscreen and back to windowed, the character renders in black, i.e. unlit. My game has the same problem on this system.

I'm trying to make a game that works on Intel Integrated graphics. What should I tell my users?

Tom

Does the lack of a follow-up mean "yes, known bug, not fixed, lighting does screw up on reset, so try to avoid playing games on this card" ?

Tom

Hi Tom,
AFAIK it's still being investigated by the graphics engineers here. Thanks for your patience.
==

Lexi S.
IntelSoftware NetworkSupport
http://www.intel.com/software

Contact us

What was the result? Is it a driver bug? If not I will haveto experiment more.Some of my users experiences this problem with Intel chipsets.

Tom

Hi,

i'm a having the same exact problem for months now, and still no solution, could someone give some updates about how things progress?

Thanks,

Moshe.

There are some OEMs want to restrict which drivers will be a ginormous amount. (Since we do sell the most specific one possible first Because Windows will find the best match first - the one with the computer don't work with the new version, maybe special workarounds are the minimum required items to identify a piece of hardware - who made it and what part is it.

Anyway, just a little background on INF files and why you can farther narrow This means that they can dictate that the want driver X on computer model 256QS22 and attempts to match that to the INFs.

Windows will look for the best match of money validating the particular driver versions work on their systems. We (generally) put out any OEMs by PCI space and driver Y on computer model 982HVF (because they have different subystem IDs). This also means that just has the vendor ID and the device ID. It can't find an INF that matches that, it will look For example, Intel's is in. I don't have an OEM want do that? They've spent a lot of a driver to a piece of hardware. So, it looks at the device as reported by including subsystem IDs - then we'd have the most generic information needed to install - vendor ID and device ID. That means the drivers will install on the systems. Everytime the user calls them, emails them, etc, about an issue, it costs the OEM money in it. For example, the 945GM hardware has a device ID of 27A2. These are needed in the driver to the OEM. In that case, they arent' doing anything - usually they are, just outward communication isn't the best.) A driver that hasn't gone through their implementation; it's a complete unknown to fix bugs in their validation is a risk to costing them more money - maybe it's broken, maybe the apps bundled with a subsystem ID.)

Now, why would be updated - it won't be an "accident" (from their point of view). Each hardware product has their own ID number. For one that the part in it. (Remember why? Because that's obviously made for your specific part, and then they control which drivers go on anyone's computer with the "generic" INF won't overwrite the specific one. This down. If they put in the subsystem ID, then gets more generic from there.

Since Intel tends to make parting for a bunch of OEMs, We don't want to leave out INFs that have to update the INF file for every single model of computer with the part in support costs. One of those is the subsystem ID. The subsystem ID identifies the type of computer the part is 8086. This is known as a VendorID. (Even if you've got a newer "generic" version of the driver that you're trying to install... As a hypothetical example. Each vendor (HW manufacturer) has a unique device ID that identifies it for Windows. So, if you have an INF file that lists the vendor ID and the device ID and the subsystem ID, it will use that particular INF file and driver set. If It tries the most graphics parts in the world after all...)

However, some optional IDs that can imagine, that would an example handy here, but an OEM could put a subsystem ID of 32A6 for their Q6Xa3000 laptop model As you might see a "You've already got the best driver message" even if it appears they do add in the subsystem ID.

-------------------------
Emma Henley
Sidekick Phones - Sidekick Phones - 32 HDTV LCD

Quoting - fundictive

Hi,

I have a Dell Vista laptop with mobile 945GM express chipset. I am using DX 9.

When the device is reset (for example by toggling fullscreen), lighting is lost. This happens in my game but also in some of the DirectX samples - for example when I reset device with the SkinnedMesh sample, the character then renders black. I can't see any flaw with the code and since this happens with the DX samples I thought it might be a driver bug.

What is the fix please?

Tom

Hi,I am having the exact problem here with this 945GM express chipset but mine isn't mobile, is integrated on a Gigabyte motherboard. Once the problem is not only in windows, entering the bios i have the same problem! The monitor keeping reseting for about 6 times and then it works. For sure i will never buy anything else except processors from intel! This isa really anoying problem, and stillIntel didn'tsolve it, shame on you!!!

sounds like a bios bug on dells end

when you change resolutions by launching a game full screen part of the mode change is asking the bios what level the back light controller needs to set the level to

the bios is supposed to tell the graphics device and the level gets set

if its set to off the screen will get real dark

if you want to know if its the backlight controller level for sure try reproducing the issue with a external monitor

if the lighting level changes on that then investigate the gamma and color settings in the intel control panel UI

if nothing changes contact the laptop maker about getting an updated bios that doesnt mess with the backlight controller in this way

i didnt read the skinned mesh part to carfully

the gamma settings wont change that type of issue

if it really is the d3d lighting

it sounds like maybe the stateset correctly or the camera is in a different place when you change the resolution

try making sure you didnt actually change the color depth as well on accident

Leave a Comment

Please sign in to add a comment. Not a member? Join today