Visual annotations

This topic describes the visual annotations supported by Streamline.

Visual annotations add images to the visual annotation chart in the Timeline view. The images are also displayed in the Log view.

If you add images to the capture data, they appear in a chart in the Timeline view. This chart enables you to track the visuals of your application with the other chart data.

Visual annotation in the Timeline view

Visual annotation charts have the following features:

Note

Generating a visual annotation is expensive because of the CPU overhead of creating the image and the bandwidth overhead of transferring the image off the device.

To avoid adversely impacting the performance of the application being profiled, Arm recommends that you rate limit the creation of visual annotations.

Images for visual annotations can be in the following formats:

There is no limit to the image size but the larger the image, the greater the impact on system performance. Increasing the amount of data that is sent to the host in this way increases the probe effect for the applications you are profiling.

Annotation macros

ANNOTATE_VISUAL(data, length, str)

Record an annotation that includes an image in one of the following formats:

  • GIF

  • PNG

  • JPEG

  • ICO

  • BMP +RLE

Specify the image in data, the amount of data to write to the annotate file in length, and optionally a descriptive string to include with the image in str.

Example

The following example uses the ANNOTATE_VISUAL visual annotation to display an image in a track:

std::vector<unsigned char> png_data; // Assume this is populated
ANNOTATE_VISUAL(png_data.data(), png_data.size(), nullptr);

Which renders the image in the track as:

Image from visual annotation in example capture