Intel HD graphics crash, igdumd64.dll with Directx 3D [Solved]
This might help out a few other people. We noticed our PerformanceTest benchmark software crashing on a new machine with Intel HD 4000 graphics.
After some detailed investigation & trial and error we found that the crash occurs when,
- Intel HD 4000 graphics are in use
- Win7 64bit is the O/S
- Multiple monitors are in use but discrete video card is not in use.
- "Monitor 1" is not the primary desktop monitor.
- Calling the DirectX function CreateDevice() with anti-aliasing > x2 set.
- Running DirectX 9 in full screen mode.
Note that CreateDevice () is called for pretty much every 3D game and application on launch. So this problem will effect a lot of different software on startup.
Running DirectX without anti-aliasing or in windowed mode did not provoke the problem. Running with a single monitor also did not cause the problem. The problem might also occur with Intel HD 2000/3000 video, this wasn't tested. We also don't know if 32bit is equally effected or not. We also didn't see the problem with DirectX10. So it is a fairly precise set of circumstances.
We tested with several different versions of the Intel device driver including the most recent May 2012 release, version 18.104.22.16861 (22.214.171.12461) and also version 126.96.36.19996, from March 2012.
We are 99% sure is it a bug in the Intel video card driver code. The crash very reproducible and was always in the Intel video card driver DLL, igdumd64.dll
So while the real solution is for Intel to fix their driver, a workaround is to swap your "main display" from the Windows display resolution selection screen, turn off anti-aliasing, if this is an option in your game or use DirectX 10, if available.
If you can play your game for a while, then get a crash, then you probably have a different issue, as this particular problem provokes an immediately failure before anything is rendered in 3D. If you have a BSOD then you probably also have a different issue. As the igdumd64.dll DLL is a user mode driver (not a kernel driver). Meaning your game or application will crash, but not the whole machine.
We contacted Intel about this. Disappointingly they just sent us a canned answer back. They told us to upgrade to the latest driver, 188.8.131.5261. But this was the one we already tested and saw the problem on.
The also said this in their canned E-Mail.
"Please be aware that we provide generic drivers that have not been developed or tested specially for your system. Each motherboard, laptop or Original Equipment Manufacturer can add, remove and change features on the video controllers they implement on their systems".
Which is just a stupid thing to say as the GPU is part of the Intel CPU. The motherboard manufacturers can't reprogram the CPU/GPU or even control which CPU is used in their motherboards.
We are in the Intel developers program so I was expecting better than a canned response that didn't address the issue. Also ironic is that fact is that they keep sending us monthly E-mails about how us developers should be optimizing our code for the Intel HD graphics.
Intel suggested their newer Window 8 preview driver might fix it. I think this was based on wishful thinking, rather than any investigation of the actual problem. This is driver version 184.108.40.206.2792 (220.127.116.1192).
On the Intel web site they say these drivers only support Windows 8 & Windows 8 64-bit.
They further state “These drivers will not function with any other product”. Seems this is not true however and the Win8 drivers also work on Win7.
Unsurprisingly, this didn't fix the problem.
More feedback from Intel (an Engineer rather than a drone this time).
After collecting more system information, they have reproduced the problem and raised and internal bug report. No details of if and when it might get fixed.
Same problem, same determination: that igdumd64.dll is causing the game crash.
Interesting that this problem has been reported as early at April 2010, and I have not found the solutionanywhere (yet) online. Microsoft "Answer Desk" spent several hours with me trying without success.
Your discussion is the most thorough and educated.
But the header indicates that this issue is "Solved". How?
Thanks for sharing that.
What game did you see this problem in?
There is a workaround that solves the problem,
"....swap your "main display" from the Windows display resolution selection screen, turn off anti-aliasing, if this is an option in your game or use DirectX 10, if available.".
We have also had a bit more correspondence with Intel over this. They are saying their driver is all OK, and the applications that provoke this problem are doing the wrong thing. Our opinion is that we followed the Microsoft recommended DirectX programming method and examples & that a driver should never really crash in any case.
If we manage to agree whose fault it and get resolution I'll post an update here.
Another update on this. After 5 months I think we have convinced Intel that there is a problem.
We created a sample project, which was basically directly from the Microsoft DirectX SDK, and supplied that to Intel, showing them how and where it crashed.
Got word back today that
"The issue you reported was replicated at our validation labs and is currently in debug by the display driver team".
So it might be properly fixed soon and the work around above will then be no longer required.
Intel says the problem has been fixed (29/Jan/2013).
Fix will be included in the next Intel driver release. They didn't say when this might be.