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:
|
Shader Creations |
Represents the number of 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:
|
Buffer Creations |
Represents the following:
|
Buffer Maps |
Represents the following:
|
Clears |
Represents the number of calls per frame:
|
Color Fills |
Represents the number of calls per frame:
|
IB Creations |
Represents the number of 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:
|
Resource Creations |
Represents the number of 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:
|
RT Data Gets |
Represents the number of calls per frame:
|
Stretch Rects |
Represents the number of calls per frame.
|
Surface Creations |
Represents the number of 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:
|
Subresource Copies |
Represents the number of calls per frame:
|
Subresource Update |
Represents the number of calls per frame:
|
Texture1D Maps |
Represents the number of calls per frame:
|
Texture2D Maps |
Represents the number of calls per frame:
|
Texture3D Maps |
Represents the number of calls per frame:
|
VB Creations |
Represents the number of 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:
|
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:
|
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:
|
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. |
UseProgram Calls |
Represents the number of calls to use OpenGL ES shader programs from your application per frame. Improving Performance: 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. Improving Performance: 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. Improving Performance: 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. Improving Performance: 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. |