The graphics pipeline consists of three conceptual stages. All three parts may be implemented in software or parts of the pipeline may be performed by a hardware graphics accelerator. The conceptual model is useful in either case: it helps you to know where your application spends its time. The stages are:
The amount of work required from the different pipeline stages varies depending on the application. For example, consider a program that draws a small number of large polygons. Because there are only a few polygons, the pipeline stage that performs geometry operations is lightly loaded. Because those few polygons cover many pixels on the screen, the pipeline stage that does rasterization is heavily loaded.
In this example, you must speed up the rasterization stage, either by drawing fewer pixels, or by drawing pixels in a way that takes less time by turning off modes like texturing, blending, or depth-buffering. In addition, because spare capacity is available in the per-polygon stage, you may be able to increase the workload at that stage without degrading performance. For example, use a more complex lighting model, or define geometries such that they remain the same size but look more detailed because they are composed of a larger number of polygons.