Analyzing texture performance

The texturing charts in Streamline show you whether texturing is active, and which texture filtering is in use. If your content is making heavy use of the texture unit, consider using simpler texture filters. This video explains the differences between different types of filtering.

Video Thumbnail

Tip: Check the Mali GPU datasheet for details about the texturing capabilities of the GPU in the device you are testing.

Mali texture usage

The Mali Texture Usage chart shows the number of cycles where texturing was active. Some instructions take more than one cycle due to multi-cycle data access and filtering operations. Mali is optimized for 2D bilinear filtering, trilinear filtering runs at half speed and 3D filtering runs at half speed again. The cycle costs per quad vary for different GPUs, refer to the Mali GPU datasheet for details. 

Mali texture usage chart for Bifrost GPUs in Streamline

For Valhall-based GPUs, you can also see where the filtering unit uses 4x bilinear or 2x trilinear filtering.

Mali Texture usage chart for Valhall GPUs in Streamline

Mali texture CPI

The Mali Texture CPI (cycles per instruction) chart shows the average number of texture cycles per sample.

Mali Texture CPI chart in Streamline

Mali texture workload property rate

The Mali Texture Workload Property Rate chart shows the percentage of texture operations that use texture compression, mipmapping, trilinear filtering or 3D accesses.

Mali texture workload property rate chart in Streamline for Bifrost GPUs

For Valhall-based GPUs, you can see the percentage of texture filtering cycles that use the 4x data path.

Mali texture workload property rate chart in Streamline for Valhall GPUs

Mali texture bus utilization

For Valhall-based GPUs, you can see the percentage load on the texture message input bus. Sometime bus rate can be an issue if you’re returning highp samplers (fp32 per channel not fp16). Use this to check for texture bandwidth issues inside the shader core.

Mali texture bus utilization chart in Streamline for Valhall GPUs

Mali texture memory usage

The Mali Texture Memory Usage chart shows the memory usage for the texture pipe normalized by the number of access cycles. For every texturing filter access you make, check how much bandwidth comes from the L2, and how much is coming from external memory. Use this to check cache efficiency.

Mali texture memory usage chart in Streamline

If a high number of bytes are being requested per access, where high depends on the texture formats you are using, it can be worth reviewing texture settings:

  • Enable mipmaps for offline generated textures
  • Use ASTC or ETC compression for offline generated textures
  • Replace run-time generated framebuffer and texture formats with a narrower format
  • Reduce any use of negative LOD bias used for texture sharpening
  • Reduce the MAX_ANISOTROPY level for anisotropic filtering

Read more texture optimization advice in the Texture Best Practices guide.


Previous Next