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

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