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

桌面 API:优化着色器

要确定着色器是否导致选定 draw call 的性能瓶颈,可在 Graphics Frame Analyzer 内部更改着色器代码,无需重新编译代码即可检查性能影响。
要试验着色器代码:
  1. 选择一个或多个想对其分析着色器代码的 draw calls。
  2. Resource List 中选择选定的 draw call 中使用的着色器。
    Graphics Frame Analyzer
    显示着色器源代码以及该着色器使用的所有资源。
  3. Shader Resource List
    中,分析按类型分组的着色器中使用的资源:
    • 常量缓冲区视图 (CBV)(仅 DirectX)
    • 渲染目标视图 (RTV)
    • 采样器
    • 着色器资源视图 (SRV)(仅 DirectX)
    • 存储缓冲区对象 (SBO)(仅 Vulkan)
    • 存储纹理(仅 Vulkan)
    • 纹理(仅 Vulkan)
    • 统一缓冲区对象 (UBO)(仅 Vulkan)
    • 无序访问视图 (UAV)(仅 DirectX)
    • Vertext 缓冲区视图 (VBV)(仅 Vulkan)
    Graphics Frame Analyzer 显示各种资源参数,使用该资源的着色器类型,以及每种资源绑定到的着色器寄存器。资源以如下格式列出:
    <shader name>:<register ID>        <resource type>:<resource ID> (<view type><view ID>) <resource debug name>
    要打开资源,点击相应的资源名称。
  4. Shader Type
    下拉列表中,从 下拉菜单中选择希望分析的着色器类型。着色器代码在
    Shader Editor
    中打开。为了更加方便阅读,可点击
    按钮缩排代码,点击
    按钮预处理选定的着色器,隐藏不执行的代码路径。
  5. 汇编代码为只读时,如果这些代码适用于您的着色器,则可以针对 DirectX* 试用 HLSL 代码,针对 Vulkan* 试用 HLSL 和 GLSL 代码。在此情况下,从 下拉菜单中选择 HLSL 或 GLSL,直接在
    Shader Viewer
    中编辑代码。着色器动态重新编译。如果出错,可在
    Shader Editor
    下面的
    Notification
    窗格中看到相应的消息。
  6. 如果代码看起来不错,点击
    按钮保存更改。 Graphics Frame Analyzer 会重新计算所有指标,在
    Main
    条形图中的
    Metrics
    窗格中显示新数据。
    提示
    点击
    按钮时,Graphics Frame Analyzer 会保存所有着色器。这将允许编写自己的代码并替换整个着色器来进行实验。
  7. 如果要撤消编辑,请点击
    按钮。要恢复原来的着色器。

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