Howto:Reset/re-init Troubleshooting: Difference between revisions

Jump to navigation Jump to search
Line 104: Line 104:


In addition, it will be much easier for developers to do regression testing and benchmarking once subsystems can be completely disabled, a long-standing feature request (see [[FlightGear Headless]]); it would also help to simplify, and to some extent even automate, release preparations.
In addition, it will be much easier for developers to do regression testing and benchmarking once subsystems can be completely disabled, a long-standing feature request (see [[FlightGear Headless]]); it would also help to simplify, and to some extent even automate, release preparations.
{{FGCquote
|1= thanks to all the reset/re-init work, the C++ dependencies are fairly straightforward to decouple these days, I just made the tile manager optional in under 10 minutes, i.e. all the scenery/sky/stars is gone now - which means that FG is now utiliing less than 140 MB of RAM here using this "startup mode".
So this about more than just "FGCanvas": It will make troubleshooting so much more straightforward, and we can also explore feature-scaling and run-time benchmarking once this works.
Currently, I'd even consider restructuring initialization to always boot up like this, because it's the safest possible subset of subsystems for now - i.e. roughly a dozen subsystems that basically stand no chance of "crashing" the sim. And from then on, additional initialization could be handled by Nasal obviously - and scripts could even scale up/down, depending on hardware support and features.
With 14 subsystems remaining, I am now getting 650 fps when showing the Canvas GUI (Aircraft Center) here.
As for C++ changes, I have come to the conclusion that this could be greatly simplified by making the whole aircraft shebang optional - i.e. aircraft as such, and all its related subsystems, e.g.:
*  view manager
*  FDM (obviously)
*  Autopilot, Property Rules
*  Route Manager
*  history
*  flight recorder
These are currently hard-coded as separate SGSubsystem instances in fg_init.cxx - even though this is conceptually a headache, simply because these should be all handled by a single SGSubsystemGroup and wrapped inside it.
|2= {{cite web
  | url    = http://forum.flightgear.org/viewtopic.php?p=214211#p214211
  | title  = <nowiki>Re: FGCanvas Experiments & Updates</nowiki>
  | author = <nowiki>Hooray</nowiki>
  | date  = Jul 6th, 2014
  | added  = Jul 6th, 2014
  | script_version = 0.23
  }}
}}


== Fgcommands ==
== Fgcommands ==

Navigation menu