For the purpose of describing Z-buffer compression and 'fast Z-buffer clear', a distinction shall be made between external and internal Z-buffers. An external Z-buffer is stored in video board memory. Internal Z-buffer is a subset of the external Z-buffer and is stored within the graphics processing unit. Access to the internal Z-buffer by the graphics processing unit is several orders of magnitude faster than access to external Z-buffer.
A lossless, variable length Z-buffer compression is employed. The external Z-buffer is divided into 8-pixel or 64-pixel blocks. Each block may be compressed to between one half and one quarter of original size. When needed, one or more blocks are decompressed into the internal Z-buffer. Because a portion of decompressed Z values may be redundant, bandwidth savings do not attain the maximum compression ratios.
In addition to reducing Z-buffer bandwidth, the compressed Z-buffer occupies less video board memory. This allows more textures to be stored in video board memory instead of AGP memory where texture transfer to the graphics processing unit is slower. A texture-intensive benchmark of 'Mercedes-Benz Trucking Racing' demo (MBTR) shows the advantage of a compressed Z-buffer. By deliberately setting the GeForce2 and Radeon graphics boards to operate at the slowest possible AGP transfer mode (AGP 1x), the need for maintaining textures in video board memory is even more critical.