gDPSync.3p 1.88 KB
.TH gDPSync 3P local "Silicon Graphics, Inc."
.SH NAME
.upperok
gDPSync,
gDPPipeSync, gsDPPipeSync,
gDPFullSync, gsDPFullSync,
gDPLoadSync, gsDPLoadSync,
gDPTileSync, gsDPTileSync
\- synchronizes RDP attribute updates with primitive rendering.
.SH C SPECIFICATION
.nf
\f3#include "gbi.h"

gDPPipeSync(Gfx *gdl)

gsDPPipeSync(void)

gDPFullSync(Gfx *gdl)

gsDPFullSync(void)

gDPLoadSync(Gfx *gdl)

gsDPLoadSync(void)

gDPTileSync(Gfx *gdl)

gsDPTileSync(void)

\fP
.fi
.SH PARAMETERS
.TP 10
.I *gdl
graphics display list pointer.
.SH DESCRIPTION

Pixel rendering and attribute interpolation are not implicitly
sequentially sychronized in the RDP.  If an attribute change occurs
after a primitive has started processing, the attribute change will
likely affect the rendered pixels in the middle of the primitive.
These commands allow the application to insert explicit syncronization
instructions to force a wait until the last pixel of a primitive has
been processed.
.PP
The different sync types represent different synchronization scenarios.
.I gDPPipeSync
synchronizes the attribute interpolation pipe,
.I gDPLoadSync
synchronizes texture loads, and
.I gDPTileSync
synchronizes texture tile settings.
.I gDPFullSync
is a special case, signaling the end of a frame.
.PP
The general rule is that a 
.IR gDPPipeSync(3P)
command must be inserted after a (group of) primitives but before an RDP
attribute change command.
.Ex
gSP1Triangle(...);
gSP1Triangle(...);
gSP1Triangle(...);
gDPPipeSync(...);
gDPSetRenderMode(...);
.Ee
.PP
The last command sent to the RDP during a frame must be a
.IR gDPFullSync(3P)
command.  This command causes the RDP to send an interrupt back to the
CPU indicating that the RDP pipeline has finished processing its last
command.  
.PP 
Load and Tile Syncs are not normally needed; they are already properly
inserted in the 
.I gDPLoadTexture* 
command macros.
.SH SEE ALSO
.IR gDPLoadTexture* (3P)