guParseGbiDL
Outputs a GBI display list
#include <ultra64.h> /* gu.h */
void guParseGbiDL(u64 *gbi_dl, u32 nbytes, u8 flags);
None.
This function interprets commands and data in the GBI display list and outputs them in a readable format. The GBI display list is processed by graphics microcode running on the RSP in order to create an RDP-format display list. Depending on which microcode is used in the graphics task, this output from the RSP can be either sent directly to the RDP or passed via DRAM. If this RSP output (RDP display list) has been stored in DRAM, it can be output in a readable format using the guParseRdpDL function. See osSpTaskLoad to read about the OSTask structure.
To use this function you must run dlprint on the Indy. gbi_dl and nbytes correspond to the data_ptr field and the data_size field of the OSTask structure. Normally you set nbytes to 0 in order to output the entire list.
The OSTask looks like this:
typedef struct {
u32 type; // Task type
u32 flags; // Task state bit type
u64 *ucode_boot; // Pointer to boot microcode
u32 ucode_boot_size; // Size of this
u64 *ucode; // Pointer to task microcode
u32 ucode_size; // Size of this
u64 *ucode_data; // Pointer to microcode data
u32 ucode_data_size; // Size of this
u64 *dram_stack; // Pointer to DRAM matrix stack
u32 dram_stack_size; // Size of this
u64 *output_buff; // Pointer to output buffer
u64 *output_buff_size; // Size of this
u64 *data_ptr; // Pointer to SP command list
u32 data_size; // Size of this
u64 *yield_data_ptr; // Pointer to yield buffer
u32 yield_data_size; // Size of this
} OSTask_t;
typedef union {
OSTask_t t;
long long int force_structure_alignment;
} OSTask;
alParseAbiCL, dlprint, guParseRdpDL, and osSpTaskLoad
03/01/99 Completely rewritten.