README 6.39 KB

README file for running rsp/rdp regression suite:
-------------------------------------------------

Common command line options:
---------------------------
'k':  TestKind = myatoi(argv[2]);
Selects which of the major test suites to run.

'p':  TestFuncNum = myatoi(argv[2]);
Used to select which test in a suite to run.


't':  timing = 1;
Print out timing information.

'v':  verbose = 1;
Prints out various messages indicating progress.

'l':  LoopTestFuncNum = 1;
Enter looping mode. Each test in the individual suite is run once
and then the next is run.


dumping options:
---------------
's':  OutputRSP = 1;
causes a dump of the rsp display list to be printed out

'd':  OutputRDP = 1;
causes a dump of the rdp display list to be printed out

'h':  HangAfterDump = 1;
Go into an infinite while(1) loop after doing an rsp/rdp display
list or memory dump. Useful for isolating a single frame.

'm':  OutputMEM = 1;
Run Nathan's memory dumping routine. Dumps out the sections of memory
necessary for running a C-sim test on the frame.


rdp centric options:
-------------------
'a': UseAAMode = 1;
Only meaningful in the rdp fill rate tests. Causes tests to do
color read modify write.

'z':  UseZMode = 1;
Only meaningful in rdp fill rate tests. Forces zbuffer read modify 
write.

'c':  ClearScreen = 1;
forces a clear of the screen before running test. Most tests do
a clear anyway, so this flag is pretty much ignored

'e':  ClearZBuffer = 1;
forces a clear of the zbuffer before running test. Most tests that
use the zbuffer do this anyway, so this flag is pretty much ignored.


random screwball options:
------------------------

'f':  FrameRate = myatoi(argv[2]);
How many times to display each frame before doing a swap buffer.
Useful for slowing down tests so that individual frames can be
studied.

'x':  rdp_DRAM_io = 1;
Do not render over xbus, instead render to memory. Using this flag
will probably break things since the app will more then likely overrun
internal buffers unless recompiled with them increased.
	    
'y':  UseSmallTri = 0;
Use large triangles instead of small triangles for various tests
rsp tests.

'u':  debugger = 1;
Don't start main thread. Use when running gvd.

----------------------------------------------------------------------

Explanation of test suites:

There are 4 distinct test suites in this application. They are chosen
by setting the -k flag.

	-k 0 = perf monkey dancing triangles. Doesn't really test anything,
	       just used to make sure that we're actually able to run things
               through the entire path

	-k 1 = rsp tests. These tests primarily test the rsp, they pretty
	       much *NEED* to be run over the xbus (no -x flag)
	       To run through the rsprdp directed tests use:

			gload -a "-k 1 -p 0 -l -t"

	       -l turns on looping, it iterates through the tests starting at 
                  the test specified with the -p flag

               -t turns on timing output

	-k 2 = rdp tests. These tests primarily test the rdp, they do not
               render over the xbus, and thus the -x flag is not supported

			gload -a "-k 2 -p 0 -l -t"

Each of the rsprdp and rdp suites contain a number of individual tests,
these are selected by using the "-p" option. The individual tests are 
explained below:

----------------------------------------------------------------------
rsprdp directed tests:

test  0:  RSPDummy
Doesn't do anything, returns immediately

test  1:  RSPVTrans     
Repeatedly sends down 16 vertices at a time, tests how many vertex transforms
we can do per second

test  2:  RSPMatM       
Sees how many matrix multiplies we can do in the rsp per frame. Each matrix
sent down results in 2 matrix-matrix multiplies occuring

test  3:  RSPMatL       
Sees how many matrix loads we can do in the rsp per frame. Each matrix
sent down results in 1 matrix-matrix multiply occuring

test  4:  RSPVLTrans    
Sees how many vertex transforms we can do in the rsp per frame with
two diffuse lights defined

test  5:  RSPTTrans     

See how many Gouraud shaded triangles we can send down, use the same
vertex list over and over again. The "-y" flag is used to toggle
between using small or large triangles. Use the small triangles for
rsp testing, use the large ones for visual inspection that things
aren't fubar.

test 6:  RSPTex 
See how many Gouraud shaded textured triangles we can send down, use
the same vertex list over and over again. 

test  7:  RSPZB        
Testing Gouraud shaded Z buffered triangles

test  8:  RSPTexZB     
Testing Gouraud shaded textured Z buffered triangles

test  9:  RSPRDP        
Tests how many RDP noops we can send down.

test 10:  RSPNOOP     
Tests how many RSP noops we can send down, this is used to measure
command parsing overhead

test 11:  RSPVARDL      
Tests how many display lists of varying size we can send down per
second. It starts out at 2 commands per display list. Holding the 'C'
button on the controller allows you to increment the number of
commands per display list being constructed. To cycle through all
of the variable sized lists for this test, run:

	gload -a "-k 1 -t -p 11 -t"

and hold down the C button on the controller.

test 12:  RSPClip1      
This tests how many triangles can be sent down where there is one
vertex being clipped against one clipping plane.

test 13:  RSPClip2   
This tests how many triangles can be sent down where there is one
vertex being clipped against two clipping planes.

----------------------------------------------------------------------

rdp directed tests:

test 0: RDPDummy 
Dummy procedure, used to test various things
       
test 1: RDPBackg 
Dummy procedure, draws a different colored background image, not used 
for performance testing
       				       
test 2: RDPFill  
Tests how many pixels we can shovel down the pipe in FILL mode
       				       
test 5: RDPZTest 
Dummy procedure, tests if we are setting up the zbuffer correctly
       				       
test 6: RDPTexL  
Tests how many textured pixels we can send out
       				       
test 7: RDPTexC  
Tests how many pixels we can shovel down the pipe in COPY Mode
       				       
test 8: RDPTexLB 
Tests how many Textures we can load into TMEM per second
       				       
test 9: RDP1CYCH 
Meta test for testing how many pixels we can shove down the pipe
in one cycle mode, use "-a" or "-z" to turn on color read modify
write and Z read modify write. Defaults to color write.
       				       
test 1: RDP2CYCH 
Same as RDP1CYCH, except tests two cycle mode