2011-10-29 04:23 , edited 2011-10-29 09:00 by Ragnar-Kon
I have a possible fix for those with the error "Display driver (driver name) stopped responding and has successfully recovered."
This worked for both me and several other Battlefield junkies I know locally. And while I cannot guarantee it will work for you, I hope it does. As a side note, I used the same fix for Assassin's Creed on my old system.
Windows Vista and Windows 7 have a "feature" called Timeout Detection and Recovery (TDR). Essentially, it detects when your graphics card locks up, and restarts your display driver when such a lock-up occurs. It does so to protect your graphics card as well as your system, and prevents you from having to manually cut the power to your computer and restarting it. The TDR can trigger for anything from faulty hardware, to poor graphics drivers, to buggy software, to sneezing near your computer (I'm serious, it's happened <('-')>).
The TDR can be tweaked manually. I should mention that doing so is NOT recommended by Microsoft, and it may also cause your graphics card to fail. So... do this at your own risk. I do not take responsibility when your video card melts in the palm of your hand.
This tweak requires basic knowledge of how to edit the Windows Registry, and what will happen if you edit the Registry incorrectly. So again, if your computer fails to boot--not my problem.
1. From the Desktop hit {Windows} + {R}. Then type in "regedit" and hit okay.
2. Move to the following Registry directory:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers/
3. If they aren't already, create three REG_DWORDs (or REG_QWORDs if you are on 64-bit, but honestly I think DWORD will work for 64bit as well) with the following names:
TdrDelay
TdrLevel
TdrDdiDelay
4. TdrDelay is the key that adjusts the timeout for the TDR. By default the value is 0x2, meaning the TDR will trigger if the video card does not respond within two seconds. Change it to something higher than 0x2. I personally changed it to 0x12 (18 seconds).
5. TdrLevel adjusts the level of recovery. A value of 0x0 turns off Tdr detection, a value of 0x3 turns on Tdr detection (default value). The values 0x1 and 0x2 have other functions, but they do not apply to us so we don't care. I left this at the default value, but several other friends disabled Tdr detection.
6. TdrDdiDelay adjusts how long Windows lets the the threads to leave the GPU driver. I left the value as the default 0x05, but again, several friends increased the time on this.
7. Once you are done restart your computer and you should be good to go.
This has been known to work on the following GPUs, all with the latest drivers (Nvidia v 285.6, AMD 11.10 Preview v3):
AMD Radeon HD 6870
2x AMD Radeon HD 6950 CrossFire
ATI Radeon HD 4870
Nvidia Geforce GTX 460
2x ATI Radeon HD 5770 CrossFire
Nvidia Geforce GTX 260
Make sure you monitor your graphics card temperatures after applying the fix. My graphics driver continued to crash after applying the fix only to find out my video card's fan was sitting there idling happily at 15% speed while I was playing Battlefield 3. I manually adjusted it using AMD Overdrive to 50% and after 2 hours of playing have yet to have a crash.
I should also note that the friend with the GTX 260 is still crashing, but significantly less than he was before. So this may not be a perfect fix. For the rest of us, it seems to have worked.
More information on TDR can be found here: http://msdn.microsoft.com/en-us/windows/hardware/gg487368 [msdn.microsoft.com]
And just because I know someone will ask, here are my complete specs. If you want I will bug the others to give me there complete specs as well.
AMD Phenom II X4 965 @ 3.4ghz
Gigabyte AM2+ M.B. w/ AMD 770 chipset
AMD Radeon HD 6870
4gb DDR2 1066
Running at the "High" preset at 1920 x 1080.
Hope this helps!
This worked for both me and several other Battlefield junkies I know locally. And while I cannot guarantee it will work for you, I hope it does. As a side note, I used the same fix for Assassin's Creed on my old system.
Windows Vista and Windows 7 have a "feature" called Timeout Detection and Recovery (TDR). Essentially, it detects when your graphics card locks up, and restarts your display driver when such a lock-up occurs. It does so to protect your graphics card as well as your system, and prevents you from having to manually cut the power to your computer and restarting it. The TDR can trigger for anything from faulty hardware, to poor graphics drivers, to buggy software, to sneezing near your computer (I'm serious, it's happened <('-')>).
The TDR can be tweaked manually. I should mention that doing so is NOT recommended by Microsoft, and it may also cause your graphics card to fail. So... do this at your own risk. I do not take responsibility when your video card melts in the palm of your hand.
This tweak requires basic knowledge of how to edit the Windows Registry, and what will happen if you edit the Registry incorrectly. So again, if your computer fails to boot--not my problem.
1. From the Desktop hit {Windows} + {R}. Then type in "regedit" and hit okay.
2. Move to the following Registry directory:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers/
3. If they aren't already, create three REG_DWORDs (or REG_QWORDs if you are on 64-bit, but honestly I think DWORD will work for 64bit as well) with the following names:
TdrDelay
TdrLevel
TdrDdiDelay
4. TdrDelay is the key that adjusts the timeout for the TDR. By default the value is 0x2, meaning the TDR will trigger if the video card does not respond within two seconds. Change it to something higher than 0x2. I personally changed it to 0x12 (18 seconds).
5. TdrLevel adjusts the level of recovery. A value of 0x0 turns off Tdr detection, a value of 0x3 turns on Tdr detection (default value). The values 0x1 and 0x2 have other functions, but they do not apply to us so we don't care. I left this at the default value, but several other friends disabled Tdr detection.
6. TdrDdiDelay adjusts how long Windows lets the the threads to leave the GPU driver. I left the value as the default 0x05, but again, several friends increased the time on this.
7. Once you are done restart your computer and you should be good to go.
This has been known to work on the following GPUs, all with the latest drivers (Nvidia v 285.6, AMD 11.10 Preview v3):
AMD Radeon HD 6870
2x AMD Radeon HD 6950 CrossFire
ATI Radeon HD 4870
Nvidia Geforce GTX 460
2x ATI Radeon HD 5770 CrossFire
Nvidia Geforce GTX 260
Make sure you monitor your graphics card temperatures after applying the fix. My graphics driver continued to crash after applying the fix only to find out my video card's fan was sitting there idling happily at 15% speed while I was playing Battlefield 3. I manually adjusted it using AMD Overdrive to 50% and after 2 hours of playing have yet to have a crash.
I should also note that the friend with the GTX 260 is still crashing, but significantly less than he was before. So this may not be a perfect fix. For the rest of us, it seems to have worked.
More information on TDR can be found here: http://msdn.microsoft.com/en-us/windows/hardware/gg487368 [msdn.microsoft.com]
And just because I know someone will ask, here are my complete specs. If you want I will bug the others to give me there complete specs as well.
AMD Phenom II X4 965 @ 3.4ghz
Gigabyte AM2+ M.B. w/ AMD 770 chipset
AMD Radeon HD 6870
4gb DDR2 1066
Running at the "High" preset at 1920 x 1080.
Hope this helps!
Enlisted: 2011-10-27
Enlisted: 2011-10-27
Enlisted: 2011-10-27