I tested my engine using OGL on a P4 with a Geforce 4 MX. The FPS was constant 100 in 800x600, but on certain poins it dropped mysteriously to 50. When I turned VSync out, the problem remained, sometime the FPS was exactly halved for no good reason.
After performing a lot of test, I found out that the FPS drops enormously when OGL clippes an alpha blended polygon (4 vertices) against the FOV.
This is not because of low bandwith or to many triangles/pixels. I just rendered 1 alpha blended quad with no textures! When it clipped against the FOV, the FPS dropped from 100 to 20-40. This also happens when rendering a low-poly (100) scene in wireframe.
In window mode, this only happens when the viewport is large, like 800x600.
In fullscreen mode it happens at any resolution.
What’s going on? I use standard OGL 1.1 calls. The single alpha blended polygon was even rendered with the simplest OGL 1.0 calls, glPolygon and glVertex!
Only low poly primitives cause this behavior, large polygon batches (curved surfaces) don’t cause the FPS to be halved.