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

创建 Graphics Frame Analyzer 的定制插件

您可以将自己的插件集成至 Graphics Frame Analyzer 插件界面。
创建 Graphics Frame Analyzer 的插件的建议流程如下:
  1. 编写一个 __init__.py 脚本,包含  方法。
  2. 如果需要,编写额外脚本。
  3. 将插件文件夹复制到 %USERPROFILE%\Documents\GPA\python_plugins。
备注
插件需要一个独立文件夹,因为每个插件被视为一个独立的 Python 模块。
文件夹名称必须兼容 PEP-8,可用于在 Graphics Frame Analyzer 中的
Type Filter Expression
字段中调用插件。
desc() 方法
此方法用来获取插件的以下元信息。
  • name
    (可选)
    :Graphics Frame Analyzer 插件界面中显示的插件名称。如果未定义名称,可使用目录名称。
  • description
    (可选)
    :插件描述。
  • apis
    (可选)
    :支持的 API。
提供以下值:
  • DirectX
  • DirectX 11
  • DirectX 12
  • OpenGL
  • Vulkan
备注
如果未定义任何值,则表示提供的所有值均适用。
 
  • plugin_api_version
    (必选)
    :插件 API 版本。可用值为
    1.0
    1.1
  • applicabilities
    (可选)
    :使用此插件的 Graphics Frame Analyzer 窗格。
提供以下值:
  • Apilog
  • Resources
备注
如果未定义任何值,则表示提供的所有值均适用。
 
desc() 方法示例:
def desc(): return { "name" : "My sample plugin", "description" : "Sample plugin is written for educational purpose", "apis" : ["DirectX"], "plugin_api_version" : "1.1", "applicabilities" : ["Apilog"] }
run() 方法
此方法返回符合所定义条件的项。此方法使用 Graphics Frame Analyzer 自带的 utils.common 模块中的
node_to_result()
方法或
resource_to_result()
方法。
run() 方法示例:
def run(): api_log = plugin_api.get_api_log_accessor() calls = [x for x in api_log.get_full() if x.get_description()['name'] == 'ClearRenderTargetView'] return [common.node_to_result(x, 'info', 'This is a clear call!') for x in calls]
备注
如果未定义调用,则会标记检测到的调用,但不显示消息。
您可用使用下述标记类型:
  • 通知
  • 警告
  • 错误
run() 方法支持从 Graphics Frame Analyzer 传入的参数。每个参数可依照 PEP-3107 利用函数装饰器进行装饰。Graphics Frame Analyzer 中显示参数描述。
def run(name: "Draw call name" = 'ClearRenderTargetView'): api_log = plugin_api.get_api_log_accessor() calls = [x for x in api_log.get_full() if x.get_description()['name'] == name] return [common.node_to_result(x, 'info') for x in calls]
plugin_api
为存取定制插件 API 的不同方法,可将 plugin_api 导入已创建的插件,然后获取所需数据的存取函数。
plugin_api 位于 <GPA installation directory>/python_plugins/plugin_api。
可用的存取函数如下:
  • get_api_log_accessor()
    - 处理 API 日志:获取调用、参数、绑定等。
  • get_resources_accessor()
    - 处理资源:获取资源描述、视图、着色器等。
  • get_metrics_accessor()
    - 处理度量:获取度量值、度量描述等。
存取函数示例:
import plugin_api def run(): metrics_accessor = plugin_api.get_metrics_accessor() descs = metrics_accessor.get_metrics_descriptions() # some code
利用 Graphics Frame Analyzer 插件界面进行分析

Product and Performance Information

1

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