guParseRdpDL

guParseRdpDL [Function]

Function

guParseRdpDL

Outputs a low-level display list

Syntax

#include <ultra64.h>        /* gu.h */
void guParseRdpDL(u64 *rdp_dl, u64 nbytes, u8 flags);

Arguments

rdp_dl
Pointer to RDP display list in DRAM
* Array passed to the stack header. For details, see t.output_buff in osSpTaskLoad.
nbytes
Byte size of RDP display list returned from the graphics task.
* For details, see t.output_buff_size in osSpTaskLoad.
flags
Additional information flags
GU_PARSERDP_VERBOSE (Enable output of supplemental information)
GU_PARSERDP_PRAREA (Enable output of span information)
GU_PARSERDP_DUMPONLY (Enable display in hexadecimal)

Returned value

None.

Description

This function outputs the RDP display list in a readable format. Using options, you can also output information about the region of each primitive and about the number of span buffers. Command types are classified into primitive, attribute, synchronize and load commands. The number of each of these types of commands is output after the display list dump. This function detects the following common conditions in the display list:

-- The color/Z image is not stored within the first 2 megabytes of DRAM
-- The image pointer is not stored within the first 2 megabytes of DRAM
-- The image pointer is not aligned correctly
-- Synchrony failures
-- Inappropriate primitive coefficients
-- Non-scissored rectangles
Regarding the flagsargument:
The following flags can be ORed to make multiple specifications:
GU_PARSERDP_VERBOSE
Outputs supplemental information relating to the display list. Normally used when debugging.
GU_PARSERDP_PRAREA
Outputs information about the span buffer region for each primitive and about the number of span buffers.
GU_PARSERDP_DUMPONLY
Dumps the RDP display list in hexadecimal format

Note

To use this function you must run dlprint on the Indy. No assumption is made about the number of cycles it takes to load a texture. And it is not always easy to check for synchronization. Sometimes incorrect values are calculated for the area of a triangle. The estimate for clock ticks does not take into account DRAM latency, cycle type, or RWM (Read/Modify/Write) mode. In other words, this function provides only an outline of the performance of the display list.

Moreover, this function can only be used with DRAM microcode (i.e., it cannot be used with microcode that does not have the .dram extension).

Comment

The output format of the RDP display list depends on which graphics microcode is being executed in the RSP. By using the appropriate microcode (in this case, microcode with the .dram extension), the display list will be output to a DRAM buffer. Once in DRAM, this function can be used to print out the display list. Then osDpSetNextBuffer can be used to send the display list from DRAM to the RDP. By using this procedure, if a problem arises you can determine whether it occurred in the application, the RSP or the RDP.

See Also

alParseAbiCL, dlprint, guParseGbiDL, osDpSetNextBuffer, and osSpTaskLoad

Revision History

03/01/99 Completely rewritten.