Version: 6000.3
语言: 中文
使用 Visual Studio 调试着色器
着色器语言参考

使用 PIX 调试着色器

PIX 是 Microsoft 为Windows开发人员提供的性能调整和调试工具。它提供了一系列用于分析应用程序性能的模式,并包括从应用程序捕获 DirectX 项目帧以进行调试的功能。

使用 PIX 调查 Windows 64 位 (x86_64) 独立或通用 Windows 平台应用程序中的问题。

若要安装 PIX,请下载并运行 Microsoft PIX 安装程序,然后按照说明进行作。

有关 PIX 的详细信息,请参阅 Microsoft 的 PIX 简介PIX 文档

使用 PIX 调试 DirectX 着色器

您应该使用 Unity 应用程序的构建版本来捕获帧,而不是在 Unity 编辑器中运行的版本。这是因为您需要从 PIX 中启动目标应用程序才能捕获 GPU 帧。

使用开发版本开发版本包括调试符号并启用分析器。更多信息
请参阅术语表
向 PIX 添加附加信息,这使得导航场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
捕获更容易。

使用启用调试的着色器创建项目

若要使用 PIX 中的源代码调试着色器,需要在着色器代码中插入以下编译指示:#pragma enable_d3d11_debug_symbols

以下演练使用基本示例来演示整个过程。

创建一个基本项目:

  1. 创建一个新的 Unity 项目(请参阅有关项目的 Hub 文档)。

  2. 在顶部菜单中,转到资产可在游戏或项目中使用的任何媒体或数据。资产可能来自在 Unity 外部创建的文件,例如 3D 模型、音频文件或图像。您还可以在 Unity 中创建一些资产类型,例如动画师控制器、混音器或渲染纹理。更多信息
    请参阅术语表
    > 创造 > 着色器在 GPU 上运行的程序。更多信息
    请参阅术语表
    > 标准表面着色器。这会在项目在 Unity 中,你使用项目来设计和开发游戏。项目存储与游戏相关的所有文件,例如资产和场景文件。更多信息
    请参阅术语表
    文件夹。

  3. 选择着色器文件,然后在检查器一个Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
    请参阅术语表
    窗口中,单击“打开”。这将在脚本编辑器中打开着色器文件。 插入#pragma enable_d3d11_debug_symbols进入着色器代码,在另一个#pragma线。

  4. 创建新材质(菜单:资产(Assets) > 创建(Create > 材质定义如何渲染表面的资产。更多信息
    请参阅术语表
    ).

  5. 在材质的 检查器(Inspector) 窗口中,选择 着色器(Shader) 下拉菜单,转到 自定义(Custom),然后选择你刚刚创建的着色器。

  6. 创建 3D 立方体游戏对象(菜单:游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    > 3D 对象3D游戏对象,例如立方体、地形或布娃娃。更多信息
    请参阅术语表
    > 立方体)。

  7. 将新材质分配给新游戏对象。为此,请将材质从 Project 窗口拖到 3D 立方体。

从 Windows 独立应用程序捕获帧:

  1. 转到 文件>构建配置文件(File Build Profiles),然后在 平台(Platforms) 下,选择 Windows 或为 Windows 平台创建构建配置文件。将 架构(Architecture) 设置为 Intel 64 位,并启用 开发构建(Development Build) 。

  2. 点击构建将项目编译为可在特定平台或平台上运行的格式的过程。更多信息
    请参阅术语表
    .

  3. 启动 PIX。

  4. 单击主页,然后单击连接

  5. 选择计算机本地主机以使用您的电脑进行捕获,然后单击连接

  6. 在“选择目标进程”框中,选择“启动 Win32”选项卡,然后使用“浏览”按钮选择应用程序的可执行文件。请注意,此处的“Win32”表示非 UWP 应用程序;应用程序文件必须是 64 位二进制文件。

  7. 启用 GPU 捕获的启动(Launch) ,然后使用 启动(Launch) 按钮启动应用程序。

  8. 像往常一样使用应用程序,直到您准备好捕获帧。要捕获帧,请按键盘上的 Print Screen,或单击相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
    请参阅术语表
    图标。捕获的缩略图将显示在面板中。要打开捕获,请单击缩略图。

  9. 要开始对捕获进行分析,请单击突出显示的文本或菜单栏上的小播放图标。

  10. 选择“管道”选项卡,然后使用the__ Events__窗口导航到感兴趣的绘制调用。

  11. “管道”选项卡的下半部分,从 OM(输出合并)列表中选择一个渲染目标,以查看绘制调用的输出。选择一个像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
    请参阅术语表
    在要调试的对象上。请注意,您可以右键单击像素以查看绘制调用历史记录,以此来查找您感兴趣的绘制调用。

  12. 像素细节(Pixel Details) 面板上选择 调试像素(Debug Pixel) 。

  13. 在调试面板上,使用 着色器选项(Shader Options) 选择要调试的着色器阶段。

  14. 使用工具栏Unity 编辑器顶部的一排按钮和基本控件,允许您以各种方式(例如缩放、翻译)与编辑器进行交互。更多信息
    请参阅术语表
    或键盘快捷键以单步执行代码。

有关使用 PIX 调试着色器的详细信息,请参阅 Microsoft 的 Windows 上的 PIX 视频系列,特别是第 5 部分 - 调试选项卡

有关 PIX 中的 GPU 捕获的详细信息,请参阅 Microsoft 关于 GPU 捕获的文档。

  • 2018–09–17 页面已发布
使用 Visual Studio 调试着色器
着色器语言参考