Input Data and Graph Descriptions

Input Data

The modified graphics driver can log all calls made to the S3 Toolkit. We trapped the following calls: The file is output in the *.tri format, which is human readable and fairly self explanatory. We then parse this data using the parse program, available on the web site.

Output Data - Statistics Generated

Nineteen different graphs which give information about the triangles being rendered can be generated from any given sequence. Six of these generate results which are further broken down into untextured (gouraud shaded), textured, and overall categories. We will now give a brief description of each graph, which will include the name of the statistics file output by the parse program, as well as the name of the generated graphs. In general graphs are available in .gif and PostScript forms, with the same prefix. Graphs all have the same prefix as their related data file, and some may have a <u,t,o> appended which indicates the graph contains untextured, textured or overall statistics.


Triangle Size Data
This is perhaps the most discussed statistic. This graph shows the number of triangles falling in any given triangle size. It shows any clustering around particular size, and indicates what sort of demand the application is putting on the graphics sub-system.

Aspect Ratio Data
This graph shows a histogram of the number of triangles drawn at various aspect ratios across the entire sequence. We define aspect ratio as the height of the bounding box divided by the width, inverted if it is less than one.
Horizontal and Vertical Extents
Aspect ratio alone does not show the whole picture, since triangles may be tall or wide. The horizontal and vertical extent graphs show a histogram of the number of triangles at a given width or height across the duration of the sequence being analyzed.
W Ratios
This graph shows a histogram of the distribution of w-ratios by displaying the number of triangles at each ratio. This measures the depth extent of triangles and is important to know for doing perspective corrected texturing of triangles. It only applies to textured triangles for the data we have.

Per Frame Data

Depth Complexity
This graph gives a good measure of how likely triangles are to overlap, or how much of the screen is covered with triangles. It also tells you how many triangles you would be likely to encounter if you went straight back through the scene to infinite distance. The depth complexity was measured as the total amount of filled triangle space in the frame divided by the area of the frame. Note that games like Terminal Velocity have depth complexity of less than one when a portion of the screen is filled with a bitmap of the sky. The graph shows the depth complexity for each frame in the sequence.
Triangles Per Frame
This graphs the number of triangles on a frame by frame basis across the sequence, and is an indicator of how variable the number of triangles per frame are.
Texture Changes Per Frame
In this graph, the number of switches of the active texture is measured for each frame in the sequence. This number is good global indicator of the texture temporal locality that is (or is not) achieved. Clearly it only relates to textured triangles.

Per Texture Statistics

These statistics relate to the use of individual textures. The structure of the driver is such, however, that the application does its own management of textures in memory. The only data that is available to the driver is when the application changes the address the board uses to texture from. Thus, it is possible that an application never change the texture address but just continually swap a new texture to one address which the board uses. For our texture statistics we just look at when the board is told to use a new address. Obviously all these statistics only apply to textured triangles.
Average Triangles Per Texture
This gives the average number of triangles per frame that are drawn with any of the given textures.
Average Pixels Per Texture
This shows the average number of pixels drawn using a particular texture averaged over all frames. It is a measure of which texture gets the most use.
Average Number of Consecutive Hits
This is perhaps the most interesting of the per texture statistics, since it indicates how effective caching of textures can be. The number of consecutive hits to the texture says how many time in a row a given texture is addressed, this along with texture color depth and size gives a decent idea of the memory access pattern that these games cause in the graphics sub-system.

Dot Statistics

Dot statistics are what we call statistics that are taken in direct relation to the order in which the triangles are sent to the graphics sub-system. For each of them, a measure is made of the triangle, stored, followed by a measurement of the next triangle sent to the system. The plots generated yield a lot of valuable information about the ordering of triangles being sent to the graphics sub-system.
Average W
This is measured only for textured triangles, and tells what the average depth of the triangle is (average of nearest and furthest w). In many of the games which use Painters Algorithm, the dot statistics show clearly the far textures being drawn at the beginning of the frame, followed by closer and closer ones.
Horizontal and Vertical Extent
This is a time based look at what the horizontal and vertical extents of triangles are.
Triangle Area
This shows how how triangle sizes vary during the sequence of triangles being sent to the graphics sub-system.
This is the time based analog of the w-ratio, and shows ordering effects among wide w range triangles.
Aspect Ratio
This is a time based look at the aspect ratio.
Texture Used
This plots the number of the texture being used for each triangle (with numbers for textures chosen based on which is used earliest in a given sequence). It is interesting because it gives a good visual idea of the texture access pattern.
Triangle Type
This is boolean graph, where you see all black (or red for the .gif) when a textured triangle is drawn, and white when a untextured triangle is gone. It shows how the games order their triangles based on whether or not they are textured.