I play Anno 1404 since some days. I do very like this game. But I have a little problem: With my new graphic card, an ATI Radeon HD4890 I get black screens after playing for about 30 minutes. I recognize a “VPU recover” in Windows 7 tray. The eventlog shows a 4101 event from source “Display” in the system log. The game is not hanging completely. E.g. I am able to quick save the game by pressing F5. So nothing gets lost but in general the black screen is annoying.
See how I fixed the problem for me…
At the moment I use the ATI Radeon 9.7 drivers on Windows 7 x64.
I tried many things to fix the issue:
- Changing display settings in Anno 1404
- Changing display settings in CCC (Catalyst Controll Center)
- Upgrading to ATI Radeon 9.8 drivers
- Downgrading to ATI Radeon 9.6 drivers
Nothing of that fixed my problem. I read in some forums that this would be a bug of the ATI drivers. Maybe this is true but after hours of searching and trying I found another solution than waiting for a new driver version:
In Windows Vista and Windows 7 the VPU recover is not triggered by the video drivers. Instead of this it is triggered by Windows. Seems the threshold until the VPU recover is triggered by Vista is to small. In Vista the interval is 2 seconds. After a graphic lag (Freeze of the picture) of two seconds Vista will fire actions to recover the graphic card to prevent a full freeze of the system (would result in a bluescreen). It will unload the video driver, reboot the GPU and then reload the driver. Therefor you are able to use the computer after a graphic failure without rebooting it. A picture freeze could have several reasons. One reason could be an overloaded GPU which maybe caused by a picture which takes to long to be rendered.
The 2 seconds seem to be too small threshold. I read about two possibilities to workaround this:
- Disable the VPU recover of Vista completely
- Increase the threshold
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers] "DxgKrnlVersion"=dword:00001052 "TDR_DEBUG_MODE_IGNORE_TIMEOUT"=dword:00000001 "TdrDelay"=dword:00000010 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI] "Timeout"=dword:00000007 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\MemoryManager] "Period.EnableEvictionThresholdForWrite"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\TdrTestMode] "TDR_DEBUG_MODE_IGNORE_TIMEOUT"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\UseNewKey]
And magic! I can now play Anno 1404 without black screens and freezing pictures.