#include <revolution/gx.h>
void GXInitFifoLimits(
GXFifoObj* fifo,
u32 hi_water_mark,
u32 lo_water_mark );
| fifo | A pointer to the FIFO structure. |
|---|---|
| hi_water_mark | The byte count where the GX APIs halt command writes to FIFO. In 32-byte multiples. |
| lo_water_mark | The byte count where the GX APIs resume command writes to FIFO. In 32-byte multiples. |
None.
This function sets the high and low water marks for the FIFO. The high and low water marks are used in immediate mode, that is, when the FIFO is attached to both the CPU and graphics processor (GP).(See GXSetCPUFifo and GXSetGPFifo.)
The hardware keeps track of the number of bytes between the read and write pointers. This number represents how full the FIFO is, and when it is greater than or equal to the hi_water_mark, the hardware issues an interrupt. GX functions will suspend sending graphics to the graphics FIFO until it has emptied to a certain point. The lo_water_mark is used to set the point where the FIFO is empty enough to resume sending graphics commands to the FIFO. Both the hi_water_mark and lo_water_mark should be in multiples of 32 bytes. The count for lo_water_mark should be less than hi_water_mark. Of course, hi_water_mark and lo_water_mark must both be less than the size of the FIFO.
When the FIFO is only attached to the CPU or only attached to the GP, the high and low water mark interrupts are disabled.
GXInitFifoBase, GXInitFifoPtrs
2007/03/05 Deleted old content in the Description section.
2006/03/01 Initial version.
CONFIDENTIAL