Visual Studio 可以帮助你调试 DirectX 游戏或应用中的图形错误。 通过使用图形诊断工具,你可以标识特定呈现错误,并对可能构成它们的因素执行重点检查。
本节内容
图形诊断概述
介绍图形诊断工作流和工具。捕获图形信息
若要使用图形诊断检查应用中的呈现问题,请先记录有关应用如何使用 DirectX 的信息。 在记录会话期间,由于应用正常运行,你可以捕获(即选择)感兴趣的帧。 包含有关如何呈现帧的详细信息的捕获。 你可以将捕获的信息另存为图形日志文档,以在稍后进行检查或与团队中的其他成员进行共享。图形日志文档
若要开始检查记录的图形日志,请使用“图形日志”文档窗口选择一个捕获的帧(甚至是一个特定像素),以便你可以详细检查影响它的事件(即 DirectX API 调用)。图形帧分析
选择某个帧后,请使用“图形帧分”检查并调整呈现性能。图形事件列表
选择某个帧后,请使用**“图形事件列表”**检查其事件,以确定它们是否与呈现问题相关。图形管道阶段
在**“图形管道阶段”**窗口中,调查图形管道的每个阶段如何处理当前选中的事件,以便你可以标识呈现问题第一次出现的位置。 当由于不正确的转换导致对象无法出现时,或者当某个阶段产生与下一阶段期望的输出不匹配的输出时,检查管道阶段尤其有用。图形事件调用堆栈
请使用**“图形事件调用堆栈”**检查当前选中事件的调用堆栈,以便你可以导航到与呈现问题相关的应用代码。图形像素历史记录
通过使用**“图形像素历史记录”**窗口分析当前选中像素如何受影响它的事件影响,你可以标识引发某种呈现问题的事件或事件组合。 当由于像素着色器输出不正确或与帧缓冲区错误合并而导致不正确地呈现对象时,或者当由于在对象的像素到达帧缓冲区之前已丢弃它们而导致对象甚至并未出现时,像素历史记录尤其有用。图形对象表
请使用**“图形对象表”**,以检查对当前选中事件有效的特定 Direct3D 对象和资源的属性和内容。 对象表可以帮助你确定在事件期间处于活动状态的图形设备上下文,并检查图形资源的内容(例如,变量缓冲区、顶点缓冲区和纹理)。HLSL 调试器
若要检查当前选中事件和图形管道阶段的着色器代码的行为方式,请使用**“HLSL 调试器”**逐步执行代码、检查变体内容,并执行其他典型的调试任务。 你还可以使用 HLSL 调试器检查计算着色器代码,而不管是由图形管道进一步处理结果,还是只由应用读回结果。命令行捕获工具
使用命令行捕获工具可快速捕获和播放图形信息,无需使用 Visual Studio 或编程捕获。 尤其是,命令行捕获工具可以用来实现自动化,也可在测试环境中使用。图形诊断示例
以下几个示例演示了如何结合使用图形诊断工具来诊断不同种类的呈现问题。
相关章节
标题 |
描述 |
---|---|
介绍 Visual Studio 中的调试功能。 |
|
提供讨论 DirectX 图形技术的文章。 |