• Intel® Graphics Performance Analyzers 2020 R1
  • 12/20/2019
  • Public Content
Contents

Graphics Frame Analyzer 窗格 : Visualization

Visualization
窗格以图形格式显示捕获的事件的顺序和持续时间。您可以通过使用可视化设置 工具栏调整显示事件的方式。
erg 图和渲染目标图
Graphics Frame Analyzer 支持以下的柱状图视图 :
  • Erg Graph
    - 显示与每个尔格相关的指标
  • Render Targets Graph
    - 显示与各组尔格相关的指标,按渲染目标分组。
在传统的渲染架构上 , 您可以在两个视图之间切换。
在瓦片纹理渲染架构 , 仅
Render Targets
Graph
是可用的。这是因为以批量处理 而每尔格指标对瓦片纹理渲染没有意义。
Render Targets  
Render Targets
Graph
上的每个直条都与向一个渲染目标对应的一组连续的尔格相关联。直条之间的界限在应用程序切管渲染目标时定义。
Render Targets
Graph
上的直条有三种颜色:
  • 蓝色条 - 代表没有选定尔格的渲染目标
  • 黄色条 - 代表选定所有尔格的渲染目标
  • 深黄色条 - 表示选中至少一个渲染目标, 但不是所有尔格
要选择渲染目标 ( 和它们包含的所有尔格),在直条上使用
Ctrl+Click
组合键和
Shift+Click
组合键。选中的渲染目标由蓝色区域表示 :
Ergs
Erg 是可能将像素渲染到帧缓冲区的帧中的任一个项目, 如 Draw 调用或 Clear 调用。一旦您加载了捕获文件,erg 便作为垂直条可视化 , 它可以是以下类型之一 :
  • Draw Call (深蓝色)
  • Clear (紫色 )
  • 表面复制 (红色 )
  • 派单调用 /DirectCompute ergs ( 橙色 ), 如下图所示 :
Erg 从左边起按时间顺序显示。如果选中了GPU Breakdown 指标,每个尔格条包含以下部分 :
  • 深蓝色 / 紫色 / 红色部分代表尔格类型
  • 白色部分代表顶点着色器时间
  • 深灰色部分表示 Geometry Shader 时间
  • 黑色部分表示像素着色器的时间
默认情况下 ,erg 条的高度表示尔格在 GPU 上执行的持续时间。
要获得关于尔格和 GPU 持续时间的信息, 将光标放在所需的尔格上, 如下图所示。GPU 时间以微秒为单位进行测量。
erg 分为区域:写入到同一渲染目标的尔格出现在同一区域。这匹配
Scene Overview
窗格
提供的信息。
分析一个包含多个 D3D 设备的游戏时,Graphics Frame Analyzer 只显示在您的捕获文件中与 DirectX* 调用流中第一个遇到的设备相关联的尔格。但是 , 当运行实验时 , Graphics Frame Analyzer仍然呈现所有 D3D 设备的所有尔格。由于 Graphics Frame Analyzer 总基于每个区域的总渲染时间,如果交织区域内的所有 D3D 设备调用,则针对每个区域的总渲染时间是准确的。然而 , Intel GPA 可能当您渲染到由第一个设备定义的区域以外的其它设备,则无法捕获所有的渲染时间。

红色条

当 Graphics Frame Analyzer 渲染一个帧时 , 它会在选定的尔格上执行多个渲染,并显示每个尔格渲染时间的最小和最大值。
与每个尔格相关联的红色条提供代表三个方面的可视表示 :
  • 变化 - 由红色条高度表示
  • 最小值 - 由红色方差线的底行表示
  • 最大值 - 由红色的方差线的顶行表示
区域
一个帧被细分为以浅灰色显示的区域,并有细的白色线条分隔。
区域由图表的背景阴影定义。 
 
区域在以下情况中生成:
  • 使用新的渲染目标时 ; 此类区域在图形应用程序绘制新的东西时定义。
  • D3DPERF_BeginEvent
    () 和
    D3DPERF_EndEvent
    () API 调用定义的场景的新部分被创建。这隔离特定部分的工作。例如 , 如果
    D3DPERF_*Event
    () API 调用定义了“绘制汽车”部分 , 用在汽车工程图场景中的不同部分的工作便能很容易分组和分析。 由于这些
    D3DPERF_*Event
    调用可以嵌套 , 区域也可以嵌套。区域的颜色与嵌套的级别相对应,并以浅灰色、中灰色和暗灰色循环 :  
    • 级别 0= 浅灰色
    • 级别 1= 中灰色
    • 级别 2= 暗灰色
    • 级别 4= 浅灰色
    • 级别 5= 中灰色
    • 级别 6 和更高 = 暗灰色 , 浅灰色 , 中灰色 ,...... 
    以下代码显示了嵌套
    D3DPERF_*Event
    () 调用的示例:
    <dx_call(s)>
    D3DPERF_BeginEvent(<颜色>, L”绘制汽车");
    <dx_call(s)>
    D3DPERF_BeginEvent(<颜色>, L”绘制车体");
    <dx_call(s)>
    D3DPERF_EndEvent(); // 结束车体绘制
    <dx_call(s)>
    D3DPERF_BeginEvent(<颜色>, L”绘制车轮");
    <dx_call(s)>
    D3DPERF_EndEvent(); // 结束车轮绘制
    <dx_call(s)>
    D3DPERF_EndEvent(); // 结束汽车绘制
    <dx_call(s)>

标记

柱形图上 ,尔格之间的垂直橙色行用作标记。  
标记是一个事件 , 您可以包括标记以此表示事情发生 , 如“完成绘图树”。因为标记不是图形硬件处理的东西,所以标记没有与其关联的指标。
Graphics Frame Analyzer 支持以下事件和标记 :
  • int D3DPERF_BeginEvent(D3DCOLOR col, LPCWSTR wszName)
  • int D3DPERF_EndEvent()
  • void D3DPERF_SetMarker(D3DCOLOR col, LPCWSTR wszName)
有关这些应用编程接口 (API) 的更多信息 , 请参阅 Microsoft* DirectX* SDK 文档。
有关如何在 Graphics Frame Analyzer 中查看这些 API 的信息 , 请参阅 Visualization窗格
要设置标记 , 在 Microsoft* DirectX* 代码中使用
D3DPERF_SetMarker()
API 。下面的代码显示一个示例:
<dx_call(s)>
D3DPERF_SetMarker(<color>, L “我的标记");
<dx_call(s)>
如果尔格数超过了 GUI 的当前宽度 , 屏幕将显示一个水平的滚动条。 

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.