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
|
gDPPipelineModeFormat#include "gbi.h" gDPPipelineMode(Gfx *gdl, unsigned int mode) gsDPPipelineMode(unsigned int mode)Arguments
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
|