微软详解DirectX 12中新引入的两项代码调试功能
2023-06-09 08:56:18 小编:landother 我要评论
微软的DirectX 12在很多玩家眼里似乎没有之前的DX9/DX10带来革命性的进步,但游戏开发者依然不能小看它。
对于想要获得更好的 GPU 性能的开发者来说,DirectX 12 是一款很重要的工具。2015 年的时候,DX12 随着 Windows 10 的发布而正式与大家见面。而在最新的 Windows 10 秋季创作者更新(1709)中,该公司又为它添加更多的功能 API,以方便开发者追踪和消除程序的 bug 。近日,Jacques van Rhyn 通过 DX 开发者博客发表了一篇文章,重点介绍了 DX12 两大新特性。
作为一名开发者,你显然需要清楚了解什么命令可能导致程序在 GPU 上运行时崩溃,然后尽力避免此类事件的发生。设计上,这两款工具可以相辅相成,帮你重点消除“设备移除”或“设备丢失”之类的错误。
首先是改进了数据调试:
在秋季创作者更新之前,应用程序无法直接控制底层的内存资源。但在某些需要访问资源内存内容的应用中,这点又是非常重要的,比如刚好发生了设备移除错误之后。
我们已经部署了一款这样的工具,有需要的开发者们现可获知更多更用的信息,帮助他们确定错误发生在了哪里。以及优化试图确定错误原因的时间,让他们有更充裕的时间来跨系统修复。
其次是改进了命令调试:
我们制作了可以与前者共同使用的另一款工具,它可以创建标记,记录哪些发自 GPU 的命令已经被执行,另有哪些在执行过程中。
在崩溃发生的时候,即使是一个设备移除崩溃,这些信息仍然是滞后的,意味着我们可以很快地找出哪些命令可能诱发了崩溃。
对于开发者来说,这些信息可以显著减少游戏开发和修复 bug 所需的时间。
Van Rhyn 指出,新工具的意义,在于能够让开发者们将更多时间花在构建“高性能、可靠的游戏”,而不再纠结于“搜索特定错误的深层原因”。
此外,Van Rhyn 还略详细地介绍了今年 4 月份的 Windows 10 创意者更新(1704)中引入的“深度范围测试”(Depth Bounds Testing)和“可编程多重采样反锯齿”(Programmable Multisample Anti-Aliasing)特性。
最后,Windows 10 秋季创意者更新还修复了多个 DX12 的 bug,且微软开发部门将开始每月例行更新 PIX 图形调试软件。