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