Since the release of Radeon256 in July 2000, ATi calls its technique to avoid the rendering of hidden surfaces 'Hyper-Z,' and Radeon 9700 is equipped with its third generation. Just as the two versions before, it's meant to save precious memory bandwidth.
Hyper-Z divides the frame buffer and Z-buffer in blocks of 8x8 pixels, which can be cached and handled very efficiently. Fast Z-clear only clears a flag for each block, speeding up the Z-clearing process.
The newly improved lossless Z-compression is able to compress the z-values in those 8x8 pixel blocks at a compression ratio of between 2:1 up to 4:1 before the blocks are written to the Z-buffer, thus saving memory bandwidth.
In the case of 6x FSAA, the Z-compression (as well as color compression) can be up to 1:24, as for FSAA the frame and Z buffer blocks are utilized as well and the six corresponding sample blocks are compressed as one.
Hierarchical-Z is also utilizing the flag that stands for each 8x8 pixel Z-buffer block. This flag contains the lowest Z-value that is found in the block represented by the flag. The Z-value of a pixel that comes from triangle setup is checked against the Z-flag of the block in which the pixel is supposed to be drawn. If the pixel's Z-value is lower than the flag's value, the pixel is discarded and the block is not read from the Z-buffer into the cache. Should the Z-value of the pixel be higher than the flag value, the block is read from the Z-buffer into the cache, undergoing a Z-decompression along the way.