Window: Profiling View (OpenGL/OpenGL ES* Workloads)

This information only applies to Android* workloads.

Use the Profiling View to identify performance opportunities in the analyzed frame.

To access this window: in the Open Frame Capture window, select the frame for analysis and click Open.

Bar chart

Visualize performance in your frame over time if metrics are available for your target system:

  • Review the individual API calls and their contribution to the overall frame time. Different bar colors represent different types of calls:
    • draw calls are dark-blue
    • dispatch calls are purple
    • copy calls are cyan
    • clear calls are green

    If you filter the API calls in the API log, the excluded calls are displayed in gray.

  • Choose the available metrics for the X and/or Y axis to visualize specific aspects of performance in the frame.
  • Toggle between individual draw calls (default) and regions using the Group by drop-down menu. Select the corresponding option to group draw calls by render targets or debug regions, if available.
  • Identify all ergs using a specific texture, program, buffer, or render target selected in the Resource viewer. You can see a colored stripe below each erg using the selected resource. The color of the stripe depends on the group the resource belongs to: orange for Input, green for Execution, and purple for Output resources. Half-transparent colored stripes indicate that the resource is used by some of the ergs in the render target.
  • Select draw calls/render targets in the bar chart to analyze metrics data and resources for specific parts of the frame. The selected bars are highlighted in orange. You can use Ctrl+Z/Ctrl+Y keyboard shortcuts to return to the previously selected erg and back.

    If you select one or more draw calls in the chart and then group them by render targets, such partial selection within the render target is marked with orange hatching:


  • Import and export metrics data in CSV format to compare performance results for the same frame measured with different drivers or hardware settings:
    • Use Export button to save the metrics data to a *.csv file.
    • Use the Import button to import the saved metrics data onto the chart for comparison with the current metrics values. You can only import metrics data for the same frame file with the same set of metrics selected.


      You can only import metrics data that was exported for the same frame file, with the same set of metrics. You cannot compare metrics data collected on different platforms with different sets of metrics available.

    • Hover over the colored rectangles to view the *.csv filenames and associate the color code in the bar chart with the imported files. To remove the imported metrics data from the chart, click the corresponding rectangle.
  • Change the horizontal scaling of the bar chart by stretching/shrinking the slider below the chart. The scrollbar below the chart provides an overview of the entire frame, while the slider reflects the part of the frame currently displayed in the chart. If the X-axis represents a non-constant metric, you can double-click the slider to toggle between the full frame view and the currently selected part.


    If you import one or more CSV files into the bar chart, the X-axis is reset to a constant metric.

  • Change the vertical scaling of the bar chart:
    • Enable/disable vertical auto-scaling by clicking the toggle button. By default, vertical auto-scaling is enabled.
    • Increase/decrease the relative height of the bars using the / buttons. You can re-scale the longest bar in the displayed region to the full height of the bar chart, and re-scale the shorter bars accordingly. Alternatively, you can hold Ctrl and scroll up or down to re-scale the bars.

    By default, all bars are displayed in their original height.

  • Click the button to collapse the bar chart and expand other fields. When you restart Graphics Frame Analyzer, your latest selection is restored.

API log

Review the functions used in the frame:

  • the list of all functions, in the call order
  • parameters passed to each function
  • call stack for each draw call

You can save the full API log into a .TXT file by pressing Ctrl+S.


To facilitate debugging, you can specify object labels for various resources in your application, such as programs, program pipelines, sampler objects, textures, buffers, or render targets. This feature is available starting from OpenGL 4.3 Core Profile. For earlier OpenGL/OpenGL ES versions, you can enable this feature in your application using the KHR_debug or EXT_debug_label extensions.

Graphics Frame Analyzer displays object labels in the API log, Resource viewer, and Graphics Pipeline view.

When you select an erg in the bar chart, Graphics Frame Analyzer highlights the corresponding functions in the API log. For easier navigation, Graphics Frame Analyzer marks the functions that might require your attention with colored bars. You can click the bar to navigate directly to the marked function:

  • Orange bars denote functions that caused warnings.
  • Red bars denote functions that caused errors.
  • Green bars mark user-defined markers inserted in the application code.
  • Blue bars mark the draw calls with modified states and shaders.

To view the call stack for a draw call, click the black triangle next to the draw call number:


You can use Up/Down arrow keys or Page Up/Page Down keys to navigate between the displayed functions.

In the Show all mode, use Ctrl+Up and Ctrl+Down to switch between functions that affected the visual state of the frame image only, such as draw calls or clear calls.

