How do they get 400 FPS in Q3?


I just read an article, which claims, that they got 400 FPS in their Q3 benchmark. How is that possible?
Ok, i only got an Athlon 1.3 GHz and a Gf 4, but their pc was not THAT much better.
When i put a single poly on the screen i get 71 FPS (V-Sync disabled ! 100 sure !). When i rotate, so that the poly vanishes from the screen, i get around 1000 FPS.
Well, the Q3 engine does A LOT more than only showing a single poly. So how should it be possible, that anyone gets 400 FPS?

I really don´t get this. I can render around 8000 triangles diffuse lit, with bumpmapping, specular lighting, multisampling, trilinear filtering, bla bla bla at a speed of 47 FPS (102476832). But i cannot display a single poly with more than 70 FPS? And id can? Does my app speed up, when i register as a developer on nVidias homepage?

I´m frustrated.


Hi !

If you only get 71 FPS with vsync disabled and you only render a triangle with no fancy stuff enabled, then the only thing I can come up with is that you are rendering in software mode (checked that ?), if you try to use some wacky options in the rendering conext this might happen.


No, it´s hardware acclerated. It´s really strange. As i mentioned above i can do lots of fancy stuff at quite a high-frame rate, but if i don´t do anything fancy, it does not really speed up. It´s all the same app.


Have you tesselated the polygon and placed into a display list?.

you dont have a sleep() or similar instruction in your program? it really seems like there are some OS or CPU dependent code that takes the time.

Yes, that was what i was thinking, too. I was checking all my code for some gl calls, which might need to sync the gfx-card with the CPU, but i couldn´t find them.

Anyway, i found the bug. I created a gl context which supports multisampling. Although i get a hw-accelerated context with 24 Bit depth, 8 stencil, 32 color (so all standard formats), i get a horribly slow framerate afterwards. Even when i don´t enable multisampling! Enabling multisampling slows the app down only a few fps, but simply HAVING a context, which supports it seems to be the worst thing you can do.

After i initialized my window without a multisampling context, i got 1200 fps. And my real app with lighting etc. speeded up from 40 FPS to 120!

Thanks for your replies.