Analyzing OpenGL* games with Intel® GPA

Intel® GPA is a great tool for real-time and offline game analysis. It supports DirectX* on Windows* and OpenGL* ES on Android* today, so there's no direct support for OpenGL. What can you do if your game uses OpenGL? There is hope. We'll look at what you can learn with Intel GPA today.

Normally when you connect Intel GPA System Analyzer you can either launch your game (Android) or see your running game listed (Windows). With an OpenGL game on Windows, nothing shows up.

System Analyzer showing no connected game

System Analyzer with no visible game

Although you can't connect to the running game if it's using OpenGL, there is still System View. When you pick that, you'll see a set of metrics that you can watch in realtime. You'll also see that you cannot take a trace capture or frame capture (the record and camera icons are disabled).

If you're familiar with System Analyzer, you may notice that some of the typical metrics aren't available when your OpenGL game is running. That's because they're either collected from DirectX directly (e.g. Frame Rate) or they represent constructs used by DirectX that don't map directly into OpenGL (e.g. PS duration).

Some of the available metrics won't show anything for OpenGL games because they're specific to media workloads, so you can ignore those. You can pick some of the basic metrics to see how the system is running. Here, we're watching a few of the basic CPU and GPU metrics.

System View with an OpenGL game running

System View shows some available metrics for an OpenGL game

In this case, we can see that the CPU is not too busy overall, with an average load of ~12%. Remember that you can't see CPU load from just the game, so as usual during game benchmarking, make sure the system is otherwise idle. We show the GPU EUs active/idle/stalled metrics together, which shows that the GPU is mostly idle during this part of gameplay.

Available metrics for an OpenGL game

Several interesting metrics

If you're looking at interesting data and want to capture the real-time data as you watch, press the "CSV" button at the top, to collect all the metrics you're currently watching. Press again when you're done, usually 15 or 30 seconds gives a good collection of data.

It's not a complete solution, but hopefully these tips will help you learn more about how your OpenGL game is running.

For more complete information about compiler optimizations, see our Optimization Notice.