next up previous contents
Next: 18.1.3 Measuring Depth Complexity Up: 18.1.2 Finding Bottlenecks in Previous: 18.1.2.2 Geometry Bottlenecks   Contents

18.1.2.3 Rasterization Bottlenecks

Programs that cause bottlenecks at the rasterization (per-pixel) stage in the pipeline are fill limited. To test for bottlenecks in rasterization operations, shrink objects or make the window smaller to reduce the number of active pixels. This technique will not work if your program alters its behavior based on the sizes of objects or the size of the window. You can also reduce the work done per pixel by turning off per-pixel operations such as depth-buffering, texturing, or alpha blending. If any of these experiments speed up the program, it has a fill bottleneck. For more information, see ``Tuning the Raster Subsystem.''

Many programs draw a variety of things, each of which stress different parts of the system. Decompose such a program into pieces and time each piece. You can then focus on tuning the slowest pieces.

Since correct double buffering waits for the vertical retrace of the monitor before switching the buffer, you will only be able to time your application in units of the monitor refresh rate (e.g. 1/60 of a second), unless you run your tests in single-buffered mode. Single buffered behavior can be achieved with a double buffered visual by drawing to the front buffer. Screen clears and all the other normal operations can remain the same.

Table 8 provides an overview of factors that may limit rendering performance and the part of the pipeline to which they belong.


Table 8: Factors Influencing Performance
Performance Parameter Pipeline Stage
Amount of data per polygon All stages
Application overhead Application
Transform rate and geometry mode setting Geometry subsystem
Total number of polygons in a frame Geometry and raster subsystem
Number of pixels filled Raster subsystem
Fill rate for the current mode settings Raster subsystem
Duration of screen and/or depth buffer clear Raster subsystem



next up previous contents
Next: 18.1.3 Measuring Depth Complexity Up: 18.1.2 Finding Bottlenecks in Previous: 18.1.2.2 Geometry Bottlenecks   Contents
2001-01-10