Intel® Graphics Performance Analyzers Framework (Intel® GPA Framework)

Intel® GPA Framework is a cross-platform, cross-API suite of tools and interfaces, which allows users to capture, playback and analyze graphics applications. The heart of the Intel® GPA Framework is a robust, scalable and low overhead layering framework similar to the Vulkan* layer framework.

  • Getting Started

    New to Intel® GPA Framework? Start here!

  • Guides

    Guides and tutorials to use beyond the Getting Started Guide.

  • Samples

    Explore the samples page to find a sample that applies to your use case.

  • Reference

    C++ and Python interface references, utility binaries and layers documentation.

  • Features

    Feature set supported in Intel® GPA Framework by various graphics APIs.

  • System Requirements

    Hardware and software requirements for Intel® GPA Framework.

  • Release Notes

    Check out what's new in Intel® GPA Framework.

  • Troubleshooting

    Known issues and limitations.

In a nutshell, an Intel® GPA Framework user can:

Capture a stream of a running application:

> gpa-injector --layer capture [PATH_TO_EXECUTABLE]

Playback the stream to recreate the application graphics execution:

> gpa-player Documents/GPA/[PATH_TO_STREAM]

Analyze the stream using programmatic interfaces. For example:

  • Play back a stream up to a given frame

  • Get a list of API calls

  • Get metrics

  • Produce a performance regression report

Why should I use Intel® GPA Framework?

Intel® GPA Framework is a powerful tool that caters to various use cases. This section describes example use cases.

Test/Validation Engineer

Unlike crash no/crash validation, performance regressions are difficult to characterize and spot at a granular level. Test/validation engineers can integrate Intel® GPA Framework into Continuous Integration automated frameworks with native C++ applications or with python interfaces to capture a known workload and analyze a given frame. Intel® GPA Framework reports performance improvements, regressions and frame budget analysis at a per draw call or debug region level.

Game Engine Developer

Intel® GPA Framework allows game engine developers to integrate performance profiling capabilities into an engine.

Game Developer

Game developers can use Intel® GPA Framework to automate performance optimization experiments into scripts to quickly identify common bottlenecks. Multi-frame streams can help spotting performance issues, which are hard to characterize with single-frame capture, such as overall frame time variance, intermittent glitches, frame drops.

Contents

  • Binary tools to capture and playback graphics streams to/from disk

  • C++ and Python interfaces. Collection of headers and libraries for programmatical analysis of a stream

  • Sample code showing how to leverage the programmatic interfaces to gather data

  • Customizable layering/shimming framework to enable real-time and replay data collection

Features

Vulkan*

DirectX 11*

DirectX 12*

Capture and playback

Basic Capture and Playback

Keyframing Capture

Range Repeat

Stream Analysis

Metric Collection

Experiments

Metadata Extraction

Resource Extraction

API Call Inspection

Layers

Custom (User) Layers

Heads-Up Display(HUD) Layer

Screenshot Layer

Logging Layer

How to Use This Guide

Check out the Getting Started guide to learn how to use the built-in capture and playback functionality.

To learn more about the layers that are packaged with the Intel® GPA Framework visit the Layers page.

Explore the Utilities page to find a deeper explanation of all the parameters that can be passed to the capture and playback applications.

Find the right workflow for your needs by navigating straight to the Next Steps section within the Getting Started guide. Explore the Intel® GPA Framework components in the Reference section. To find a sample that applies to your use case, explore the Samples page.