MCPLive > 杂志文章 > 解决ATI Radeon HD4800系列重置问题

解决ATI Radeon HD4800系列重置问题

2008-12-30其乐无穷《微型计算机》2008-24

性价比高、性能优秀,这是大部分游戏玩家对Radeon HD 4800系列显卡的评价。但近来笔者却多次听到不悦之声——Radeon HD 4800系列显卡虽然性能不错,但在运行3D游戏时,系统经常会弹出VPU Recover重置的窗口,进而终止游戏程序。玩家在多方探寻后也没有找到解决办法。究竟VPU Recover是什么,为什么在运行3D游戏时会弹出VPU Recover重置的窗口,该如何去解决呢?

从操作系统谈起—VPU Recover点点滴滴

什么是VPU Recover呢?不妨先从安装操作系统谈起。对安装好的纯净系统来说,需要做的第一件事情就是安装驱动程序。但是安装驱动程序也分先后顺序。一般首先安装主板芯片组驱动,安装后,系统的总线比如PCI-Express就被驱动起来了;第二个需要安装驱动程序的配件就是显卡;而后就是主板等相关配件驱动的安装。可以看出,显卡驱动程序的优先级和重要性仅次于主板芯片组。但是就像应用程序会崩溃一样,驱动程序也会崩溃!对于这样底层的驱动程序异常带来的后果,也许你就会见到习以为常的老面孔—“蓝屏”。

在意识到这个问题后,ATI显卡的驱动就一直支持VPU Recover功能。这项功能可以在显卡停止响应ATI的驱动程序命令时,重置图形芯片,从而使图形芯片重新响应驱动程序的命令。大多数情况下驱动程序可以用VPU Recover功能重置图形芯片,无需重启,从而有效地降低了由于显卡硬件故障导致系统崩溃的几率,大限度地保证了系统的稳定运行。可以看出,原来是显卡可能存在故障,所以系统会弹出VPU Recover重置窗口,阻止显卡继续运行3D游戏等大型程序,从而避免蓝屏或显卡损坏等故障。

在Windows XP以前(包含Windows XP)的操作系统中,可以在ATI的催化剂驱动控制面板(CATALYST Control Center)中找到“VPU Recover”页面,并勾选上“Enable VPU Recover”就可以开启该功能。

当遇到图形处理器停止响应的时候,该功能就会重新载入显示驱动,从而使系统不需要重启就可以恢复正常。但是在Windows Vista/Server 2008上,由于Windows内核自带类似功能,所以就不需要VPU Recover功能。正因为此,Windows Vista能够支持底层驱动程序重载功能,进而避免了驱动崩溃的尴尬。

由于Windows XP和Windows Vista在支持驱动重载的实现方式不同(前者通过ATI驱动实现,后者通过系统内核级WDDM实现),因此当出现VPU Recover重置时,系统报错的方式也不一样。WindowsXP下会弹出一个ATI VPU Recover的警告窗口,而在Windows Vista下所有驱动程序的重置都会在状态栏中弹出一个气泡作为告警,并提示“Display driver stopped responding and has recovered”(显示驱动停止响应,已重置)。

什么是WDDM

WDDM即Windows Desktop Driver Model,是微软为Vista推出的新版本图形驱动程序标准。WDDM可在系统崩溃后初始化显卡,而Windows XP 在系统崩溃后可能会损坏显卡驱动。

Radeon HD 4800系列显卡故障浮出水面

目前用户反映容易出现VPU Recover重置的是Radeon HD 4800系列显卡,使用单槽散热器、核心频率为625MHz的Radeon HD 4850则首当其冲。例如笔者2008年7月初购买的Radeon 4850就出现了这个问题—运行3D游戏一切正常,但是播放高清视频就会出现VPU Recover重置,甚至蓝屏死机!

随后发布的Radeon HD 4870虽然核心频率比Radeon HD 4850高,且使用了散热性能更好的纯铜加热管的双槽散热器,但依旧可能出现类似的问题。比较明显的症状是在运行部分3D游戏时,会弹出VPU Recover重置窗口,并且无法通过FurMark测试(注:一款基于OpenGL 2.0的测试软件,能够严格地测试显卡稳定性。)。

