使用英特尔® INDE 图形性能分析器 (GPA) 分析和优化 Windows* 游戏应用

发表于2015-12-19
评论1 6.5k浏览

英特尔® INDE 图形性能分析器 (GPA) 是非常强大、灵活的工具,可帮助游戏开发人员充分利用游戏平台的潜在性能。GPA 能够可视化您应用的性能数据,帮助您了解系统级和单帧性能问题,以及实施“假设”实验,以估计优化能够带来的潜在性能提升。GPA 工具可作为英特尔® INDE 工具套件的一部分提供,或在此处单独提供。

本文描述了 GPA 工具,介绍了一个面向 Windows* 的游戏应用示例,列出了单帧性能问题,并且说明了可使用面向 DirectX* 的图形帧分析器进行优化。

图形显示器 (Graphics Monitor)

图形显示器可用于查看、用图表表示以及配置游戏内指标。 您还可使用它实施轨迹和帧捕获,以及实时进行图形管线覆盖和实验。

本文使用的游戏应用示例 (CitiRacer.exe) 是安装的一部分,用作整篇文章的示例。

下载和安装 GPA(请查看上述链接)后,单击下面显示的“分析应用” (Analyze Application),打开“分析应用” (Analyze Application) 窗口。


1. 图形显示器


2 “分析应用” (Analyze Application) 窗口可用于启动游戏

单击“运行” (Run) 按钮,开始分析该应用。该应用会自动加载和显示 FPS(每秒帧数),如下所示。按三次 CTRL + F1,查看下面显示的屏幕截图(包含不同的设置和指标)。


3. 游戏运行时,所有指标都会显示

现在,我们将对一个特定的帧进行轨迹捕获,并使用面向 DirectX 的图形帧分析器工具(随英特尔 GPA 工具包安装)对其进行分析。您可以通过按下 CTRL + SHIFT + C 或使用下面描述的系统分析器工具进行轨迹捕获。

系统分析器

系统分析器可针对您的游戏提供系统级指标,包括 CPU、GPU、API 和显卡驱动程序。具体的可用指标取决于您的平台,但是您能找到许多有用指标,它们可帮助量化应用所用系统资源的关键特征。在系统分析器中,您还可实施各种“假设”实验,在游戏性能瓶颈集中出现的高等级状态下进行诊断。

如果系统分析器发现您的游戏占用大量 CPU,可使用平台分析器对您的应用进行进一步微调。

如果系统分析器发现您的游戏占用大量 GPU,可使用面向 DirectX*/OpenGL* 的图形帧分析器深入分析单个图形帧,以找出特定的渲染问题,如纹理带宽、像素着色器性能、细节级别问题或渲染管线中的其他瓶颈。

打开作为英特尔 INDE 一部分安装的系统分析器。


4. 使用系统分析器进行连接

如果您正在分析的应用正运行在安装有英特尔 INDE 的机器上,单击“连接” (Connect);或者,如果应用正运行在远程机器上,请输入该机器的 IP 地址并单击“连接” (Connect)。

您将看到该应用出现在系统分析器中,如下所示。


5. 单击该应用以打开系统分析器

在下一个屏幕打开后,您可以拖放感兴趣的指标。在本示例中,我们监控了 CPU 总负载、GPU 持续时间、GPU 利用率和 GPU 频率指标。按下 CTRL 键,同时拖动多个指标。单击“摄像头” (Camera) 按钮,捕获占用 GPU 较多、FPS 较低的帧。捕获之后,我们将使用面向 DirectX 的图形帧分析器对其进行分析。


6. 使用系统分析器捕获帧

使用面向 DirectX* 的英特尔® INDE 图形帧分析器分析帧。

打开图形分析器后,捕获的帧将被自动加载。选择您捕获的、想要分析的最新帧,单击“打开” (Open)。


7. 使用面向 DirectX* 的图形帧分析器打开捕获的帧

现在,让我们开始分析捕获的这一特定帧。


8. 使用面向 DirectX* 的图形帧分析器打开的捕获帧

在左侧,RT0、RT1、RT2、RT3 是该帧期间生成的渲染目标。不同游戏可具有不同数量用于构建整幅帧的渲染目标,该帧具有四个渲染目标。

下图所示为该帧期间的绘制调用。它们被称为“erg” —— 一种科学计量单位。


9. X 和 Y 轴表示 GPU 持续时间的 erg 图形视图

您可以过滤显示的指标。X 和 Y 轴默认表示 GPU 持续时间。您可以修改 X 和 Y 轴指标(下拉菜单)。图示概述了每个 erg 在 GPU 上花费的时间,并展示了相关读数,可帮助我们了解可能需要优化的 erg。

右击 RT1 并选择“选择渲染目标中的 erg” (Select ergs in this render target) —— 突出显示了用于生成该渲染目标的所有 erg。您可以分析有关生成该渲染目标所需时间的指标。下图所示为渲染目标示例。


10. 选择渲染目标中所有的 erg

