The latest update of the Arm Mali Best Practices Developer Guide is now available. It has a number of important updates for mobile developers to read through, so they can get the most out of their projects.
First, the guide has been released alongside a comprehensive datasheet reference of Arm Mali GPUs. This means mobile developers can see the different features and capabilities of Arm based SoCs since the Arm Mali-T720.
The datasheet covers every GPU since the Mali-T720. From the GPUs using the Midgard and Bifrost architectures, to the more recently released Valhall architecture GPUs, including the latest Mali-G78 and Mali-G68. The datasheet also allows mobile developers to work out frequently asked questions when using Mali GPUs. This covers how many cycles/sample on different GPUs for complicated filters like a 3D anisotropic trilinear filter, as well as thread counts and warp widths.
The new Valhall advice is not just for the datasheet. We have made updates throughout the guide to let developers know the best practices for Valhall-based GPUs, as well as the previous architectures.
In 2019, the Arm Mali Vulkan Best Practice for Mobile samples were donated to Khronos to create the Vulkan Samples GitHub repository. These samples are now fully integrated into the guide. Where samples have been made, developers now have the link straight to the example code of how to implement the best practice. We will keep this updated as the samples get released and add them to the Mali Best Practice guide as soon as we can. There is also a link to the recently released Mali GPU Performance Counters, which will be very useful for profiling the application code using the Streamline tool available in Arm Mobile Studio.
There are other significant additions and changes to the advice in the guide. This is due to developers getting in contact with us and requesting further insights and knowledge regarding what they need. As a result, there are three whole new subchapters of additional advice on OpenGL ES Separate Shader Objects, Queries (both OpenGL ES and Vulkan) and Checking the Precision of your shader variables.
For Vulkan users, we have added plenty of useful knowledge to get the best out of AFBC (Arm Frame Buffer Compression). There is also advice on how Vulkan structure “hint flags” are used. Furthermore, our research has led us to no longer recommend Vulkan Push Constants.
It is always useful to keep these best practices to hand, so please feel free to download the latest version. If you have any feedback on the guide then please let us know by adding a comment to this post.
Download the new guide