9 月 12 日消息,《星空》游戏自上线以来,部分玩家不断反馈游戏存在性能问题。VKD3D 开发者 HansKristian-Work 近日上线 GitHub 页面,详细罗列了导致《星空》游戏性能问题的原因。
内存分配不当
《星空》没有根据 CPU 页面大小正确分配其内存需求,导致访问内存效率低下,性能下降或者意外崩溃。
计算机系统为了优化访问,通常会进行分页,而游戏需要根据分页大小优化代码,对于提高性能是非常关键的一环。
《星空》游戏无法正确分配内存,在 GPU 驱动无法缓解的情况下,就会导致游戏崩溃。
ExecuteIndirect 引发的 GPU Bubble
DirectX12 API 包含一个名为“ExecuteIndirect”的简洁功能,可以不需要 CPU 的干预情况下,直接交由 GPU 执行间接渲染操作,GPU 可以通过使用现有计算来执行必要的工作负载。
《星空》无法妥善掌控这一特性,导致了图形驱动程序的混乱。《星空》游戏向图形驱动发送了误导性提示,从而导致 GPU 反馈了错误内容,整个过程中 GPU 没有做任何实际的工作。