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 15.26.12.2761 (8.15.10.2761) and also version 8.15.10.2696, 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.
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 15.26.12.2761 (8.15.10.2761) and also version 8.15.10.2696, 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.
Comment