GIFtags
The basic unit of GIF transfer data is the GIF packet. Each packet is split into one or more primitives. Every primitive must be preceded by a GIFtag.
GIFtag Format
- 0-14 NLOOP - Data per register to transfer
- 15 EOP - End of packet
- 16-45 Unused
- 46 Enable PRIM field
- 47-57 Data to be sent to GS PRIM register if GIFtag.46 == 1
- 58-59 Data format
- 0=PACKED
- 1=REGLIST
- 2=IMAGE
- 3=IMAGE
- 60-63 NREGS - Number of registers
- 0=16 registers
- 64-127 Register field, 4 bits each
When NLOOP == 0
, all fields are ignored except EOP and no further processing is done. When GIFtag.46 == 0
, an idle cycle is inserted before processing begins. Registers are handled in little-endian order; i.e. bits 64-67 are processed first, then 68-71, and so on.
Note
The GS Q register is initialized to 1.0f when reading a GIFtag.