Patent ID: 6937244

Claim:
A method of rendering a graphics primitive to a frame buffer for a display, the frame buffer being partitioned into a plurality of equal size blocks of pixels, each block having at least two depth-layers, the frame buffer having an associated z-buffer with an depth value for each pixel in the frame buffer, the depth value determining the visibility of a pixel on the display, the method comprising: determining the blocks in the frame buffer that are affected by the graphics primitive; for each affected block, adjusting the depth layers of the block, determining whether any pixels of the graphics primitive for the block intersect any of the depth-layers of the block, the block being partitioned into a plurality of equal size sub-blocks and having a sub-block mask that includes a bit for each sub-block; and if any pixels of the graphics primitive for the block intersect any of the depth-layers, setting a flag indicating that the z-buffer requires an update for the block, forming a pixel mask that indicates which pixels in the block are intersecting pixels, and combining the pixel mask with the sub-block mask to determine which sub-blocks have intersecting pixels; again determining the blocks in the frame buffer that are affected by the graphics primitive; and for each affected block, adjusting the depth layers of the block, determining whether or not there is an update flag set for the block, if there is no update flag set, rendering the visible pixels to the frame buffer based on the adjusted depth layers if the update flag is set, then for each sub-block of the affected block, determining based on the sub-block mask whether the sub-block is affected by any intersecting pixels; and if the sub-block is affected, reading the z-buffer, adjusting the visibility entry for the intersecting pixels, and rendering any visible pixels to the frame buffer.