A system and method for increasing rendering efficiency in pipelined graphics
systems.
In the disclosed embodiments, reads of pixel information during the rendering of
a primitive are suspend if the pixel information has not been updated by a previous
primitive. In some embodiments, reads of pixel information are also suspended periodically
when a table tracking the information becomes full. In some embodiments a Read
Monitor Unit 108 controlled by the graphics system's Memory Controller 106
is used to track pixels which have been affected by rendered primitives. In some
embodiments, a history list is used to avoid suspension of reads for antialiased
lines. In a particular embodiment, the table used to track affected pixels is two-bits,
the first bit tracking whether the pixel has been touched by a primitive since
the last SuspendReads command was invoked and the second bit tracking whether the
pixel has been touched by the current primitive. Both bits are reset when a power
on or SuspendReads command occurs. The second bit is also reset at the start of
rendering for each primitive. In a separate embodiment, a unique number is assigned
to each primitive to be rendered. The number is recorded for each active pixel
touched by the primitive. If an earlier primitive has touched this pixel, suspension
of reads can be invoked and the table reset (i.e., every entry is marked invalid).