论文部分内容阅读
性价比高、性能优秀,这是大部分游戏玩家对Radeon HD 4800系列显卡的评价。但近来笔者却多次听到不悦之声——Radeon HD 4800系列显卡虽然性能不错,但在运行3D游戏时,系统经常会弹出VPU Recover重置的窗口,进而终止游戏程序。玩家在多方探寻后也没有找到解决办法。究竟VPU Recover是什么,为什么在运行3D游戏时会弹出VPU Recover重置的窗口,该如何去解决呢?
从操作系统谈起—VPU Recover点点滴滴
什么是VPU Recover呢?不妨先从安装操作系统谈起。对安装好的纯净系统来说,需要做的第一件事情就是安装驱动程序。但是安装驱动程序也分先后顺序。一般首先安装主板芯片组驱动,安装后,系统的总线比如PCIExpress就被驱动起来了;第二个需要安装驱动程序的配件就是显卡;而后就是主板等相关配件驱动的安装。可以看出,显卡驱动程序的优先级和重要性仅次于主板芯片组。但是就像应用程序会崩溃一样,驱动程序也会崩溃!对于这样底层的驱动程序异常带来的后果,也许你就会见到习以为常的老面孔—“蓝屏”。
在意识到这个问题后,ATI显卡的驱动就一直支持VPU Recover功能。这项功能可以在显卡停止响应ATI的驱动程序命令时,重置图形芯片,从而使图形芯片重新响应驱动程序的命令。大多数情况下驱动程序可以用VPURecover功能重置图形芯片,无需重启,从而有效地降低了由于显卡硬件故障导致系统崩溃的几率,最大限度地保证了系统的稳定运行。可以看出,原来是显卡可能存在故障,所以系统会弹出VPU Recover重置窗口,阻止显卡继续运行3D游戏等大型程序,从而避免蓝屏或显卡损坏等故障。
Radeon HD 4800系列显卡故障浮出水面
目前用户反映最容易出现VPU Recover重置的是Radeon HD 4800系列显卡,使用单槽散热器、核心频率为625MHz的Radeon HD 4850则首当其冲。例如笔者2008年7月初购买的Radeon 4850就出现了这个问题—运行3D游戏一切正常,但是播放高清视频就会出现VPU Recover重置,甚至蓝屏死机(图5)!
随后发布的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_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers”中添加名为“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左右的电源。
从操作系统谈起—VPU Recover点点滴滴
什么是VPU Recover呢?不妨先从安装操作系统谈起。对安装好的纯净系统来说,需要做的第一件事情就是安装驱动程序。但是安装驱动程序也分先后顺序。一般首先安装主板芯片组驱动,安装后,系统的总线比如PCIExpress就被驱动起来了;第二个需要安装驱动程序的配件就是显卡;而后就是主板等相关配件驱动的安装。可以看出,显卡驱动程序的优先级和重要性仅次于主板芯片组。但是就像应用程序会崩溃一样,驱动程序也会崩溃!对于这样底层的驱动程序异常带来的后果,也许你就会见到习以为常的老面孔—“蓝屏”。
在意识到这个问题后,ATI显卡的驱动就一直支持VPU Recover功能。这项功能可以在显卡停止响应ATI的驱动程序命令时,重置图形芯片,从而使图形芯片重新响应驱动程序的命令。大多数情况下驱动程序可以用VPURecover功能重置图形芯片,无需重启,从而有效地降低了由于显卡硬件故障导致系统崩溃的几率,最大限度地保证了系统的稳定运行。可以看出,原来是显卡可能存在故障,所以系统会弹出VPU Recover重置窗口,阻止显卡继续运行3D游戏等大型程序,从而避免蓝屏或显卡损坏等故障。
Radeon HD 4800系列显卡故障浮出水面
目前用户反映最容易出现VPU Recover重置的是Radeon HD 4800系列显卡,使用单槽散热器、核心频率为625MHz的Radeon HD 4850则首当其冲。例如笔者2008年7月初购买的Radeon 4850就出现了这个问题—运行3D游戏一切正常,但是播放高清视频就会出现VPU Recover重置,甚至蓝屏死机(图5)!
随后发布的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_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers”中添加名为“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左右的电源。