guDumpRawRdpDL

guDumpRawRdpDL

Function

guParseRdpDL, guDumpRawRdpDL

Prints out low-level display list in a human readable format

Syntax

#include "gu.h"
void guParseRdpDL(u64 *rdp_dl, u64 nbytes, u8 flags)
void guDumpRawRdpDL(u64 *rdp_dl, u64 nbytes)

Arguments

rdp_dl
Pointer to RDP display list in DRAM which is passed onto task header. For more details, see osSpTaskLoad

nbytes
Number of bytes, returned by graphics task, in RDP display list. For more details, see osSpTaskLoad

flags
The following flags are bitORed to enable a function printing out additional information on the display list.
GU_PARSERDP_VERBOSE
The function prints out the additional information on the display list. It is usually used for debugging.

GU_PARSERDP_PRAREA
The function prints out information on the area/number of spans for each primitive.

Description

This function uses rmonPrintf to dump reality display processor (RDP) list in a human-readable format. It also detects common display list errors. Therefore, application needs to launch rmon thread before it calls the function. Area information for each primitive and the number of spans for a primitive can be printed out, depending on which option's been chosen. The types of commands are primitive, attribute, synchronous, and load commands. The number of each command type is printed out after display list dump.

RDP display list is output in a format of graphic microcode which executes on RSP. Use proper microcode for RSP to output display list onto DRAM buffer that the user uses. It is possible to use guParseRdpDL in DRAM to print out display list. And osDpSetNextBuffer can be used to send the display list in DRAM to RDP. This enables to seperately deal with problmes that occur in application, RSP, and RDP.

guParseRdpDL will detect the following conditions. :

guDumpRawRdpDL dumps sequencial-64 bit word RDP display list in hexiadecimal values after the decimal word values.

Known Issue

The number of cycles needed to load a texture is not calculated in advance. Also it is not always easy to check if it synchronizes. The calculation of the triangle area may be incorrect. The predicted number of clocks doesn't include DRAM delay, cycle type, and read/modify/write mode. In other words, it is only used to obtain the summary of display list performance.

See Also

rmonPrintf, osSpTaskLoad, and osDpSetNextBuffer