20,741
edits
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 == |