Windows 7 (and Vista) Display Driver Error Message:
"Display driver stopped responding and has recovered"
This is a short story about my Odyssey finding a reason for the above mentioned display driver error message.
Many times this is also accompanied by a BSOD (blue screen of death) stop message, which occurs sporadically too (it is then related with nvlddmkm.sys or atimdag.sys).
First the good message:
A hardware problem is usually not a reason for that.
Also, original driver from NVIDIA or ATI aren't primary responsible for that, too. So exchanging these graphics card driver will not really help (with one exception, see below).
Now the bad message:
It can be related with all hardware driver which are installed in Windows 7 or Vista. So exchanging of other hardware driver like for HD Audio or for LAN/WLAN can help.
Btw., after exchanging the (Intel) chipset driver, I experienced a freeze instead of getting the above "stopped responding" message (this makes it even more annoying). To force a full (re)install of Intel chipset driver (Inf Update), you have to use a setup command line parameter "-OVERALL" !
I was searching a very long time for a solution with the help of Google, but this was more confusing than helpful (you can find even whole sites about this error, like http://www.nvlddmkm.com).
Many times I read it should be related with overheating issues.
This is usually NOT the reason, because then an error occurs only when playing or when running Furmark or similar Benchmarks, not during a 2D desktop session.
Others also said it is related with the used power supply. Usually this is only the case if you have a weak power supply below 350 Watt, or if you changed your video card from a low end graphics card (e.g. 9600GT) to a high end graphics card (e.g. GTX570) with at least 2 additional 6- or 8-pin power connectors.
Now the real reason:
But I experienced that this error very often occurs also if nothing special was made with the computer (just browsing or showing large JPEG pictures, only in pure 2D mode).
So I started an exhaustive test row, what influences this annoying TDR error (this is the term many are using in nVidia forums).
This error basically occurs only if the GPU has to struggle more but is still in 2D mode.
50 MHz is very low...
So the key is to increase the 2D mode GPU frequency or avoiding automatic lowering of GPU frequency, because fulfilling some GPU operations (within 2 seconds) can't be done in sufficient time. You can try to increase GPU frequency with the Nvidia System Tools. Better use a tool like MSI Afterburner.
You can also switch off lowering frequency by switching off PCIexpress energy saving plan settings in Windows 7 (sry, only in german):
You can also try to reduce the unnecessary usage of your GPU, e.g. disable hardware acceleration in extended options of Firefox (but this is like avoiding situations but the reason for is still present).
First I decided to change all hardware related driver, replaced with older or (usually better) newer driver. This helped a bit (error occurred less frequently).
But then I tried to increase 2D GPU frequency permanently. And this was finally the solution.
I guess there is a lot of pressure on nVidia to be better than AMD (ATI), so they are forced to lower voltage and/or CPU frequency more and more in 2D mode/in idle mode. But this forces also problems with Vista and Windows 7.
Microsoft changed the graphics driver (WDDM) communication since Vista SP1, see here for more information about that:
"The Video Scheduler component of the Windows 7 or Vista graphics stack detects that the GPU is taking more than the permitted quantum time to execute the particular task and tries to preempt this particular task. The preempt operation has a "wait" timeout. This step is thus the "timeout detection" phase of the process. The default timeout period in Windows 7 or Vista is 2 seconds. If the GPU cannot complete or preempt the current task within the timeout, then the GPU is diagnosed as hung."
Btw. there are also some Registry keys described. I do not recommend to change any of them, it only extend the delay until you get the above shown error message.
It's so simple: You just have to avoid that something else are taking too much time for processing (non interruptable actions) or the processing device must run faster to fulfill the operation in time.
Avoid also to try DXDIAG or similar DirectX related tools - they do not help, and exchanging DirectX should not help, too (this can make problems instead of solving them).
Added later: SCALING PROBLEM with newer NVIDIA driver:
Btw., meanwhile I expirienced another problem while using a DVI cable instead of a VGA 15-pin cable.
Normally if you're playing older games which can't use a widescreen resolution (16:10 or 16:9), you can choose to stretch the display or you can use the native pixel resolution only (without stretching), which leads into black bars / black unused areas.
Newer nvidia drivers will very often not offer any choice for it.
But you can force this. To get back these scaling options, you have to use REGEDIT and navigate to the following position:
If there is no "Defaults" key, create one.
Then, create a DWORD entry named "FlatPanelScaling", with a value of "0001". This will bring back the scaling options in the Nvidia control panel :-)
Added later: Boot hang up problem with CLASSPNP.SYS:
A few month later, I expirienced another strange problem.
The computer did not start, showing only "Starting Windows" (no logon, no desktop).
When selecting safe mode (F8 during boot up), I saw it lists loaded driver until CLASSPNP.SYS.
So I looked for a solution in Google, but I saw only non helpful comments like "use chkdsk /f" or "sfc /scannow" in command line.
Also, some recommended to change harddisk access in BIOS to IDE (usually you are using AHCI for a faster access). Btw. this BIOS change immediately produces a BLUE SCREEN.
So I stopped with looking for hints and thought about what PnP means.
PnP is always related with Plug'n Play devices, e.g. USB driven.
But it can be related with PCI cards, too.
So I removed all "unnecessary" devices for a successful boot (all USB devices except keyboard, but you can even remove an USB keyboard by replacing it with a legacy PS2-keyboard). And then, after getting still no success, I removed all PCI cards except my graphics card - means also my WLAN PCI card - and this was finally the reason.
After I replugged it, all works like before, no CLASSPNP.SYS problem anymore.
So I learned, try to remove or at least re-plugin all cards if you get a CLASSPNP.SYS boot problem.
Added later: Problem with "missing" DirectX hardware acceleration:
Again, nVidia made it possible - I expirienced another problem after updating my nVidia drivers to the most current version... suddenly my games (e.g. World of Tanks) told me, the hardware acceleration is not working anymore.
Using DXDIAG (64bit version), it shows in tab "display" that Direct 3D is software accelerated, too.
So I looked for a switchable option, but DXDIAG does not support this. Instead, you can download some DirectX developer tools - but more elegant is to switch that option ON and OFF by a simple registry value.
Then - if not existing, create it - look for a dword key named "SoftwareOnly" and set it to 00000000 (instead of 00000001).
DXDIAG should now show a different result (tab "display" again), it should be "hardware accelerated" again.