Functional Description
D15343-003 133
reasonably accurate depth buffering within inches of the eye point. The selection of depth buffer
size is relatively independent of the color buffer. A 16-bit Z/W or 24-bit Z/W buffer can be selected
with a 16-bit color buffer. Z buffer is not supported in 8-bit mode.
6.4.3.9 Stencil Buffer
The Raster engine provides 8-bit stencil buffer storage in 32-bit mode and the ability to perform
stencil testing. Stencil testing controls 3D drawing on a per pixel basis and conditionally eliminates
a pixel on the outcome of a comparison between a stencil reference value and the value in the
stencil buffer at the location of the source pixel being processed. They are typically used in
multipass algorithms to achieve special effects, such as decals, outlining, shadows, and
constructive solid geometry rendering.
One of three possible stencil operations is performed when stencil testing is enabled. The stencil
operation specifies how the stencil buffer is modified when a fragment passes or fails the stencil
test. The selection of the stencil operation to be performed is based upon the result of the stencil
test and the depth test. A stencil write mask is also included that controls the writing of particular
bits into the stencil buffer. It selects between the destination value and the updated value on a per-
bit basis. The mask is 8-bit wide.
6.4.3.10 Projective Textures
The GMCH supports two simultaneous projective textures at full rate processing. These textures
require three floating-point texture coordinates to be included in the FVF format. Projective
textures enable special effects such as projecting spot light textures obliquely onto walls, and so on.
6.4.4 2D Engine
The GMCH provides an extensive set of 2D instructions and 2D HW acceleration for block
transfers of data (BLTs). The BLT engine provides the ability to copy a source block of data to a
destination and perform operations (for example, ROP1, ROP2, and ROP3) on the data using a
pattern, and/or another destination. The Stretch BLT engine is used to move source data to a
destination that need not be the same size, with source transparency. Performing these common
tasks in hardware reduces CPU load, and thus improves performance.
6.4.4.1 256-Bit Pattern Fill and BLT Engine
Use of this BLT engine accelerates the Graphical User Interface (GUI) of Microsoft* Windows*.
The GMCH BLT Engine provides hardware acceleration of block transfers of pixel data for many
common Windows operations. The term BLT refers to a block transfer of pixel data between
system memory locations. The BLT engine can be used for the following:
• Move rectangular blocks of data between system memory locations
• Data alignment
• Perform logical operations (raster ops)
The rectangular block of data does not change as it is transferred between system memory
locations. Data to be transferred can consist of regions of system memory, patterns, or solid color
fills. A pattern will always be 8x8 pixels wide and may be 8-bits, 16-bits, or 32-bits per pixel.
The GMCH BLT engine has the ability to expand monochrome data into a color depth of 8 bits, 16
bits, or 32 bits. BLTs can be either opaque or transparent. Opaque transfers, move the data
specified to the destination. Transparent transfers compare destination color to source color and
write according to the mode of transparency selected.