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

   

gDPPipelineMode

Format
#include "gbi.h"

gDPPipelineMode(Gfx *gdl,
   unsigned int mode)
gsDPPipelineMode(unsigned int mode)
Arguments
  • gdl is the pointer to the graphics display list
  • mode is the RDP pipeline mode (G_PM_1PRIMITIVE or G_PM_NPRIMITIVE)
What This Macro Does
It sets the mode (cache coherent or pipeline) for using the RDP internal span caches. By using the RDP internal span caches, you can make rendering more efficient. There are two ways to use this span cache:

G_PM_1PRIMITIVE selects 'cache coherent' mode. If two spans in the same screen neighborhood are rendered back to back, the second span uses the framebuffer result of the first span (which may not have been written to the framebuffer yet) as the framebuffer pixel source. This is important for correct read-modify-write pixel operations where the second span result depends on the first span's read-modify-write operation. This mode costs some pixel-fill performance.

G_PM_NPRIMITIVE selects the 'pipeline' mode. It uses the span cache without coherency, but it is faster. You may see artifacts, typically in anti-aliased rendering modes. This is because two adjacent triangles may share two back-to-back spans in the same pixel neighborhood. If the second span does not wait until first span's processing is finished, it will read the wrong values from the framebuffer (and then write the incorrect values back to the framebuffer).

G_PM_1PRIMITIVE mode can cause loss of fill rate due to the idle cycles between primitives. In the worst case, the lost fill rate can be on the order of 1.5M pixels/sec. Because in real games, the visual anomalies caused by overlapping primitives will be rare and minor, Nintendo recommends that the G_PM_NPRIMITIVE mode be used for better performance.

See Also
gDPSetRenderMode



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 January 1998