guParseRdpDL
Outputs a low-level display list
#include <ultra64.h> /* gu.h */
void guParseRdpDL(u64 *rdp_dl, u64 nbytes, u8 flags);
None.
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 |
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).
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.
alParseAbiCL, dlprint, guParseGbiDL, osDpSetNextBuffer, and osSpTaskLoad
03/01/99 Completely rewritten.