上报前检查
操作系统信息
CPU: AMD Ryzen 7 9800X3D
主板: 华硕 ROG CROSSHAIR X870E HERO
内存: 64 GB DDR5 4800 MHz (32 GB × 2) 未开超频
显卡: NVIDIA GeForce RTX 5090 (驱动 581.80)
问题描述
在运行 Unreal Engine 5 游戏 ARC Raiders(Steam 平台)时,游戏会在运行几分钟后崩溃,错误为:
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION (reading address 0x10)
经过chatgpt分析游戏崩溃报告显示:崩溃位置在 D3D12 渲染线程(Frame Generation / Swapchain Hook)。
我中途进行了很多其他尝试 如使用ddu重装显卡驱动 以及重装dx运行库进行修复 与清除reshade缓存 更新bios等操作 均无法彻底解决问题
经过多次排查,我发现关闭 WeaselServer.exe(通过启动项禁用小狼毫后台进程 重启电脑开启游戏)后,游戏完全不再闪退。
重新启动 WeaselServer 后,游戏数分钟内必然再次崩溃,问题可 100% 复现。其中进行操作会加快崩溃的发生。
重现步骤
启动 Weasel 输入法(WeaselServer.exe 在后台运行)
启动 ARC Raiders(Unreal Engine 5.3,D3D12 模式(注意这里是gpt生成的 可能是它通过阅读游戏崩溃报告获取的版本和模式 但我不太确定))
进入靶场或多人地图加载阶段
游戏在启动后的数分钟内会崩溃。
通常在系统刚开机后第一次运行游戏时,崩溃前的等待时间较长;
但如果不使用 AMD Adrenalin 在图形设置中 重置 Shader Cache,直接重新启动游戏,则会在很短时间内再次闪退。
进一步测试发现:
如果在第一次发生崩溃后,第二次游戏启动前手动结束 WeaselServer.exe 进程,游戏仍会在数分钟后崩溃;
只有在禁用 WeaselServer.exe 的开机自启,并在重启系统后不再运行该进程的情况下,才能稳定游玩且不再闪退。
期望行为
Weasel 在后台运行时不应影响 DirectX / Vulkan / Unreal Engine 程序稳定性。
补充说明
我是在平台交流时看到有人提到 QQ 可能会导致游戏崩溃后,想到尝试排查启动项的。
我采用了控制变量的方式进行测试:
第一次,我仅在开机启动项中禁用了 QQ,但保留了小狼毫输入法(Rime),进入游戏后依旧出现崩溃;
第二次,在禁用 QQ 的基础上,我同时禁用了小狼毫输入法,然后进行游戏,结果在昨天连续游玩了六到七个小时,完全没有再发生闪退。
我对底层技术不太了解,也无法确定是不是 QQ 和小狼毫的某种复合干扰造成了问题。
但我隐约感觉这两类程序可能会触发虚幻引擎 5 内部某种与 Shader Cache(着色器缓存)相关的累计错误。
这也许能解释为什么网上很多教程都建议通过重置 Shader Cache或删除以下两个文件来尝试修复:%LOCALAPPDATA%\PioneerGame\Saved:
- D3DDriverByteCodeBlob_V4318_D11141_S1100551256_R161.ushaderprecache
- PioneerGame_PCD3D_SM5.upipelinecache
该问题仅在游戏默认模式 Unreal Engine 5.x(不太确定是不是5.3) + DX12 (游戏默认)模式下出现。
其他程序(包括使用 -DX11启动项的本游戏、Unity、Chrome)均不受影响。
chatgpt怀疑 Weasel 在 hook 输入法或窗口层时与 DXGI 交换链(Swapchain)产生冲突。
用户文件
如需进一步分析,我可提供:
%AppData%\Rime 下的用户配置文件;
%LocalAppData%\PioneerGame\Saved\Crashes 下的完整崩溃日志。
上报前检查
我确认问题尚未在 issue 中被报告
我的小狼毫版本来自 rime/weasel 最新构建
我确认使用了最新 CI 构建版本
操作系统信息
OS:Windows 11 25H2 26200.6899
小狼毫版本:0.17.4.0
CPU: AMD Ryzen 7 9800X3D
主板: 华硕 ROG CROSSHAIR X870E HERO
内存: 64 GB DDR5 4800 MHz (32 GB × 2) 未开超频
显卡: NVIDIA GeForce RTX 5090 (驱动 581.80)
问题描述
在运行 Unreal Engine 5 游戏 ARC Raiders(Steam 平台)时,游戏会在运行几分钟后崩溃,错误为:
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION (reading address 0x10)
经过chatgpt分析游戏崩溃报告显示:崩溃位置在 D3D12 渲染线程(Frame Generation / Swapchain Hook)。
我中途进行了很多其他尝试 如使用ddu重装显卡驱动 以及重装dx运行库进行修复 与清除reshade缓存 更新bios等操作 均无法彻底解决问题
经过多次排查,我发现关闭 WeaselServer.exe(通过启动项禁用小狼毫后台进程 重启电脑开启游戏)后,游戏完全不再闪退。
重新启动 WeaselServer 后,游戏数分钟内必然再次崩溃,问题可 100% 复现。其中进行操作会加快崩溃的发生。
重现步骤
启动 Weasel 输入法(WeaselServer.exe 在后台运行)
启动 ARC Raiders(Unreal Engine 5.3,D3D12 模式(注意这里是gpt生成的 可能是它通过阅读游戏崩溃报告获取的版本和模式 但我不太确定))
进入靶场或多人地图加载阶段
游戏在启动后的数分钟内会崩溃。
通常在系统刚开机后第一次运行游戏时,崩溃前的等待时间较长;
但如果不使用 AMD Adrenalin 在图形设置中 重置 Shader Cache,直接重新启动游戏,则会在很短时间内再次闪退。
进一步测试发现:
如果在第一次发生崩溃后,第二次游戏启动前手动结束 WeaselServer.exe 进程,游戏仍会在数分钟后崩溃;
只有在禁用 WeaselServer.exe 的开机自启,并在重启系统后不再运行该进程的情况下,才能稳定游玩且不再闪退。
期望行为
Weasel 在后台运行时不应影响 DirectX / Vulkan / Unreal Engine 程序稳定性。
补充说明
我是在平台交流时看到有人提到 QQ 可能会导致游戏崩溃后,想到尝试排查启动项的。
我采用了控制变量的方式进行测试:
第一次,我仅在开机启动项中禁用了 QQ,但保留了小狼毫输入法(Rime),进入游戏后依旧出现崩溃;
第二次,在禁用 QQ 的基础上,我同时禁用了小狼毫输入法,然后进行游戏,结果在昨天连续游玩了六到七个小时,完全没有再发生闪退。
我对底层技术不太了解,也无法确定是不是 QQ 和小狼毫的某种复合干扰造成了问题。
但我隐约感觉这两类程序可能会触发虚幻引擎 5 内部某种与 Shader Cache(着色器缓存)相关的累计错误。
这也许能解释为什么网上很多教程都建议通过重置 Shader Cache或删除以下两个文件来尝试修复:%LOCALAPPDATA%\PioneerGame\Saved:
该问题仅在游戏默认模式 Unreal Engine 5.x(不太确定是不是5.3) + DX12 (游戏默认)模式下出现。
其他程序(包括使用 -DX11启动项的本游戏、Unity、Chrome)均不受影响。
chatgpt怀疑 Weasel 在 hook 输入法或窗口层时与 DXGI 交换链(Swapchain)产生冲突。
用户文件
如需进一步分析,我可提供:
%AppData%\Rime 下的用户配置文件;
%LocalAppData%\PioneerGame\Saved\Crashes 下的完整崩溃日志。