Weird performance

I have built a Shader program which it transforms a quad into a circle. In opengl is specified the quad and is sent to the Shaders the center of the quad and the radio as uniforms. In the FS it resolves if each fragment is inside the radio (apply the color) or outside (discard). It works ok.

I tried this drawing 100 circles in a P4 2,4 Ghz, 1 GB RAM and Geforce 6800 AGP with 2600 FPS… After that, I try in a 4coresx3Ghz (only 1 works), 8 GB RAM and 2x(SLI) Geforce 8800 PCI Express with 1300 FPS… How can I obtain this? With the first computer if I am very near to the spheres the performance falls until 600 FPS but with the second one the performance always is the same, far and near… Any idea?

I will put more information this week end when I have more data.

isn’t this to be expected? A different generation gpu with different drivers handle the cpu-side setup load differently, but gpu is powerful enough to smirk at fillrate differences.
Not to mention SLI throws any expectations for quick-starts (that’s why you get 1300 fps, not 2600).

Get your scene+postprocessing complex enough to fall to 100-200fps, and then compare.

No, I didnt expected that result, I thought the performance would be much better in a better machine. I have created the program for each machine and i have tried with different libraries (glut32, glaux, free glut) (glew and GL_ARB_shading_language_100) but the result is the same.

The main differences between graphic cards are GL2 and AGP for the first one, GL3 and PCI-E.

I imagine that the performance in the second machine does not fall when circles are nearer because gf8 have more fragment processors so the number of fragments is not a problem… Then I think the second machine has to be limited by the CPU in any way. To find out what is limiting, it would help me to improve the FPS.

first machine -> 24 FPS
second machine -> 18 FPS

That is what I would call weird…

If I generate the spheres by glutSolidSphere, it is

first machine -> 7 FPS
second machine -> 15 FPS

That is a expected result