图形诊断

本文档介绍可用于在 DirectX 图形应用程序中诊断常见呈现问题的 Visual Studio 图像诊断工具。图形诊断支持 Direct3D 10、Direct3D 10.1、Direct3D 11 和 Direct3D 11.1,并对 Direct2D 提供有限支持。它不支持 Direct3D、DirectDraw 或其他图形 AIP 的更早版本。

您可以使用图形诊断到:

  • 获取最新检查的呈现帧。

  • 为详细测试和分析浏览并选择捕获的帧。

  • 帧期间发生的视图 Direct3D 事件,以及它们对应用程序的影响。

  • 在每个管线阶段后查看 3-D 网格数据或呈现目标数据。

  • 跳转至特定 Direct3D 事件的源代码位置。

  • 找到哪些 Direct3D 事件导致了在每帧的特定像素的颜色。

  • 检查 Direct3D 对象,如设备状态、缓冲区、网格和纹理。

图形日志

图形诊断捕获会话期间,创建图形日志记录事件、资源和图形状态。然后,可以使用图形日志来详细重新创建并检查捕获的帧,而不必复制用于捕获的环境。您可以同时加载多个图形日志 (.vsglog) 文件比较数据和呈现结果。由于这些文件是独立的,您可以与其他开发人员共享它们。有关更多信息,请参见调试 DirectX 图形

说明说明

由于某些 Windows 8 API 不在 Windows 7 或 Windows vista 中使用,使用这些 API 的 apps 在 Windows 7 或 Windows vista 不能重新创建。

打开图形日志文件 (vsglog) 文件

  1. 在 Visual Studio 的菜单栏上,选择**“文件”“打开”“文件”。此时出现“打开文件”**对话框。

  2. 指定图像记录 (.vsglog) 文件打开,然后选择**“打开”**按钮。

使用图形诊断工具栏

您可以使用图形诊断工具栏访问帮助您获取图形日志的数据的工具,然后诊断和调试在日志中捕获的问题。

这是图形诊断工具栏:

诊断模式中的图形调试器工具栏

下表描述图像诊断工具栏上的项目。按这些项从左到右出现的顺序将它们列出。

工具栏按钮

描述

启动诊断

开始一个 Direct3D 应用程序与为启用的图像诊断支持。当您启动应用程序这种方式时,可以使用图像诊断来捕获在运行应用程序中有关各个帧的详细信息。

事件列表

打开“图形事件列表”窗口。

像素历史记录

打开“图形像素历史记录”窗口。

事件调用堆栈

打开“图形事件调用堆栈”窗口。

对象表

打开“图形对象表”窗口。

管道阶段

打开“图形管道阶段”窗口。

捕获帧。

从使用“启动诊断”按钮开始的正在运行的 Direct3D 应用程序,启动帧。仅当图像诊断启用的应用程序运行时,“获取帧”按钮均处于启用状态。

DirectX 控制面板

DirectX 控制面板是可用于更改 DirectX 行为的方式的 DirectX 组件—例如,您可以启用 DirectX 运行时组件的调试版本,选择报告的调试消息种类,和禁止要用于模拟较少支持的硬件中的某些图形硬件功能。DirectX 的此控制级别可帮助您调试和测试应用程序的 DirectX 应用程序。可以从 Visual Studio 中访问 DirectX 控制面板。

打开 DirectX 控制面板

  • 在菜单栏上,依次选择**“调试”“图形”“DirectX 控制面板”**。

图形诊断工具窗口

下图显示用于检查和调试捕获的帧的工具窗口。每个窗口显示获取了对框架检查甚至为帧的单个像素的信息的不同类别。

已显示的所有图形调试器窗口

相关主题

标题

描述

捕获图形信息

描述如何获取图像信息,以便可以用图像诊断工具分析它。

图形日志文档

介绍如何使用图形信息日志记录标识可视化项目由呈现问题导致的图像。

图形事件列表

描述如何使用“图像事件列表”标识与呈现问题相关的事件。

图形管道查看器

描述如何使用“图像管道阶段”窗口标识一个呈现问题首先出现的管道阶段。

图形事件调用堆栈

描述如何使用“图像事件调用堆栈”找到与呈现问题相关的应用程序代码。

图形像素历史记录

描述如何使用“图像像素历史记录”检查影响像素的最终颜色的事件的详细信息。

图形对象表

描述如何使用“图形对象表”查看与呈现问题相关的对象的详细信息。

HLSL 调试

描述如何使用“HLSL 调试器