Programs that create bottlenecks in the geometry (per-vertex) stage are termed transform limited. To test for bottlenecks in geometry operations, change the program so that the application code runs at the same speed and the same number of pixels are filled, but the geometry work is reduced. For example, if you are using lighting, call glDisable() with a GL_LIGHTING argument to temporarily turn off lighting. If performance improves, your application has a geometry bottleneck. For more information, see ``Tuning the Geometry Subsystem.''
On some of the faster hardware accelerators the bus between the CPU and the graphics hardware can limit the number of polygons sent from the application to the geometry subsystems. If removing the glColor3fv() or glNormal3fv() calls shows a speed improvement on such a system, the bus may be the bottleneck.