让我们进一步了解该渲染目标。单击 GPU 持续时间最长的 erg,查看该 erg 的详情。如果单击“几何形状” (Geometry) 选项卡,您会看到如下图所示的几何形状渲染效果。如果单击“着色器” (Shaders) 选项卡,则会显示该 erg 的顶点和片段着色器。


11. 为所选 erg 渲染的几何形状

让我们探索屏幕底部的选项卡。“已选择” (Selected) 表示您已选择的 erg。选择“突出显示” (Highlighted) 会显示突出显示的 erg,它对应着我们在右侧看到的几何图形。

“其他” (Other) 表示渲染目标中的所有其他 erg。选择“隐藏” (Hidden) 不会显示任何 erg。“仅绘制到最后所选” (Draw only to last selected) 仅会绘制我们已选的该渲染目标 erg。如果取消选择该项,那么该渲染目标的所有 erg 都会显示。


12. 如何突出显示已选的 erg


13. 突出显示的 erg 显示为蓝色

如果单击“纹理” (Texture) 选项卡,您会看到哪些纹理与该 erg 相关。所有纹理可能未用在相同 erg 中,而被上一 erg 使用。但总体而言,“纹理” (Texture) 选项卡显示了哪些纹理被使用以及它们的大小。这种方式可有效查找占用较长 GPU 持续时间的未压缩图像,以便我们可返回压缩特定纹理。


14. 与该 erg 相关的纹理

实验

现在让我们谈谈“实验” (Experiments) 选项卡。它可帮助您覆盖 GPU 实施的操作,查看最终结果。在本示例中,整幅帧的运行时间为 27 毫秒(速度为 37 FPS),如右上角方框所示(即箭头所指)。通过单击该方框,您可以在 FPS 和 GPU 持续时间之间进行切换。


15. 单击右上角的切换按钮,在 GPU 持续时间和 FPS 读数之间切换

现在,如果单击“帧概述” (Frame Overview) 选项卡,您会看到整幅帧的统计数据。“详情” (Details) 选项卡仅提供您已选 erg 的统计数据。在本示例的“帧概述” (Frame Overview) 选项卡中,您可以看到可试验的不同指标,如下图所示。


16. 提供整幅帧统计数据的“帧概述” (Frame Overview) 选项卡

让我们单击“实验” (Experiments) 选项卡,尝试完全禁用该 erg,确保它甚至不能进行渲染。


17. “实验” (Experiments) 选项卡: 禁用 erg 之前


18. “实验” (Experiments) 选项卡: 禁用 erg 之后

在“帧概述” (Frame Overview) 中,您会看到 GPU 持续时间、执行单元等方面的差异。通过观察总体性能,我们可以看到新旧值之间的显著差异。在下面的示例中,GPU 持续时间的 delta 值为 -8 毫秒,GPU 持续时间的新值约为 18 毫秒,且 GPU 持续时间的比例下降约为 35%。


19. 禁用已选 erg 之后的“帧概述” (Frame Overview) 和 GPU 持续时间差异

任何发生严重错误的 erg 标记为红色。大部分 erg 都是绘制调用。如果您选择 erg 时没有突出显示的内容,表明调用比较明确。有时,调用无需明确。如果渲染目标中的所有内容在没有明确调用的情况下进行了渲染,那么您可以尝试删除它,然后观察 GPU 持续时间是否有所改善。

“API 日志” (API Log) 选项卡显示了用于您已选 erg 的绘制调用,或用于 erg 为明确调用情况的绘制调用。

您还可按照图元数进行过滤,观察正在渲染的图元和三角形的数量。您可以将 X 轴设置为 GPU 持续时间,将 Y 轴设置为图元数,如下图所示。然后,您可以访问“几何形状” (Geometry) 选项卡,查看具有较多图元的 erg。


20. 选择 Y 轴上的图元数


21. 已选渲染目标的图元数

您还可按渲染目标进行分类,查看每个渲染目标所花费的时间。有必要查看硬件正在执行什么操作,禁用和改变一些功能,通过查看“帧概述” (Frame Overview) 和性能增量以确定性能是提高还是下降。

关于作者

Praveen Kundurthy 任职于英特尔公司的软件和服务事业部。他拥有计算机工程硕士学位。他主要专注于移动技术、Windows 和游戏开发领域。

声明

本文档不代表英特尔公司或其它机构向任何人明确或隐含地授予任何知识产权。

英特尔明确拒绝所有明确或隐含的担保,包括但不限于对于适销性、特定用途适用性和不侵犯任何权利的隐含担保,以及任何对于履约习惯、交易习惯或贸易惯例的担保。

本文包含尚处于开发阶段的产品、服务和/或流程的信息。此处提供的所有信息可随时更改,恕不另行通知。联系您的英特尔代表,了解最新的预测、时间表、规格和路线图。

本文所述的产品和服务可能包含与宣称的规格不符的缺陷或失误。英特尔提供最新的勘误表备索。

如欲获取本文提及的带订购编号的文档副本,可致电 1-800-548-4725,或访问www.intel.com/design/literature.htm.

英特尔和 Intel 标识是英特尔在美国和/或其他国家的商标。

*其他的名称和品牌可能是其他所有者的资产。

英特尔公司 © 2015 年版权所有。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引