From: <tho...@jy...> - 2010-09-29 14:25:14
|
Hello, with significant help, I've recently succeeded to compile my own GIT binary. Initially this was very slow, in the mean time I've been told some flags for the compiler which I've been using to recompile OpenSceneGraph, Simgear and Flightgear which improved the available framerate by a factor two. Previously I've been using a pre-built Linux 2.0.0 binary and OpenSceneGraph 2.9.6 by Jon Stockill (of packages linked from the website, FlightGear-2.0.0-i686-1_slack11.0.tgz) which has been working very well for me. I've been developing, testing and optimizing the local weather package mainly with this binary. My self-compiled GIT binary and OSG 2.9.10 is now *almost* as fast - most of the time I guess it has about ~10-15% less framerate - with one important exception: Loading models into the scenery. Which means that as long as I have a given cloud configuration in the scenery, I reach even with wind-drift on above 34+ fps in a test situation (noon Cumulus layer around Las Vegas seen from the F-14b). But this changes whenever a cloud model is loaded. Local weather loads clouds by writing into the /models/ node of the property tree (pretty much the way the tanker.nas script generates a custom tanker). With my 2.0.0 binary, I have a noticeable drop down to 15+ fps when loading the initial configuration of ~1000 cloudlets. Once that is done, cloud are loaded from a buffer at a speed of 1 cloudlet per frame. This doesn't lead to any detectable drop in framerate. Not so with my GIT binary: Loading of the initial cloud configuration brings me down to 4 fps, and every time (!) a cloud is loaded from the buffer my framerate drops from 34+ to something like 20+ for a moment - which makes the whole experience rather jerky. I am sure that this difference is not caused by differences in the speed of writing from Nasal into the property tree (cloud drift writes several hundred properties per frame, but doesn't slow me down below 30 fps, loading a new model has far less writing processes) but by whatever the Flightgear core does after the /models/ node has been written to bring the model into the scenery. This always has been a bottleneck for me even in 2.0.0 which I have addressed by buffering the clouds - but with the GIT binary, it basically is the one issue which determines the speed of the local weather system. I'm pretty puzzled as to why this would be so, since it is working fine with my prebuilt 2.0.0 binary and OSG. Thus my question: Would Jon be so kind to let me know with what set of options the prebuilt slackware binaries and OSG libs were compiled, so that I can check if what I see is related to the way I compile? Or does anyone know if the code responsible for loading models into the scenery has been changed since 2.0.0 and if that could account for the difference in performance? Or does anyone have a different theory as to what is happening? (The good thing is that apparently there is a solution, because it does work smooth and well in 2.0.0) * Thorsten P.S.: I've also experienced that the Landmass effect shader is a complete show-stopper for my system - it brings me from 34+ fps down to 7 fps - is that normal? |