• Intel® Graphics Performance Analyzers 2020 R1
  • 03/31/2020
  • Public Content
Contents

Graphics API Metrics

This section describes all Graphics API metrics accessible from the Intel® GPA.
Metric Name
Description
Main Metrics
Draw Calls
Represents the number of draws submitted to the D3D Runtime.
NOTE
This metric is not affected by the Disable Draw Calls override, which disables the draw calls before they are submitted to the driver, but after they are 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
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.
Texture Creations
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::CreateTexture/CreateCubeTexture/CreateVolumeTexture calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::CreateTexture/CreateCubeTexture/CreateVolumeTexture calls per frame.
  • Microsoft DirectX* 10
    : The aggregated number of ID3D10Device::CreateTexture1D/2D/3D calls per frame.
  • Microsoft DirectX* 11
    : The aggregated number of ID3D11Device::CreateTexture1D/2D/3D calls per frame.
Buffer Creations
Represents the following:
  • Microsoft DirectX* 10
    : The number of ID3D10Device::CreateBuffer calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11Device::CreateBuffer calls per frame.
Buffer Maps
Represents the following:
  • Microsoft DirectX* 10
    : The number of ID3D10Buffer::Map calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::Map calls that receive ID3D11Buffer as a resource parameter per frame.
Clears
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::Clear calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::Clear calls per frame.
Color Fills
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::ColorFill calls per frame.
  • Microsoft DirectX* 9Ex
    :
     The aggregated number of
    IDirect3DDevice9Ex::ColorFill calls per frame.
IB Creations
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::CreateIndexBuffer calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::CreateIndexBuffer calls per frame.
IB Lock Time
Represents the amount of time in microseconds spent in IB locks. This is the amount of time actually inside the lock routines only.
IB Locks
Represents the number of index buffer (IB) locks called.
Locks
Represents the number of vertex buffer, index buffer, surface, and volume locks called per frame.
Lock Time
Represents the total amount of time in microseconds spent in vertex buffer, index buffer, surface, and volume locks. This is the amount of time actually inside the lock routines only.
Maps
Represents the number of texture and buffer maps.
Resource Copies
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Device::CopyResource calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::CopyResource calls per frame.
Resource Creations
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9 CreateXXX calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex CreateXXX calls per frame.
  • Microsoft DirectX* 10
    : The aggregated number of ID3D10Device::CreateXXX calls per frame.
  • Microsoft DirectX* 11
    : The aggregated number of ID3D11Device::CreateXXX calls per frame.
CreateXXX means all Create calls; that is, the aggregation for DX Create Texture per Frame, DX Create Shader per Frame, DX Create Surface per Frame, etc.
RT Clears
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10RenderTargetView::Clear calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::ClearRenderT calls per frame.
RT Data Gets
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::GetRenderTargetData calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::GetRenderTargetData calls per frame.
Stretch Rects
Represents the number of calls per frame.
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::StretchRect calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::StretchRect calls per frame.
Surface Creations
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::CreateOffscreenPlainSurface/CreateDepthStencilSurface/CreateRenderTarget calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::CreateOffscreenPlainSurface/CreateDepthStencilSurface/CreateRenderTarget calls per frame.
Surface Lock Time
Represents the total amount of time in microseconds spent in DX surface locks per frame.
Surface Locks
Represents the number of DirectX* surface resource locks per frame.
Surface Updates
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::UpdateSurface calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::UpdateSurface calls per frame.
Subresource Copies
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Device::CopySubresourceRegion calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::CopySubresourceRegion calls per frame.
Subresource Update
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Device::UpdateSubresource calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::UpdateSubresource calls per frame.
Texture1D Maps
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Texture1D::Map calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::Map calls that receive. ID3D11Texture1D as a resource parameter per frame.
Texture2D Maps
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Texture2D::Map calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::Map calls that receive. ID3D11Texture2D as a resource parameter per frame.
Texture3D Maps
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10Texture3D::Map calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::Map calls that receive. ID3D11Texture3D as a resource parameter per frame.
VB Creations
Represents the number of calls per frame:
  • Microsoft DirectX* 9
    : The aggregated number of IDirect3DDevice9::CreateVertexBuffer calls per frame.
  • Microsoft DirectX* 9Ex
    : The aggregated number of IDirect3DDevice9Ex::CreateVertexBuffer calls per frame.
VB Lock Time
Represents the amount of time in microseconds spent within all VB lock APIs. This is the amount of time actually inside the lock routines only.
VB Locks
Represents the number of vertex buffer (VB) locks called.
Volume Lock Time
Represents the total amount of time in microseconds spent in DX volume locks per frame.
Volume Locks
Represents the number of DirectX* volume resource locks per frame.
Z/Stencil Clears
Represents the number of calls per frame:
  • Microsoft DirectX* 10
    : The number of ID3D10DepthStencilView::Clear calls per frame.
  • Microsoft DirectX* 11
    : The number of ID3D11DeviceContext::ClearDepthStencilView calls per frame.
OpenGL Metrics
Buffer Creations
Represents the number of OpenGL ES buffers that are allocated from your application per frame.
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.
  • 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.
  • 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.
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.
UseProgram Calls
Represents the number of calls to use OpenGL* ES shader programs from your application per frame.
When the
UseProgram Calls
metric is high, see if you can improve batching to draw all the objects that use a particular program before binding the next one. Combining several shaders into an uber-shader with static flow control can also reduce this metric and its associated cost, but does not always result in a performance improvement.
Error Gets
Represents the number of times that the
glGetError
method is called from your application per frame.
When the
Error Gets
metric is high, see if you can optimize your application to avoid checking for error conditions during its render path.
BindBuffer Calls
Represents the number of calls to bind OpenGL* ES buffers from your application per frame.
When the
BindBuffer Calls
metric is high, see if you can improve batching to draw all instances of the same geometry without switching the bound buffer. Additional performance gains might come from using one buffer for several pieces of geometry and just drawing the appropriate piece where needed.
BindTexture Calls
Represents the number of calls to bind OpenGL* ES textures from your application per frame.
When the
BindTexture Calls
metric is high, see if you can improve batching to draw all the objects that use a particular texture before binding the next one. If possible, a further step to improve performance would be to use texture atlasing rather than multiple smaller textures.
RT Changes
Represents the number of Render Target changes per frame.
 

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