PDA

View Full Version : weird program slowdown



JanHH
05-31-2004, 04:00 PM
Hello,

my program behaves strange: It runs faster with a slower gfx board, and this is annyoing, and I have no idea what goes wrong.

To be more precise: I got two neary ldentical computers (Athlon XP 2000+, Mainboard Elitegroup K7S5A / K7S6A, 512 MB ram, suse linux 8.2, nvidia linux driver 53.36), one has got a geforce fx 5700, the other one a geforce fx 5900 xt, both 128 mb. On both, the same program is running with an identical database and identical configurations. The scene looks like this:

http://de.geocities.com/westphj2003/a.jpg
http://de.geocities.com/westphj2003/b.jpg
http://de.geocities.com/westphj2003/c.jpg
http://de.geocities.com/westphj2003/d.jpg

(if the links do not work, just hit enter in the browsers url line, then they should do, this is another weird error ;) ).

What happens is that when I reduce the programs functionality by commenting out the various drawing calls, the computer with the fx 5900 xt is faster, but when drawing all there is in the scene, it gets about 20-30 % slower than the one with the 5700. It is like this:

DrawGround();
//DrawSky();
//DrawObjects();
//DrawTrees();

5900 about 100% faster than 5700

DrawGround();
DrawSky();
DrawObjects();
//DrawTrees();

5900 about 60% faster than 5700

DrawGround();
DrawSky();
DrawObjects();
DrawTrees();

5900 about 20-30% SLOWER than the 5700.

Ground and objects are drawn as display lists, the trees are organized as quad tree with every "final" node containing 200 faces. There is one version with the trees rendered with immediate opengl calls (glBegin(GL_QUADS) ... glEnd()) and one with this happening inside of a display lists (one for each "final" quadtree node), but both versions behave the same (dl a little faster than immediat, but nonetheless on the 5900 slower than on the 5700).

I do not even have an idea what could be going wrong, or where to search.. but it is annoying. Does anyone have an idea?

Thanks
Jan

zeckensack
05-31-2004, 06:54 PM
Maybe you borked your BIOS settings. Look for AGP specific stuff. "Assign IRQ for VGA" and "AGP aperture size" to name a few.

Adrian
05-31-2004, 07:07 PM
The 5900xt has 22.4Gb/sec of memory bandwidth and can transform 262 million vertices/sec.

The 5700 has 8.8Gb/sec of memory bandwidth and can transform 356 million vertices/sec.

So you have more fillrate with the 5900xt but more vertex transform power with the 5700.

Drawing the trees might be changing your app from being fill rate limited to vertex transform limited.

JanHH
05-31-2004, 07:29 PM
zeckensack: wouldn't then everything have to slow down, not only the trees? I checked the agp settings and everything seems to be ok.

Adrian: This sounds very plausible. Most of the trees's faces are very small, but there are several thousands of them.

Thanks guys :) . So at least now I know that everything is ok with both the program and the gfx cards.