• 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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804