README file for blocks demo Author: Kevin Luster, kluster@sgi.com The point behind this application is to demonstrate the performance penalty for various features. Through controller manipulation, the user is able to toggle parameters such as antialiasing, Zbuffering and polygon count. A status bar at the bottom of the screen indicates what percent of a frame time the RCP processing overhead is for the generated display list. The actual variables which are controllable are printed in the xterm that gload was run in. Use the "G" button (underneath the controller) to toggle between different controller modes. The "START" button in any controller mode will reset all parameters to their intial default values. Some notes to keep in mind: The status bar at the bottom of the screen is broken up into units of 1/60th of a second for NTSC (1/50th of a second for PAL). The status bar self-scales itself to cover a larger range of processing time. use "gload -a -s" to turn this feature off. The status bar measures *ONLY* the time that it takes for the rcp to process the display list (rsp->rdp), it does not include any of the setup time in the R4300 to construct the display list. Thus the frame update rate on the screen probably will not correspond to the frame compute time displayed by the status bar. The blocks are sorted with respect to Z, but only for their initial configuration. This enables the user to rotate the scene and investigate the impact of single Z read modify writes vs. multiple Z reads single Z write vs. multiple Z reads multiple Z writes. The number of triangles displayed for the cubes includes all triangles being generated. Keep in mind that since backface culling is enabled, only half of the block polygons make it through the entire rsp->rdp pipe, the other half are discarded early in rsp processing. Turning on global transformations causes more matrix transformations to be applied per primitive and thus impacts on performance. Turn off global transformations in order to decrease the transformation overhead. TIMER BAR DESCRIPTION: The timer bar looks different depending on which microcode is selected and how many tasks are being used to render the scene. In all cases the black vertical tick marks indicate 60ths of a second. As the time varies the timer bar's scale automatically changes and you will see more or fewer 60th of a second intervals on the screen at a time. xbus, 1 task: BLUE: rsp time GREEN: rdp time (simultaneous with rsp) dram, 1 task: BLUE: rsp time LIGHT GREEN: rdp time if rendered in the following frame (2 frame latency) DARK GREEN: rdp time if rendered following the rsp completion fifo, 1 task BLUE: rsp time GREEN: rdp time (simultaneous with rsp) xbus, more than 1 task: BLUE: rsp time for all the tasks RED LINES: mark the boundary of each individual task GREEN: rdp time (simultaneous with rsp) dram, more than 1 task: BLUE (on top): rsp time if the rsp is run consecutively BLUE (on bottom): rsp time if the rdp is run in between the rsp tasks RED LINES (on blue): mark the boundary of each individual task LIGHT GREEN: rdp time if rendered in the following frame (2 frame latency) DARK GREEN: rdp time if rendered following each rsp task's completion fifo, 1 task BLUE: rsp time RED LINES: mark the boundary of each individual task GREEN: rdp time (simultaneous with rsp) Number of tasks used to render the scene: The default is to draw all geometry in 1 task. If 2 tasks are selected then the "planes" are drawn in the first task and the "cubes" are drawn in the second. If more than 2 tasks are selected then the "planes" are drawn in the first task and the "cubes" are evenly distributed among the remaining tasks (the rendering order stays the same).
Name |
Last commit
|
History
|
Last Update |
---|---|---|
.. | ||
CVS | ||
Makefile | ||
PCmake | ||
README | ||
block.c | ||
block.h | ||
cfb.c | ||
controller.c | ||
controller.h | ||
dram_stack.c | ||
rdp_output.c | ||
rdp_output_len.c | ||
spec | ||
static.c | ||
static.h | ||
subcube.c | ||
subcube.h | ||
subplane.c | ||
subplane.h | ||
timer.c | ||
timer.h | ||
zbuffer.c |