David Megginson wrote:
> Norman Vine wrote:
> > Win2k PIII 733 256meg Geforce2 GTS 32 meg Latest certified WQL GFX
> > drivers from NVIDIA at default startup location no HUD no Panel
> >
> > Latest changes        ~17fps
> > your original code    ~32 fps
> > no dynamic objects  ~75fps
>
> Here's what I get sitting still at the default location, no panel or
> hud, with a GeForce2Go, 32MB, 800x600x32, with the latest Linux
> drivers (I'm using the latest plib CVS, but I assume you are as
> well):
>
>  no dynamic objects: ~40fps
>  dynamic objects (latest code): ~34fps
>  dynamic objects (old code): ~32fps

I actually see numbers that are more in line with Norman's (Athlon
1800XP, Geforce 3 Ti200, 1280x1024 32bpp, current code as of last
night): the ~70 fps I see without dynamic scenery at startup at SFO
drops to 40 or so when I turn the dynamic object on.

This effect isn't severe, but it's enough to be worrisom.  Certainly
the dynamic scenery is taking up a significant chunk of the current
render time, which makes it a good candidate for optimization.

This is something that I think we need to look at more generally:
right now, FlightGear is making rather poor use of the graphics
hardware on fast cards.  There was a thread on plib recently that
showed that the current tile renderer is rendering lots of tiny
ssgLeafs instead of a single large buffer.  This tickles a bad code
path through ssg, which wants to render each ~10 vertex leaf from a
separate vertex array (drivers don't optimize this case well -- the
"fix" being discussed was to use plain old glVertex (!) calls, which
turn out to be faster for such small objects).

Almost everything we render (other than the cockpit and model
animations) is static geometry.  In principle, we should be able to
ship this off to the card in a big chunk.  In practice, though, we end
up no better than 1990-era code, which sent each vertex across the bus
in a separate transaction.  As we start adding geometric complexity to
the scene, we really should look hard about how it's done.  I see some
support in plib for using display lists, although it looks like it's
#ifdef'd out.

Andy

-- 
Andrew J. Ross                NextBus Information Systems
Senior Software Engineer      Emeryville, CA
[EMAIL PROTECTED]              http://www.nextbus.com
"Men go crazy in conflagrations.  They only get better one by one."
 - Sting (misquoted)


_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to