Hasty Briefsbeta

双语

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设置中禁用'窗口化游戏优化'功能。