Intel 815 Manuel D’Utilisation

Page de 423
 
 
Intel® 815 Chipset: Graphics Controller PRM, Rev 1.0 
R
 
 
 
  
59 
If the color source data resides within the frame buffer or main memory graphics memory, then the 
Source Address Register, specified in the command packets is used to specify the address of the source. 
However, if the host processor provides the source data, then this register takes on a different function 
and the three least-significant bits of the Source Address Register can be used to specify a number of 
bytes that must be skipped in the first quadword received from the command packet to reach the first 
byte of valid source data. 
In cases where the host processor provides the source data, it does so by writing the source data to ring 
buffer directly after the BLT command that requires the data or uses an IMMEDIATE_INDIRECT_BLT 
command packet which has a size and pointer to the operand in Main memory graphics memory.  
There is also an address space used for debug where the processor can write the source data. It is a 64-
KB memory space on the host bus. There is no actual memory allocated to this memory space, so any 
data that is written to this location cannot be read back. This memory space is simply a range of memory 
addresses that the BLT engine’s address decoder watches for the occurrence of any memory writes.  
The BLT engine loads all data written to any memory address within this memory space or through the 
command packet in the order in which it is written, regardless of the specific memory address to which it 
is written and uses that data as the source data in the current BLT operation. The block of bytes sent by 
the host processor to either this data port or through the command packets must be quadword-aligned, 
although the source data contained within the block of bytes does not need to be aligned. As mentioned 
earlier, the least significant three bits of the Source Address Register are used to specify the number of 
bytes that must be skipped in the first quadword of color data to reach the first byte of valid source data. 
To accommodate discontinuous source data, the source and destination pitch registers can be used to 
specify the offset in bytes from the beginning of one scan line’s worth source data to the next. Otherwise, 
if the source data is contiguous, then an offset equal to the length of a scan line’s worth of source data 
should be specified. 
6.2.3. 
Monochrome Source Data 
The opcode of the command packet specifies whether the source data is color or monochrome. Since 
monochrome graphics data only uses one bit per pixel, each byte of monochrome source data typically 
carries data for 8 pixels, which hinders the use of byte-oriented parameters when specifying the location 
and size of valid source data. Monochrome source data is always supplied through the command stream, 
which avoids the read latency during BLT Engine operation. Some additional parameters must be 
specified to ensure the proper reading and use of monochrome source data by the BLT engine. The BLT 
engine also provides additional options for the manipulation of monochrome source data versus color 
source data. 
The various bit-wise logical operations and per-pixel write-masking operations were designed to work 
with color data. In order to use monochrome data, the BLT engine converts it into color through a 
process called color expansion, which takes place as a BLT operation is performed. In color expansion, 
the single bits of monochrome source data are converted into one, two, three, or four bytes (depending on 
the color depth to which the BLT engine has been set) of color data that are set to carry value 
corresponding to either the foreground or background color that have been specified for use in this 
conversion process. If a given bit of monochrome source data carries a value of 1, then the byte(s) of 
color data resulting from the conversion process will be set to carry the value of the foreground color. If 
a given bit of monochrome source data carries a value of 0, then the resulting byte(s) will be set to the 
value of the background color. The foreground and background colors used in the color expansion of