Next: 19. Portability Considerations
Up: 18.8 Taking Timing Measurements
Previous: 18.8.2 Achieving Accurate Timing
To benchmark performance for a particular code fragment, follow these steps:
- Determine how many polygons are being drawn and estimate how many pixels
they cover on the screen. Have your program count the polygons when you read
in the database. To determine the number of pixels filled, start by making a
visual estimate. Be sure to include surfaces that are hidden behind other
surfaces, and notice whether or not backface elimination is enabled. For
greater accuracy, use feedback mode and calculate the actual number of
pixels filled or use the stencil buffer technique described in
Section 18.1.3.
- Determine the transform and fill rates on the target system for the mode
settings you are using. Refer to the product literature for the target
system to determine some transform and fill rates. Determine others by writing
and running small benchmarks.
- Divide the number of polygons drawn by the transform rate to get the
time spent on per-polygon operations.
- Divide the number of pixels filled by the fill rate to get the time
spent on per-pixel operations.
- Measure the time spent in the application. To determine time spent
executing instructions in the application, stub out the OpenGL calls and
benchmark your application.
This process takes some effort to complete. In practice, it is best to make a
quick start by making some assumptions, then refine your understanding as
you tune and experiment. Ultimately, you need to experiment with different
rendering techniques and do repeated benchmarks, especially when the
unexpected happens.
Next: 19. Portability Considerations
Up: 18.8 Taking Timing Measurements
Previous: 18.8.2 Achieving Accurate Timing
David Blythe
1999-08-06