The GPU Memory Reads metric shows the total number of bytes read from memory by the GPU per frame.
For example, GPU memory is used for render targets and for loading textures. The GPU Memory Reads metric only includes reads due to cache misses and explicitly uncached resources. For texture data, only reads that miss both the texture cache and the L3 cache are included in this total.
This metric provides measurements for the whole system, not for a specific application being run.
If GPU Memory Reads is 640,000,000, it means that 640,000,000 bytes were read from memory by the GPU.
GPU memory reads are performed by multiple graphics operations. Some ways to reduce the number of GPU memory reads include:
- Reducing the number of rendering passes
- Reducing the size of textures, by using a lower resolution or lower color precision (such as RGBA4444 instead of RGBA8888)
- Using texture compression to reduce the amount of memory used to transfer textures
- Using mipmapping, so that smaller textures (mipmaps) can be used
- Reducing the number of textures in the scene
To help minimize overhead in this area, capture a typical frame while the game is running. Use this frame as input to the Graphics Frame Analyzer, and try one or more of the following techniques:
- Use the 2x2 Textures experiment (in the Experiments tab) to see if textures are a bottleneck
- Use the Texture tab to see the texture size, format, and mip level
This metric is always a multiple of 64, since the Intel® HD Graphics 2500/4000 performs GPU Memory Reads transactions in terms of 64-byte cache lines.