The R300/R400 GPUs don't yet have HyperZ support enabled by default until sufficient testing has been completed, but the HyperZ support can be toggled via the RADEON_HYPERZ environment variable. The newer Radeon GPUs with the R600g Gallium3D driver also don't yet have usable HyperZ support enabled by default. HyperZ is the ATI/AMD technology that's been around going back to the R100 GPU days for boosting the GPU performance and efficiency. HyperZ consists of Z compression for minimizing the Z-Buffer bandwidth, fast Z clear, and a hierarchical Z-Buffer.
In the Git commit enabling this feature, Marek describes the support as:
- Only one process can use it at a time. This is a hardware limitation.I did some HyperZ benchmarks months ago, but new R300g performance tests will now be coming up.
- The first process to clear a zbuffer gets the exclusive access to use Hyper-Z.
- Compositors don't use any zbuffer, so they won't steal it, but some web browsers do, so make sure there's no web browser running if you want your game to use Hyper-Z.
- There's no need to restart an app which couldn't get the access to Hyper-Z. Just quit the app which took it, the driver can turn it on for the other app in the middle of rendering.
- If an app gets the access to Hyper-Z, it prints "radeon: Acquired Hyper-Z" to stdout.