When you select a function in the list, Graphics Frame Analyzer updates all other panes of the Profiling View to reflect the state of the frame for this function call.

Resource viewer

Review all resources used by the selected draw call(s) or render targets:

  • programs
  • data buffers
  • geometry - only displayed when you select a single draw call
  • textures, including 3D textures and texture arrays, with all parameter values
  • states
  • depth and stencil attachments
  • api call arguments
  • render targets

For textures and renderbuffers used as output in framebuffer and for image textures, Graphics Frame Analyzer also shows the following data, if available:

  • Framebuffer ID
  • Texture or renderbuffer ID
  • Texture target
  • Type of attachment (color, depth, stencil)
  • Layer or face
  • Mip-map level

All resources are grouped by input, execution and output stages. Groups with multiple resources are folded. Click the button to display all resources in such groups.


Use the / buttons to hide the side panes and expand the Resource viewer.

To view details about a resource, click the resource thumbnail. At the same time, all draw calls using this resource receive a highlight in the bar chart. In case of any issues with the resource, the thumbnail receives a warning marker.

To assess possible performance changes without recompiling your code, you can modify states and shaders directly in this pane.

To analyze various geometry aspects of the selected geometry object, switch between the available visualization modes:

Solid (default) - view the object as a solid model.

Wireframe - view a wireframe model to inspect the back side of the object and understand how it is built from triangles.

Solid Wireframe - display a wireframe model on top of the solid model.

Normal - view a normal map for your object to analyze how the normal vectors are plotted.

You can rotate the object in any direction by clicking and holding the mouse pointer:

To invert normals by 180 degrees, right-click the geometry object.

To flip vertical and horizontal planes, middle-click the geometry object.

To export geometry data in the Wavefront OBJ format, click the button.

To adjust the color range for floating-point textures, as well as for render targets depth and floating-point color attachments, click the button and use the slider that appears:

For 3D textures, image textures, and texture arrays, you can select the image layer in the Layer Input control:

To save a texture image or render target, select it from the list of the resources, and click the button or press Ctrl+S. You can choose between DirectDraw Surface (DDS), Khronos Texture (KTX), or PNG formats.

To analyze pixel history, select the render target in the Resource viewer and click the pixel you want to analyze. Graphics Frame Analyzer marks the selected pixel with a crosshair and filters the API calls to display only those clear, draw, blit, and texture image update calls that affected this pixel. The color boxes next to each call show the color written into framebuffer after this API call execution, or the rejected rectangle if the call has been rejected at one of the pipeline stages. You can click this box to show/hide detailed pixel history information, such as hit count, color, or rejection reason. If you click the Show All button to view the full API log, these boxes mark the calls that affected the pixel.

For details on using the pixel history functionality, see Minimizing Overdraw.

To visualize the color data of a texture or render target, select it from the list of resources and click the button to open the color histogram:

  • Select the color range that contains the data you are interested in by clicking and dragging with the mouse pointer in the histogram, or by typing its threshold values in the Range Selector below the histogram. Graphics Frame Analyzer ignores the values outside the selected range, rescaling all the pixel values to fit the original range. You can also zoom in/out of the selected range using the mouse wheel, and scroll left/right by clicking and dragging the mouse while holding Ctrl.
  • Switch between the available color channels for better visualization.
  • View detailed information about pixel values below the histogram:
    • Original values used to store pixel information in memory. This data is in a more precise format than the information provided below the image.
    • Normalized values used in shaders.
  • Return to the default range by clicking the Reset button. For floating-point texture formats, the default range is [0, 1]. For integer formats, the range spans from the minimum to the maximum possible value. Each color channel has its own [min, max] default range.

If your target platform supports the FS EU Activity or VS EU Activity GPU metrics, GPU duration for each program is visualized in pie charts:

The full circle of the pie chart represents GPU Duration of all the draw calls where the program is used. For multiple API call selections that use more than one program, the size of the pie chart correlates with the GPU duration values displayed on the pie chart. Inner sectors of the pie chart represent the GPU time distribution between executing Fragment Shader (shades of purple), Vertex Shader (shades of green) and other activities (grey color), such as EU Idle, or rasterization.

To analyze GPU duration for a program, hover over the pie chart to get details on EU Active and EU Stall timings for the FS and VS stages. Each state receives a highlight outside the pie chart, and you can see the corresponding metric value, in ms:

Experiments pane

Isolate potential performance bottlenecks in your application by modifying render states within the graphics driver.


