Arm Mali technologies have been developed to allow ever-increasing graphics complexity within the thermal limits of mobile devices. These technologies provide significant system-wide bandwidth savings across all formats, to ensure that end users can experience the latest in graphics quality on any device.

This guide contains a comprehensive collection of resources develop by Arm and others to help developers optimize their applications for Arm Mali technology.

Whether developing for a proprietary game engine, or a commercially available one like Unity or Unreal Engine, these resources will provide you with techniques and best practices that you can use to improve the performance of your applications.

If you are new to developing for Mali, use these resources to learn the basics of Mali software development:

    If you are familiar with the basics, these additional resources will be useful:

    Arm also provides Arm Mobile Studio, a suite of graphics development tools to help developers get the best out of their applications.

    • Use Performance Advisorto generate an easy-to-read performance summary from an annotated Streamline capture, and get actionable advice about how to optimize your game or app.
    • Use Streamline to capture a performance profile for deep-dive analysis, using all of the performance data in the system. Measure peaks in performance for the CPU, GPU and bandwidth and then see which code was being executed during that time.
    • Use Graphics Analyzer to debug Open GL ES and Vulkan API calls in your application, to identify rendering defects and investigate problem scenes to improve performance. Analyze overdraw, shaders, textures and fragment counts, draw call by draw call.
    • Use Mali Offline Compiler to check how your shader programs would perform on a range of Mali GPUs. Get an approximate cycle cost breakdown for the major functional units in the design.

Developing with Unity for Arm

Unity software is one of the most popular development environments used to create games and applications across multiple platforms.

These resources will provide you with techniques and best practices that you can use to improve the performance of your applications:

Developing with Unreal Engine for Arm

Unreal Engine is a game engine developed by Epic Games. The current release is Unreal Engine 4, designed for a range of mobile applications such as Android, Linux, iOS and virtual reality, including Google Daydream, and Samsung Gear VR. With the best support for Vulkan® and Metal rendering APIs, Unreal enables you to deliver console quality content on mobile devices.

Developing VR on Arm

Mobile Virtual Reality requires high performance and efficiency from a GPU for the highest quality experience. Arm Mali GPUs are leading the way, powering devices from the mobile phone-based Samsung Gear VR to standalone headsets such as the Deepon M2 VR.

Developing with Vulkan® for Arm

Vulkan® is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

  • Vulcan® 101 provides a video introduction to the Vulkan® API, including the history of the API and how it compares to OpenGL®.
  • What is Vulkan®? provides a number of introductory resources.
  • Vulkan® API presentations cover a number of subject areas, including Vulkan’s key features on Arm Architecture and 9 tips for Vulkan® development.
  • The Mali Vulkan Software Development Kit is a collection of resources to help you build Vulkan® applications for a platform with a Mali GPU and an Arm processor.
  • Vulkan® Integration in Unity explores some of the benefits of Unity's built-in Vulkan® renderer.
  • Vulkan demos provides a selection of demos running on Arm Mali architecture. These demos have been created by Arm and our partners.

Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.

OpenGL® and the oval logo are trademarks or registered trademarks of Hewlett Packard Enterprise in the United States and/or other countries worldwide.

Developing with OpenGL ES for Arm

OpenGL® for Embedded Systems is the world's most deployed 3D graphics API, providing a cross-platform API for full-function 2D and 3D graphics on embedded systems – including consoles, phones, appliances and vehicles. It consists of well-defined subsets of desktop OpenGL®, creating a flexible and powerful low-level interface between software and graphics acceleration using the OpenGL® ES shading language.

  • The Android OpenGL® ES 3.0 and 3.1 tutorials introduce some of the features of OpenGL® ES, explain what they can be used for, and show you how to use them.
  • The OpenGL® ES 3.X Developer Programming Guide introduces the key OpenGL® ES 3.x API features and extensions, as well as best practices on how to optimize your OpenGL ES 3.x application for the Arm Mali architecture.
  • The Mali OpenGL® ES Software Development Kit provides a collection of resources to help you build OpenGL® ES 2.0 and OpenGL® ES 3.0 applications for Mali based platforms.
  • Arm's graphics development tools help you to develop and analyze your OpenGL® ES graphics and compute software.

OpenGL® and the oval logo are trademarks or registered trademarks of Hewlett Packard Enterprise in the United States and/or other countries worldwide.