Intel® Graphics Performance Analyzers User Guide

ID 767266
Date 9/28/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Graphics API Metrics

This section describes all Graphics API metrics accessible from the Intel® GPA.

Main Metrics

Metric Name

Description

Draw Calls

Represents the number of draw calls issued from your application per frame. When the Draw Calls metric is high, see if you can optimize your application's geometry to improve vertex batching into fewer draw calls.

(Windows* only) Represents the number of draws submitted to the D3D Runtime.

Frames per Second

Represents the instantaneous frame rate normalized to seconds (inverted frame time).

Frame Number

Represents the number of the current CPU frame.

Frame Time

Represents the instantaneous frame time in microseconds.

DirectX* Metrics

Metric Name

Description

RT Changes

Represents the number of calls per frame:

  • Microsoft DirectX 9: The aggregated number of IDirect3DDevice9::SetRenderTarget calls per frame.
  • Microsoft DirectX 9Ex: The aggregated number of IDirect3DDevice9Ex::SetRenderTarget calls per frame.

Shader Creations

Represents the number of calls per frame:

  • Microsoft DirectX 9: The aggregated number of IDirect3DDevice9::CreateVertexShader/CreatePixelShader calls per frame.
  • Microsoft DirectX 9Ex : The aggregated number of IDirect3DDevice9Ex::CreateVertexShader/CreatePixelShader calls per frame.
  • Microsoft DirectX 10: The aggregated number of ID3D10Device::CreateVertexShader/CreateGeometryShader/ CreateGeometryShaderWithStreamOutput/CreatePixelShader calls per frame.
  • Microsoft DirectX 11: The aggregated number of ID3D11Device::CreateVertexShader/CreateGeometryShader/ CreateGeometryShaderWithStreamOutput/CreatePixelShader/CreateHullShader/CreateDomainShader calls per frame.

State Block Applies

Represents the number of IDirect3DStateBlock9::Apply calls per frame.

State Block Captures

Represents the number of IDirect3DStateBlock9::Capture calls per frame.

State Changes

Represents the number of state changes set to the D3D Runtime.

OpenGL* Metrics

Metric Name

Description

Buffer Creations

Represents the number of OpenGL ES buffers that are allocated from your application per frame.

Improving Performance:

When the Buffer Creations metric is high, see if you can change your application to allocate required buffers once at application startup.

Indexed Draw Calls

Represents the number of indexed draw calls being issued from your application per frame.

Improving Performance:

  • When the Indexed Draw Calls metric is high, see if you can optimize your application's geometry to better batch vertices into fewer draw calls, specifically those that use glDrawElements or its modifications.
  • When the Indexed Draw Calls metric is significantly lower than the Draw Calls metric see if you can optimize your application to use indexed geometry passed to the glDrawElements API or its modifications, rather than glDrawArrays and its modifications. Additionally, check the Vertex Count and Indexed Vertex Count metrics to see how much data is being drawn without indexing to estimate the impact of such optimization.

Vertex Count

Represents the number of vertices passed by your application to OpenGL draw calls per frame. This totals the counts passed to the draw calls.

Improving Performance:

  • When the Vertex Count metric is higher than expected and fragment processing is not the bottleneck, check whether you can improve culling, or whether you can use LOD or other techniques to reduce geometric complexity.
  • When the Vertex Count metric is low, try to increase geometric complexity as an alternative to expensive operations such as Alpha Test that might slow down the pipeline.

Indexed Vertex Count

Represents the number of indexed vertices passed by your application to indexed draw calls per frame.

Improving Performance:

When the Indexed Vertex Count metric is significantly lower than the Vertex Count metric, see if you can optimize your application to use indexed geometry passed to the glDrawElements API or its modifications, rather than glDrawArrays and its modifications.

RT Clears

Represents the number of Render Target clears per frame.