You can only perform experiments if metrics data is available for your target system. Otherwise, the Experiments pane is hidden.

Graphics Frame Analyzer provides the following experiments:

  • 2x2 Textures
  • 1x1 Scissor Rect
  • Simple Fragment Shader - available for OpenGL* ES 2.0 or higher and OpenGL* 3.2 or higher (Core Profile)
  • Disable Erg(s)

For details, see Experiment with Render States.

Metrics pane

Analyze metrics information for the selected draw calls/render targets. If nothing is selected, Graphics Frame Analyzer displays the total values for the entire frame. If metrics are unavailable for your platform, the Metrics pane is hidden.


If you are analyzing an OpenGL* ES application, the target device to test against must be connected to your host system. This is required to calculate metrics data. Metrics data is only available for devices based on the Intel® Processor Graphics.

By default, Graphics Frame Analyzer shows metrics values in short format. You can switch to the full decimal notation using the / toggle button.

Use the / toggle button to switch between different views:

  • Table view - display all metrics data in a table format.
  • Pipeline view - group all metrics by specific hardware blocks they correspond to, such as Shader Execution or Rasterization blocks. Click each block to see detailed information for each metric in this block.


    The Pipeline view is only available when you select Draw or Dispatch calls. Otherwise, you can only see the metrics in the table format.

Some metrics have low and high threshold values that help indicate potential performance issues. Graphics Frame Analyzer highlights such metric values if the threshold is exceeded:

  • With a yellow background if the metric value is between low and high thresholds.
  • With a red background if the metric value is above the high threshold.

The Pipeline blocks include metrics that represent the processing flow at each stage of the graphics rendering pipeline. The Interfaces blocks reflect the state of the external interfaces used by the Pipeline blocks.

The width of each block corresponds to 100% of execution time for selected region of API calls. The colored markers below the blocks indicate EU states for this block:

    • Green markers indicate the active execution state
    • Red markers indicate the stalled state
    • Grey markers indicate the idle state


When you experiment with the frame, metrics values update on the fly to reflect the introduced changes. While metrics values are recalculated, they are grayed out.


Show all toggle button

Choose the display mode of the API log:

  • View all functions used in the frame, in the call order.
  • View only those functions that affected the visual state of the frame image, such as draw calls or clear calls (default).


Type filter expression field

Filter the API log by function name or function parameter by typing in a part of its name.



Get statistical information for the analyzed frame:

  • The total number of draw calls in the frame, and the number of draw calls currently selected in the bar chart.
  • Performance statistics, only if metrics are available for your target system:
    • Duration of the selected draw calls, in milliseconds.
    • Percentage of the total frame time taken by the selected draw calls.
    • Time difference between the original and the modified frame, if you experiment with render states or modify frame resources.

If you experiment with your frame, you can revert the applied experiments and all changes in shaders, states, and texture parameters by clicking the button in the toolbar.

Configuration button

Click to review the rendering context configuration created with EGL/GLX APIs. Rendering contexts include a set of configuration attributes and their values, such as color, depth-stencil buffer formats, and other application-wide settings:

In the pop-up window, you can see the following data:

  • Player - name of the device used to replay the captured frame. This PC corresponds to your host system.
  • Config Attribute - name of the attribute used to create rendering context.
  • Original - attribute values used by the application to create rendering context. Original attribute values are stored in the captured frames.
  • Current - attribute values used by the selected player to create rendering context. When you open the frame in the Graphics Frame Analyzer, the player attempts to create context with the most similar set of current attribute values possible.

Original and current attribute values may differ if you open the frame on a different devices. The difference in rendering contexts may affect performance and metrics data.

If the value is too long, you can hover over the value to see its full name. For attributes that are not set in the original or current context, Graphics Frame Analyzer replaces the value with a hyphen.

Info button

Click to view the properties of the analyzed frame:

  • filename
  • API used
  • frame resolution
  • the name of the device on which the frame was captured
  • GPU details

Color Scheme toggle button

Change the color scheme of the Graphics Frame Analyzer interface:

  • Light color scheme (default)
  • Dark color scheme

Back button

Return to the Open Frame Capture window to select an existing frame for debugging. You can use the Backspace key instead.


Open the Intel® GPA online documentation.

See Also

Finding Performance Bottlenecks in OpenGL/OpenGL ES* Frames
Experimenting with Render States
Identifying Graphics Elements with Complex Geometry
Optimizing States and Shaders
Analyzing Application Textures
Minimizing Overdraw

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