Frame Advisor is a developer tool designed to offer in-depth frame-based analysis for mobile graphics in Android applications. By capturing the API calls and rendering processes of a specific frame, you can identify potential performance bottlenecks that may be causing slowdowns in your application.

Prerequisites

Build your application, and setup the Android device as described in the Streamline instructions.

Connect to the device

  1. When Frame Advisor opens, select New trace to start a new trace.

    Image Alt Text:Frame Advisor launch screen

  2. Select your device, and the application that you want to capture frames from.

    Image Alt Text:Device connection screen

  3. If your application uses the Vulkan API, change the selection in the API settings to Vulkan.

  4. Click Next to continue.

    Unless you chose the Pause on connect option in the Device connection screen, the application starts automatically on the device.

Capture a frame burst

  1. The Capture screen provides options for your capture session.

    Image Alt Text:Frame Advisor capture screen

    When you approach the part of your game where the problem occurs, click Pause and use the Step button to focus in just before it.

  2. You can capture one frame burst of up to 3 consecutive frames. Adjust the Frame count as required.

  3. Click the Capture button to start capturing the frame burst. Wait for the capture to complete. This may take several seconds.

  4. Click Analyze to see the results. It may take a few minutes to analyze the data.

Analyze the capture

Frame Advisor presents the captured data in the Analysis screen. See your captured frames in the Frame Hierarchy view.

Image Alt Text:Example Analysis screen

Explore each frame to evaluate how efficiently they were rendered on the device.

  1. Look at the Render Graph to see how the frame was constructed.

    Image Alt Text:Render Graph

    Evaluate the render graph to look for render passes or input or output attachments that aren’t used in the final output, and could be removed, saving processing power and bandwidth.

  2. Expand a frame in the Frame Hierarchy view, to see the render passes and draw calls within it. Step through the draw calls and watch the scene being built up in the Framebuffers view with each draw. Look for draw calls that could be eliminated, such as those that do not contribute anything to the final output. Look for identical draw calls that could be batched together into one draw.

    Image Alt Text:Framebuffers view

  3. In the Content Metrics view, sort draw calls by the number of primitives to find the most expensive objects. See whether these objects could be simplified.

    Image Alt Text:Content Metrics view

  4. For an expensive object, check the Detailed Metrics view to see how efficiently the object’s mesh is being rendered to the screen. Look for objects with duplicated vertices, or those that do not efficiently reuse indices.

    Image Alt Text:Detailed Metrics view

Watch this video tutorial to see how to capture and analyze a problem frame with Frame Advisor.

Back
Next