究因排错

为了证实笔者对出现VPU Recover重置原因的判断,笔者咨询了AMD和国内知名显卡厂商,都没有得到明确的答复。因为如果产品出现VPU Recover重置的错误报告,厂商直接提交给AMD,而错误的原因厂商一般一无所知。

不过笔者还是从微软资料库中找到出现VPU Recover的原因。通过参阅“Timeout Detection and Recovery of GPUs through WDDM”这篇文档(http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx)可以发现,微软把ATI VPU Recover功能称之为Timeout Detection and Recovery(以下缩写为TDR),实现过程分为三步:

1.超时检测:当Windows Vista视频调度部分的图形堆栈侦测到GPU执行特定任务的时间超过Windows Vista允许的两秒时,就会试图终止这项任务,GPU就会被认为挂起。

2.准备恢复:操作系统通知WDDM驱动程序,发现一个超时程序时必须重置图形处理器。然后驱动程序停止访问显存,同时停止访问硬件。

3.桌面恢复:操作系统将图形堆栈恢复到正常状态,显存管理器组件的图形堆栈清除所有显存。在WDDM驱动程序重置GPU的硬件状态前,图形堆栈做出后动作并恢复桌面。

由此可以推断,ATI VPU Recover功能也进行了类似的操作。通过对这一系列操作的分析,就可以制定出现VPU Recover重置之后排错的步骤。首先,用户可尝试更新驱动以确保驱动和操作系统、应用程序没有兼容性问题;接下来,如果是Windows XP用户可以在ATI驱动控制面板中取消勾选“Enable VPU Recover”。而对于Windows Vista用户则稍微复杂一些,需要修改注册表禁用TDR。

具体步骤是在“HKEY_LOCAL_MACHINESystemCurrentControlSetControlGraphicsDrivers”中添加名为“TdrLevel”的DWORD值,键值为“0”;如果用户使用780G这样的整合主板,那么可尝试刷新显卡BIOS;如果是独立显卡,特别是对显卡进行了超频,或者使用的是公版单槽散热器,可以尝试用FurMark测试稳定性——只需要将测试模式(Run Mode)由“Benchmarking”改为“Stability Test”,并用GPU-Z这样的软件来监控GPU温度。如果GPU高温度超过了80摄氏度,就应该考虑改善散热条件。

对于BIOS版本比较老的Radeon HD 4800系列显卡来说,如果核心温度过高,可以考虑刷新显卡BIOS。后续推出的BIOS都是降温版本,目的在于使显卡散热器风扇的自动温控更合理。另外,电源额定功率不足容易造成显卡供电不足,导致VPU Recover问题出现。特别是显卡在2D状态显示正常,而一旦运行3D游戏则出现VPU Recover重置时,电源供电不足占了极大的可能性。如果是这种情况,可以考虑更换额定400W左右的电源。

分享到:

用户评论

共有评论(4)

  • 2009.03.01 09:50
    4楼

    呵呵 A卡VPU重置已经不是什么新奇的事了 当年我用ATI9250 128bit 128MB时 玩魔兽争霸3C ORC地图的时候经常出现VPU停止相应的提示 装的还是高版本的催化剂 那个郁闷啊 真想换块N卡用用 呵呵

    (0) (0) 回复
  • 2009.02.02 10:50
    3楼

    我用的蓝宝4830没有这个问题,我感觉A卡很好。

    (0) (0) 回复
  • 2009.01.08 13:15
    2楼

    我买的(蓝宝石HD4850白金2代)技嘉P43-S3L,没遇到这个问题!!!!个人感觉A卡还不错!性价比高!!!!!!!!!!!!!

    (0) (0) 回复
  • 2009.01.05 14:16
    1楼

    4800系列的问题有这么严重吗? 那N系的芯片一冷一热 导致芯片老化报销的问题是不是更严重一些呢?

    (0) (0) 回复

用户名:

密码: