• 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

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