上周折腾游戏引擎的时候,又双叒叕被DirectX报错弹窗糊了一脸。DXGI_ERROR_DEVICE_HUNG这种玩意儿跳出来真是头大,显卡风扇嗡嗡转得像要起飞,画面直接卡成PPT。
开局血压拉满
当时正给场景加体积光,突然屏幕一黑。任务管理器显示游戏进程直接吃满显卡,右下角还弹出个黄三角警告框,错误码跟摩斯密码似的。重启游戏?没用!更新驱动?报错照旧!当场就想把主机箱踹飞三米远。
翻日志挖线索
- 先按住Win+R敲dxdiag
- 在诊断工具里狂点保存所有信息
- 对着5000行的txt文件按Ctrl+F搜"error"
好家伙,除了刚才那个DXGI设备错误,底下还埋着个0x887A0005的幽灵代码,这玩意儿连微软文档都查不到。
土办法硬刚
实在没招了开始瞎折腾:
- 把显卡控制面板里电源管理模式改成最高性能优先
- 抄起DDU工具在安全模式下核爆式卸载显卡驱动
- 翻出三年前的417.71版老驱动强行安装
重启完居然能进游戏了,结果刚跑十分钟又弹出D3D11_ERROR_FILE_NOT_FOUND。气得我差点把键盘抠出火星子。
破案关键时刻
在显卡里看到个神帖:
- 打开系统盘进到Windows\System32
- 把amd_ags_*和俩文件复制到游戏目录
- 顺手把游戏启动器兼容性模式设成Windows 8
再启动时手都在抖,结果画面稳如老狗跑了俩小时。好家伙,原来是被系统自动更新的运行时库背刺了!
整理血泪清单
现在电脑里存着个DirectX报错急救.txt:
- 0x887A0004 → 显卡超频过热
- 0x887A0006 → 显存被别的程序吃光
- E_OUTOFMEMORY → 把虚拟内存调到32GB
这玩意儿救了我五次甲方演示,比啥官方文档都管用。谁再遇到设备丢失报错直接微信甩文件,省得天天帮人重装系统!
(后来发现那幽灵代码是Win11自动更新埋的坑,现在看见系统更新通知就想砸电脑)