DXGI debugging: Microsoft put me on a list
8 months ago
- #DirectX
- #Debugging
- #ARM64
- 作者正在为Space Station 14开发ARM64版本,特别关注同时支持ARM64和x64架构的启动器。
- 游戏客户端在Windows ARM64系统上崩溃,日志在SDL初始化后中断,表明是原生代码崩溃。
- 使用WinDbg调试发现是USER32!GetDC中的非法指令崩溃,由于ARM64EC混淆导致WinDbg难以分析。
- 问题根源在于DXGI为'窗口化游戏优化'安装的detour钩子在ARM64上失效。
- 只有当可执行文件命名为'SS14.Loader.exe'时才会崩溃,表明微软的优化白名单是罪魁祸首。
- 作者考虑推迟官方Windows ARM64支持,直到OpenGL on D3D12或ARM64 DXGI detours的bug被修复。
- 临时解决方案是在Windows设置中禁用'窗口化游戏优化'功能。