微软详解DirectX 12中新引入的两项代码调试功能

微软的DirectX 12在很多玩家眼里似乎没有之前的DX9/DX10带来革命性的进步,但游戏开发者依然不能小看它。


对于想要获得更好的 GPU 性能的开发者来说,DirectX 12 是一款很重要的工具。2015 年的时候,DX12 随着 Windows 10 的发布而正式与大家见面。而在最新的 Windows 10 秋季创作者更新(1709)中,该公司又为它添加更多的功能 API,以方便开发者追踪和消除程序的 bug 。近日,Jacques van Rhyn 通过 DX 开发者博客发表了一篇文章,重点介绍了 DX12 两大新特性。


作为一名开发者,你显然需要清楚了解什么命令可能导致程序在 GPU 上运行时崩溃,然后尽力避免此类事件的发生。设计上,这两款工具可以相辅相成,帮你重点消除 设备移除 或 设备丢失 之类的错误。


在秋季创作者更新之前,应用程序无法直接控制底层的内存资源。但在某些需要访问资源内存内容的应用中,这点又是非常重要的,比如刚好发生了设备移除错误之后。


我们已经部署了一款这样的工具,有需要的开发者们现可获知更多更用的信息,帮助他们确定错误发生在了哪里。以及优化试图确定错误原因的时间,让他们有更充裕的时间来跨系统修复。


我们制作了可以与前者共同使用的另一款工具,它可以创建标记,记录哪些发自 GPU 的命令已经被执行,另有哪些在执行过程中。


在崩溃发生的时候,即使是一个设备移除崩溃,这些信息仍然是滞后的,意味着我们可以很快地找出哪些命令可能诱发了崩溃。


Van Rhyn 指出,新工具的意义,在于能够让开发者们将更多时间花在构建 高性能、可靠的游戏 ,而不再纠结于 搜索特定错误的深层原因 。


此外,Van Rhyn 还略详细地介绍了今年 4 月份的 Windows 10 创意者更新(1704)中引入的 深度范围测试 (Depth Bounds Testing)和 可编程多重采样反锯齿 (Programmable Multisample Anti-Aliasing)特性。


最后,Windows 10 秋季创意者更新还修复了多个 DX12 的 bug,且微软开发部门将开始每月例行更新 PIX 图形调试软件。