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.
If you're a developer using a games engine such as Unity or Unreal Engine to develop your software, these resources will provide you with techniques and best practices that you can use to improve the performance of your applications.
Arm also provides a number of graphics development tools of its own, such as the Mali Graphics Debugger and Mali Offline Compiler, to help developers get the best out of their applications.
- New to developing for Mali? Learn the basics of Mali software development:
- Principles of High Performance
- Understanding Render Passes
- Understanding Pipelining
- Understanding Tile-Based Rendering
- The Midgard Shader Core
- The Bifrost Shader Core
- Mali FAQs provide answers to frequently asked questions.
- The Mali GPU Best Practices Guide provides recommendations for efficient API usage.
- Learn about the development tools for graphics and compute applications Arm provides to help you deploy graphics applications and content on Mali GPU based systems.
- A number of Arm training courses cover Mali software development, including Arm Mali Graphics - Mali-T720 T820 and T830 Software Design and Mali GPU Software Debug Workshop.
- Arm Community provides a Graphics and Multimedia forum where you can ask questions, collaborate on projects, and discuss the latest Mali tools, drivers and development platforms.
Developing with Unity for Arm
Unity software is the most popular development software used by developers 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.
- Arm Guide for Unity Developers covers topics from VR to global illumination and is intended for beginner to intermediate level developers.
- Arm provides Unity Project Files to help developers learn directly from working projects.
- Unity Engine Tutorials cover a number of subject areas, including "Enhancing your Unity mobile games" and "Profiling Unity Games on Mobile Platforms".
- Unity Tools - A How to Guide shows how to build a Unity application with Mali Graphics Debugger support.
- Tracking mobile app activities by sending data from your Unity app to Treasure Data, using our Unity SDK library.
- Enhancing Your Unity Mobile Games (Presented by ARM) is a video presentation showing developers how to get the most out of Unity when developing under the unique challenges of mobile platforms.
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, Samsung Gear VR). With the best support for Vulkan and Metal rendering APIs, Unreal enables you to deliver console quality content on mobile devices.
- Arm Developer Unreal Engine provides links to a number of invaluable resources.
- The Arm Guide for Unreal Engine 4 Optimizing Mobile Gaming Graphics helps you create applications and content that make the best use of Unreal Engine 4 on mobile platforms, especially those with Arm Mali GPUs.
- Unreal Engine Tutorials provide an introduction to many of the features and benefits of Arm Mali GPU architectures and Unreal Engine 4.
- ARM Tools Integration in Unreal Engine 4 shows how using Mali Graphics Debugger with your project is as easy as selecting an option in your project settings window.
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 Deepon’s M2 VR.
- See what's possible with virtual reality on Arm by watching the Ice Cave VR demo running on the Samsung Gear VR.
- The Mali GPU OpenVG Application Development Guide provides information about developing applications using the OpenVG graphics standard.
- Virtual Reality Tutorials cover a number of subject areas, including "How to get the most out of mobile VR in Unity" and "High Quality Mobile VR with Unreal Engine with Oculus".
- Arm Developer Virtual Reality provides links to a number of invaluable resources.
- Mali VR SDKs provide resources to help you build VR applications for Mali based platforms.
- How to... achieve inside-out tracking in mobile VR using only Unity and AR SDKs.
- How to... achieve console-like experiences on mobile VR with Apex Construct.
- How to... implement indoor navigation on your mobile using Unity, SLAM, and the Google ARCore SDK.
- Optimizing Virtual Reality: Foveated Rendering shows how you can lower the cost of rendering areas on the periphery of users' vision.
- Optimizing Virtual Reality: Understanding Multiview explains a rendering feature that can help to improve performance.
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 Tutorials 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.
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.