Mali GPU Training

This training series for game developers covers the latest techniques for optimizing mobile game performance. It will give you an in-depth training from fundamentals of underlying GPU hardware to API best practices and how to identify problems using Arm Mobile Studio's performance analysis tools.

1-1 Introduction to mobile systems

Welcome to the Mali GPU training series. In this introductory video, we will explore Mobile GPUs, taking a look at what they are used for, the systems in which they operate, and how a mobile SoC is constructed.

1-2 The rendering pipeline

In this video, we will explore how a mobile device renders geometry and pixels to the screen, using the rendering pipeline used by OpenGL ES and Vulkan graphics APIs, and the role that each pipeline stage plays.

7:27
0:00

1-3 GPU architecture

In this video, we will explore the differences between immediate mode rendering and tile-based rendering, and how workload pipelining is handled in each approach.

3:23
1:01

1-4 Hardware shader cores

In this video, we will look at the general design principles underlying the programmable GPU shader cores. We’ll start with a stereotypical high-performance CPU core, and look at what we need to adapt to make it efficient for the types of data parallel workloads processed by GPUs.

2-1 The Mali GPU family

In this video, we will introduce the Mali GPU family, describing the evolution of the architecture and its capabilities, from the Mali-400 series, to the latest GPUs such as the Mali-G78, which uses our Valhall-based architecture.

2-2 Best practice principles

In this video, we will look at how the design decisions you make during game development, can impact performance on mobile. We’ll offer some tips and best practises to help you avoid common problems, and ensure the best performance from Mali GPUs.

2-3 Frame construction

To get the best performance out of a tile-based renderer one of the most things to get right is the frame graph. This defines the bare bones of the frame – the render passes, the compute passes, and how data flows between them. In this video we will introduce some ideas to help you understand how frames can be built more efficiently, to make the best use of a mobile device’s resources.

2-4 Engine and API best practices

In this video we will introduce some engine and API best practices to help you avoid common problems, such as software hitching, and find the right balance between draw call batches, frustum culling and depth sorting.

5:47
5:47

2-5 Content best practices

GPUs are data plane processors, so it should be no surprise that the data payload of content is critically important to the performance that can be achieved. In this video, we will introduce some best practices to help you create efficient content that will perform well on a wide range of mobile devices.

2-6 Shaders best practices

In this video, we will introduce some best practices for shader programs, to help you get the best performance on Mali GPUs. We'll give some recommendations about precision levels, branching and how to avoid issues that stop the GPU from optimizing your source code.

8:30
8:13

3-1 Introducing Arm Mobile Studio

​In this video, we will introduce some of the benefits you can gain from having a strong optimization process, and how Arm Mobile Studio could enhance your existing development workflow.

Video Thumbnail
10:16

3-2 Performance Advisor

​In this video you’ll learn how to capture data from a game running on a connected Android device, and how to generate and analyze a Performance Advisor report.

Video Thumbnail
11:01

3-3 Streamline

In this video, we will explore an example Streamline capture to see how the CPU and GPU workloads from a game were handled by a mobile device. Streamline lets you deep-dive into problem areas, by visualizing the performance counter data from the CPU, GPU, and memory system.

Video Thumbnail
8:08


3-4 Graphics Analyzer

​In the previous video, we learned from the Streamline capture that some parts of the game could contain objects that are too complex for their on-screen size and distance from the camera. In Arm Mobile Studio’s Graphics Analyzer, you can see all the graphics API calls that the application made, and step through them one by one to see how the scene is built. In this video, we'll take a capture with Graphics Analyzer, to explore the scene in more detail.

Video Thumbnail
6:37

3-5 Mali Offline Compiler

In this video we’ll demonstrate how to run Mali Offline Compiler on a fragment or vertex shader program, to generate a report showing the expected performance of that shader on a Mali GPU.

Video Thumbnail
6:53

 

3-6 Developer resources

In this video, we’ll introduce some of the learning resources available from Arm, to help you develop optimal content for mobile games. We’ll also cover where to download Arm Mobile Studio for free, and how to get started.