# Optimize graphics vertex efficiency for Arm GPUs

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/)
- [Optimizing graphics vertex efficiency for Arm GPUs](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path/)
- [Next Steps](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_next-steps/)

## About this Learning Path

| Skill level:    | Advanced                |
|------------------|-------------------------|
| Reading time:    | 10 min                  |
| Last updated:    | 19 Aug 2026             |

### Authors:
- Andrew Kilroy, Arm
- Peter Harris, Arm

### Arm IP:
[Immortalis](https://support.arm.com/?tab=compute-ip&Product%20Type=Graphics%20Processors) [Mali](https://support.arm.com/?tab=compute-ip&Product%20Type=Graphics%20Processors)

### Tags:
- [Performance and Architecture](/tag/performance-and-architecture)
- [Android](/tag/android)
- [C](/tag/c)
- [CPP](/tag/cpp)

### Who is this for?
This is an advanced topic for Android graphics application developers aiming to enhance GPU performance through smarter vertex optimization.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Optimize vertex representations on Arm GPUs.
- Analyze Vertex Memory Efficiency (VME) using Arm Frame Advisor.

### Prerequisites
Before starting, you will need the following:
- Understanding of vertex attributes.
- Familiarity with Arm Frame Advisor (part of Arm Performance Studio).

### Summary
You’ll use Arm Frame Advisor to diagnose vertex-data efficiency on Arm GPUs. First, you’ll profile a frame, inspect VME for each draw, and identify inefficient passes. Then, you’ll refine the affected vertex representation in C or C++, and profile the same scene again to compare VME and validate the improvement.

### Frequently asked questions

#### How do I find low VME in Arm Frame Advisor?
Open the frame analysis and review the VME reported for each draw call. Draws with low VME are the priority for investigation.

#### Which draws should I optimize first if several show low VME?
Start with the draws that contribute to the observed performance issue in your profiling run. Focus on passes where Frame Advisor reports especially low VME, such as the shadow map draws in the example.

#### What changes do I make to improve VME?
Adjust the vertex representation used by the affected draws based on your understanding of the attributes. Then, re-run Arm Frame Advisor to see whether VME increases for those draws.

#### How do I verify that a change helped?
Analyze the same scene again and compare the VME values for the same draw calls. An increase in VME indicates the change improved vertex efficiency.

#### Which tool should I use to analyze Vertex Memory Efficiency on Android?
Use Arm Frame Advisor, which reports VME and is part of Arm Performance Studio.
