User Guide

  • 2020.4
  • 12/10/2020
  • Public Content

System Analysis for Desktop API Graphics Applications

A top-down approach to analysis and optimization suggests that first you have to determine whether your performance issues are with the CPU or the GPU. Understanding your performance issues at this highest level is extremely important. Otherwise, you could spend a lot of time optimizing parts of your game that end up being secondary to much larger performance issues.
A good rule is to have a balance between the utilization of the CPU and the GPU resources – do not have the CPU running at 100% while the GPU is only 20% utilized, and vice versa.
To find out whether your application is CPU-bound or GPU-bound, you can use System Analyzer HUD or System Analyzer running in a host/target mode.
System Analyzer vs System Analyzer Heads-up Display (HUD)
System Analyzer HUD works in the background while your game is running and displays its results as an overlay on your game, quickly allowing you to see the performance overview of your game and experiment with your game using keyboard shortcuts.
In general, System Analyzer offers the following advantages over the System Analyzer HUD:
  • Uses host/target (network) mode, enabling you to monitor performance on a remote system. This reduces performance impact on the application. You are recommended to use System Analyzer in the network mode to analyze graphics applications on Ultrabook™ devices, tablets, netbooks, or other devices with limited resources.
  • Provides more detailed metrics resolution and the possibility to view more than four metrics at the same time, while also providing counter set selection and multiple other options. Using System Analyzer, you can compare an unlimited number of metrics with same measurement units by displaying them in the same chart, easily switch between metrics, and resize metrics charts for better analysis.
If you connect the System Analyzer to the application with the System Analyzer HUD enabled, the HUD is switched to the lightweight mode that only shows FPS rate.
Some games and applications trap all keystrokes, so keyboard shortcuts within the Intel® GPA do not work. In this case, to create frame/trace capture files you can:
  • Use
    Capture Frame
    Capture Trace
    buttons of the System Analyzer.
System Analysis Workflow
To understand whether your application is CPU-bound or GPU-bound, follow this typical workflow:
Double-click the Graphics Monitor icon in the taskbar notification area, and then select the application to run in the 
Graphics Monitor Launcher
screen. This runs your game with the System Analyzer HUD, quickly allowing you to analyze the performance data, experiment with override modes, and capture frame and trace files.
Launch the System Analyzer and connect it to the running application to analyze the performance and capture frame/trace files. You can choose between local and network usage modes.
By default, the System Analyzer starts in System View mode, which displays general system metrics. Once you launch your application form the Graphics Monitor, you can click the
Connect System Analyzer
 button to open System Analyzer and attach it to your application.
It is recommended that you use System Analyzer in the network mode to analyze graphics applications on Ultrabook™ devices, tablets, netbooks, or other devices with limited resources.
Intel® GPA supports a wide variety of metrics. The metrics available for display might differ depending on your specific graphics device.
Perform "what if" experiments (also known as overrides) to help identify various bottlenecks without changing the source code
Override modes operate behind the scenes within the graphics driver to modify one or more of the render states of the graphics pipeline to show the effect of that phase on the rendering process, without requiring any code changes in your game.
If using a certain override mode improves performance significantly, then that overridden mode might be a performance bottleneck, and warrants further analysis.
Next Steps
If all went well, you met your performance and playability goals by using the System Analyzer HUD/System Analyzer to identify and resolve issues with your game.
If you still have not met your overall objectives, you can try the following:
  • If you suspect that your game is GPU-bound, capture frame files and use the Graphics Frame Analyzer to perform a deeper analysis into exactly what is happening within a specific frame – see where in the rendering pipeline your game is spending its time, down to the render target or draw call level of detail. Check Frame Analysis for Desktop API Graphics Applications.
  • If you suspect that there are issues in balancing your workloads across the CPU and GPU, capture and analyze trace files to get a task-based overview of your game across both the CPU and GPU domains.
  • If you know that your game is CPU-bound, you might try using some CPU-specific tools to help improve your performance on the CPU, such as Intel® VTune™ Profiler. In particular, with multiple cores now being the rule rather than the exception, parallelizing your code can have a big impact on overall CPU performance.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at