Learn the basics of developing on Arm Mali GPUs with our guides exploring everything from the principles of high performance, accelerating 2D applications, and the Utgard, Midgard, and Bifrost shader cores. 

Principles of high performance

Explains the cornerstones of high performance and how to achieve it, along with what to look out for.

Read the guide

Tile based rendering on Mali

An introductory guide to understanding the Mali Rendering Architecture.

Read the guide

Understanding render passes

How render passes apply to Mali’s tile-based GPU architecture on different APIs.

Read the guide

Workload pipelining

An in-depth look into macro-scale pipelining of workloads, the means by which we keep the GPU busy all of the time, and some of the common reasons for that frame level pipeline to stall.

Read the guide

Accelerating 2D applications

How to improve a device's battery life by reducing device energy use and preventing thermal throttling by using specific aspects of 3D rendering to accelerate performance in 2D applications.

Read the guide

The Bifrost shader core

This guide describes the top-level layout and the benefits of and shader core functionality of a typical Mali Bifrost GPU programmable core, the third generation of Mali GPUs. The Bifrost family includes the Mali-G3x, Mali-G5x, and Mali-G7x series of products.

Read the guide

The Utgard shader core

This guide describes the top-level layout and the benefits of and shader core functionality of a typical Mali Utgard GPU programmable core, the first generation of Mali GPUs. The Utgard family includes the Mali-400, Mali-450, and Mali-470 series of products.

Read the guide

The Midgard shader core

This guide discusses a typical Mali Midgard GPU programmable core. Midgard is the second-generation Mali GPU architecture, and the first to support OpenGL ES 3.0 and OpenCL. The Midgard family includes the Mali-T600, Mali-T700, and Mali-T800 series of products.

Read the guide

The benefits of buffer packing on memory bandwidth

This guide explains how to make best use of the limited memory bandwidth available to your application on your target device and what memory bandwidth areas can be made more efficient.

Read the guide

Understanding numerical precision

This guide explores the different levels of numerical precision available for a GPU. It explains the advantages of using narrower data types, and when to consider using the higher precision types available instead.

Read the guide