Fill rate

Hi there,

Not typical lwjgl or jogl, but a general openGL performance question so I thought I’d post it here.
I’m running into some fill rate related performance problem in Cosmic Trip. When I raise the resolution, framerate dramatically drops.
Running CT in 1024x768, framerate drops below 60 fps on my video card (GF4 Ti4200) which I think is too low for my video card (when turning on vsync at 60hz refresh, framerate is stuck at 30fps which is unacceptable).
Running it at 640x480, framerate is ~140 fps so the problem seems fill rate related to me.
I think I’ve seen many more polygons on screen at higher fps on even my previous S3 savage video card in commercial titles so I wondering if there’s any techniques I should be aware of to keep my rendering speed up?
I’m just simply rendering quads and triangles. I suppose using display lists for example won’t help fill rate or am I wrong?
Any suggestions except lowering the number of triangles being rendered?

Thanks,
Erik

Try to sort everything non-transparent from front to back. It should help if you are fill rate limited. Alpha blending is very bad for fill rate - maybe you can try to decrease size/number of transparent particles and see if it helps ?

Hey, sorting non-blended things from front to back helped a lot! Framerate went up from ~55 to ~75!

Thanks :smiley:

That’s because the video card’s natural(fastest) rendering order is front to back.
Get yourself a TBDR and you wont have to worry about this sort of thing.

The only other tip for improving fill rate I know of is to use the alpha test to reject blended fragments that are near to very transparent. Using a test value close to zero can eliminate a whole bunch of fragments that barely show in the final image.

Looking at the screenshots this might be worth trying, you certainly have a lot of particles flying around. Obviously if the test value is too high it starts being noticable, but it might be nice to add as some sort of quality option for slower machines.

[quote]That’s because the video card’s natural(fastest) rendering order is front to back.
Get yourself a TBDR and you wont have to worry about this sort of thing.
[/quote]
Whats a TBDR? ???
Anyway, it’s better that I worry about this sort of thing now than others playing my game don’t you think? :wink:

Good hints, thanks! There’s certainly a lot of blending going in, so it might help.

Erik

Unless TBDR refers to a tile-based renderer (like the Kryo and Dreamcast graphics cards) I have no idea. Those chips actually do a divide-and-conquer method of sorting all the polys in a scene to get the correct rendering order, and so don’t need a z buffer or suffer from any overdraw problems.

Orangy is right,

TBDR stands for Tile Based Deferred Renderer.

Although its Kyro not Kryo, although I kept calling it that when I when for an interview at Power VR to write display drivers for it [hey it looked like a frozen dead dude on the cover box :smiley: ]. That was just before ST Micro Electronics ditched them - even though they were making a profit with them - throwing Power VR into oblivion. Although they are supposed to have a DX9 peice out and about…

Heres a short url describing the process, translated from German: * here * My understanding is that they own a load of patents on the subject.

I thought the Dream Cast had fantastic picture quality and it supported 60Hz on a UK telly (Soul Calibur was arcade perfect). Pitty it boomed.


Woz.