图形管道阶段

“图形管道阶段”窗口是 Visual Studio 中的一种图形诊断工具,可以帮助你了解特定绘图事件如何在图形管道中移动。

这是“图形管道阶段”窗口:

一个三维对象通过这些管道阶段。

备注

从 Visual Studio 2013 Update 3 开始,图形诊断工具窗口承载于 Visual Studio shell 的独立副本中。这个自定义 shell 被称为图形分析,它消除不必要的菜单和选项,否则图形管道阶段窗口和工作流将与之前的相同。有关这一更改的详细信息,请参阅 图形诊断概述

了解图形管道阶段窗口

“图形管道阶段”窗口可帮助你对图形管道(适用于所呈现的特定对象)各阶段的输出进行分析。 特别是,你可以对数据被错误解释或转换的阶段进行标识 - 例如,你可以调查顶点着色器阶段是否导致对象被绘制到屏幕之外。 如果已经标识出了出现问题的管道阶段,可以使用其他图形诊断工具来检查数据是如何被解释或转换的。 管道阶段中出现的呈现问题通常与顶点格式说明符错误、着色器程序错误或设备状态未正确配置相关。

图形管道阶段

“图形管道阶段”窗口仅显示绘制调用期间处于活动状态的管道阶段的图形数据。 如果要使用 Visual Studio 中的图形工具来检查各个所显示阶段的输出,请在“图形管道阶段”窗口中选择关联缩略图。

“图形管道阶段”窗口中不支持计算着色器。

  • 输入装配器
    读取应用程序提供的索引和顶点数据,并组合它们以用于图形硬件。 缩略图会显示组合顶点的透明框架模型。 对应于位置的顶点数据由 POSITION 语义确定。 如果输入装配器输出中不存在 POSITION 语义,“输入装配器”阶段不会显示任何信息。 您可以使用模型编辑器来检查**“输入装配器”**阶段的输出。

  • 顶点着色器
    通常可通过执行转换、外观设置和照明等操作来处理顶点。 顶点着色器始终采用一个顶点输入再产生一个顶点输出。 缩略图会显示转换后的几何图形的线框图像。 与位置对应的顶点数据由 POSITION 或 SV_POSITION 语义确定。 如果顶点着色器输出中不存在 POSITION 或 SV_POSITION 语义,“顶点着色器”阶段不会显示任何信息。 你可以使用图像编辑器检查“顶点着色器”阶段的输出。

  • 外壳着色器
    仅限 Direct3D 11。 将几何基元 - 如四边形、三角形或线条处理为低序位几何修补程序,作为对固定函数分割阶段的输入。 这时不会显示任何“外壳着色器”缩略图。

  • 域着色器
    仅限 Direct3D 11。 处理固定函数分割阶段(类似于顶点着色器阶段)输出的细分顶点。 这时不会显示任何“域着色器”阶段缩略图。

  • 几何着色器
    处理全部基元 - 点、线或三角形 - 以及相邻基元的可选顶点信息。 几何着色器可以丢弃基元或发出一个或多个新的基元。 缩略图会显示转换后的几何图形的线框图像。 你可以使用图像编辑器检查“几何着色器”阶段的输出。

  • 像素着色器
    处理插入的顶点数据以生成彩色像素。 缩略图显示像素着色器输出的图像。 你可以使用图像编辑器检查“像素着色器”阶段的输出。

  • 输出合并器
    将不同类型的着色器的结果 - 例如,像素着色器值和深度信息 - 与呈现器目标和深度缓冲区以及模具缓冲区信息结合起来,从而确定这个呈现器目标的内容受到影响的方式。 在合并各个结果并考虑了模具缓冲区内容之后,缩略图将显示呈现器目标内容的图像。 您可以使用图像编辑器检查**“输出合并器”**阶段的输出。

查看和调试着色器代码

你可以通过使用管道阶段下方与着色器关联的控件查看“顶点着色器”、“外壳着色器”、“域着色器”、“几何着色器”或“像素着色器”的代码或对它们进行调试。

查看着色器源代码

  • 在与要查看的着色器关联的管道阶段下方,选择管道阶段的标题 - 例如,选择“顶点着色器”查看顶点着色器源代码。

调试着色器

  • 在管道阶段的标题下方,在与要调试的着色器关联的着色器阶段下方,选择“开始调试”。 这一 HLSL 调试器的入口点只调试对应阶段的第一个着色器调用,即处理的第一个顶点、基元或像素。 通过使用“图形像素历史记录”可以访问这些着色器阶段的其他调用。

链接到图形设备

要了解绘图调用为什么以特定方式与图形管道交互,你可能需要当前的设备状态信息。 “图形管道阶段”窗口提供了指向这个信息的链接。

请参见

任务

演练:因顶点着色而缺少对象

演练:调试因着色引起的呈现错误