N64® Functions Menu

al - Audio Library Functions
gDP - DP GBI Macros
gdSP - General GBI Macros
gSP - SP GBI Macros
gt - Turbo Microcode RDP
gu - Graphics Utilities
Math - Math Functions
nuSys - NuSystem
os - N64 Operating System
sp - Sprite Library Functions
uh - Host to Target IO
64DD - N64 Disk Drive

Nintendo® Confidential

## gDPSync Functions

Syntax

    #include "gbi.h"

    gDPPipeSync(Gfx *gdl)
    gsDPPipeSync(void)

    gDPFullSync(Gfx *gdl)
    gsDPFullSync(void)

    gDPLoadSync(Gfx *gdl)
    gsDPLoadSync(void)

    gDPTileSync(Gfx *gdl)
    gsDPTileSync(void)

Arguments

- gdl is the pointer to the graphics display list

explanation
They synchronize RDP attribute updates with primitive rendering. Pixel rendering and attribute interpolation are not implicitly sequentially synchronized 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. The gDPSync macros enable the application to insert explicit synchronization instructions to force a wait until the last pixel of a primitive has been processed.
The different sync macros represent different synchronization scenarios:

- gDPPipeSync synchronizes the attribute interpolation pipe
- gDPLoadSync synchronizes texture loads
- gDPTileSync synchronizes texture tile settings
- gDPFullSync signals the end of a frame

The general rule is that a gDPPipeSync macro must be inserted after a (group of) primitives but before an RDP attribute change command as shown here:

    gSP1Triangle(...);
    gSP1Triangle(...);
    gSP1Triangle(...);
    gDPPipeSync(...);
    gDPSetRenderMode(...);

The gDPFullSync macro must be the last macro sent to the RDP during a frame. It causes the RDP to send an interrupt back to the CPU indicating that the RDP pipeline has finished processing its last macro.
gDPLoadSync and gDPTileSync are not usually needed; they are already properly inserted in the gDPLoadTexture macros.
See Also
gDPLoadTexture

Nintendo® Confidential Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.
Copyright © 1998
Nintendo of America Inc. All rights reserved
Nintendo and N64 are registered trademarks of Nintendo
Last updated March 1998