GXInitFifoLimits

Syntax

#include <revolution/gx.h>

void GXInitFifoLimits(
    GXFifoObj*   fifo,
    u32          hi_water_mark, 
    u32          lo_water_mark );

Arguments

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.

Return Values

None.

Description

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.

See Also

GXInitFifoBase, GXInitFifoPtrs

Revision History

2007/03/05 Deleted old content in the Description section.
2006/03/01 Initial version.


CONFIDENTIAL