guParseRdpDL.3p 2.82 KB
.TH guParseRdpDL 3P local "Silicon Graphics, Inc."
.SH NAME
.upperok
guParseRdpDL \- Prints low-level display lists in human readable format.
.SH C SPECIFICATION
.nf
\f3#include "gu.h"

void guParseRdpDL(u64 *rdp_dl, u64 nbytes, u8 flags)

\fP
.fi
.SH PARAMETERS
.TP 10
.I rdp_dl
pointer to RDP display list in DRAM.  This is the array as passed in the
task header. See
.I osSpTaskLoad (3P)
for further details.
.TP
.I nbytes
number of bytes in RDP display list as returned by graphics task.  See
.I osSpTaskLoad (3P)
for more details.
.TP
.I flags
The following flags may be OR'd together to enable printing of
additional information about the display list.

.I GU_PARSERDP_VERBOSE
print extra information about display list, usually for debugging

.I GU_PARSERDP_PRAREA
print information about the area/number of spans of each primitive

.I GU_PARSERDP_DUMPONLY
print the rdp display list as a hexidecimal dump

.SH DESCRIPTION
This function dumps the Reality Display Processor (RDP) display list in human 
readable form and also checks for common errors in the display list. 
In order for this to function you must be running the tool,
.B dlprint 
on the host Indy.
.PP
Optionally, you can print information
about the area of each primitive and the number of spans in a primitive.  
Commands are classified to be either primitive, attribute, sync, or load 
commands and a summary of the number of each command type is printed after 
the display list dump.
.PP
The RDP display list is the output of the graphics microcode running on
the Reality Signal Processor (RSP).  Using the proper 
microcode (microcode with a suffix of .dram), the RSP
will output it's display list to a DRAM buffer provided by the user.  Once 
in DRAM, 
.I guParseRdpDL (3P)
can be used to print the display list.  The display list in DRAM can be
sent to the RDP using the 
.I osDpSetNextBuffer (3P)
function.  This method is useful in isolating problems between the application,
the RSP, and the RDP.  
Note that the
.I guParseRdpDL (3P)
function cannot be used with non-DRAM microcode (ie microcode without
the .dram suffix).
.PP
.I guParseRdpDL (3P)
detects the following conditions:
.PP
.nf
    Color/Z image not in first 2 Megs
    Image pointer not in first 3 Megs
    Image pointers not properly aligned
    Missing syncs
    Illegal primitive coefficients
    Unscissored rectangles
.fi

.SH BUGS
There are no estimates for the number of cycle it takes to load a texture.
The checks for syncs are not always foolproof.  The area calculation for
triangles sometimes reports bogus values.  Estimated clocks does not take 
into account DRAM latency, cycle type, Read/Modify/Write mode, etc. and 
so should be used only as an optimistic estimate of display list performance.
.SH SEE ALSO
.IR dlprint (1),
.IR guParseGbiDL (3P),
.IR alParseAbiCL (3P),
.IR osSpTaskLoad (3P),
.IR osDpSetNextBuffer (3P),