FlightGear Newsletter November 2015: Difference between revisions

Jump to navigation Jump to search
More cleanup
(Some cleanup)
(More cleanup)
Line 80: Line 80:


== Troubleshooting reset/re-init ==
== Troubleshooting reset/re-init ==
[[File:Reset-reinit-control-panel.png|thumb|reset/reinit control panel for regression testing purposes implemented using Nasal & Canvas]]
[[File:Reset-reinit-control-panel.png|thumb|Reset/Re-init control panel, implemented using Nasal & Canvas, for regression testing purposes.]]


FlightGear does not currently support saving/loading flights or reliably switching between aircraft at run-time, this is extensively discussed at [[FlightGear Sessions]].  
FlightGear does not currently support saving/loading flights or reliably switching between aircraft at run-time (this is extensively discussed at [[FlightGear Sessions]]). [[Reset & re-init]] is an effort to refactor the FlightGear initialization process so that resetting and repositioning is supported, without having to exit or restart FlightGear. Currently, this is exposed via the Canvas-based [[Aircraft Center]], but is considered broken or fragile at best by most core developers.


[[Reset & re-init]] is the effort to refactor the FlightGear initialization process such that resetting/repositioning is supported, without having to exit/restart FlightGear. Currently, this is exposed via the [[Aircraft Center]] (Canvas based), but is considered broken by most core developers (fragile at best).
The core developers are aiming to find out the dependencies of different subsystems, and re-factor them so that more and more subsystems can be made optional (analogous to [[FlightGear Run Levels|run-levels]]), enabling them to be dynamically removed and re-added at run-time. This will be particularly important to untangle implicit or hard-coded dependencies among the different subsystems, and will be one of the key tasks to move certain subsystems into dedicated [[High-Level Architecture]] (HLA) {{wikipedia|High-level architecture#Common HLA terminology|federates|noicon=1}}.


In addition, core developers are hoping to better establish data dependencies between different subsystems, so that more and more subsystems can be made optional (analogous to [[FlightGear Run Levels|run-levels]], to be dynamically removed and re-added at run-time.  This will be particularly important to untangle implicit/hard-coded dependencies among different subsystems, and will be one of the key-tasks to move certain subsystems into dedicated HLA federates.
One of the long-term goals is to provide a so called "[[FlightGear Headless|headless]]" mode so that certain features/subsystems (unrelated to graphics) can be better tested in isolation. An example would running FlightGear in an automated fashion on the [[FlightGear Build Server]], which could help increasingly automate the release process and related regression testing.


One of the long-term goals here is to provide a so called [[FlightGear Headless|headless]] mode so that certain, non-graphics related, features (=subsystems) can be better tested in isolation, e.g. in an automated fashion on the [[FlightGear Build Server]], which could help increasingly automate the build/release process, but also related regression testing.
The other goal is to increasingly modularize FlightGear by using HLA and split off the simulation loops (see also [[FGViewer]]), as well as supporting different renderers (such as [[Rembrandt]] and [[ALS]]), scenery engines (e.g., standard and [[osgEarth]]) and weather engines, in a fashion similar to how FlightGear already supports different FDM engines ([[JSBSim]] and [[YASim]]). HLA will make it possible for certain subsystems to be moved to dedicated cores by using separate threads or even processes, meaning that certain subsystems may even be able to be on a different computer, in a distributed setup.


The other goal here being to increasingly modularize FlightGear by using [[HLA]] (high-level architecture), and splitting off the simulation/rendering loops (see [[FGViewer]]), as well as [Supporting multiple renderers]] (think Rembrandt/ALS), and scenery engines (standard and osgEarth), analogous to how FlightGear already supports different FDM engines (JSBSim and YASim), but also different weather engines and rendering engines (standard/Rembrandt, ALS). HLA will make it possible for certain subsystems to be moved to dedicated cores by using separate threads or even processes, which also means that certain subsystems may even be running on a different computer, in a distributed setup.
The underlying requirement that these efforts share is that there needs to be a much better re-initialization process, with no hard-coded assumptions about running subsystems or initialization order.


The underlying requirement that these efforts share is that there needs to be a much better re-/initialization process, so that there are no hard-coded assumptions about running subsystems or initialization order.
For the time being, however, many of these efforts are not yet completely functional, so more feedback and data are needed.


For the time being, many of these efforts are not yet completely functional, so more feedback and data are needed.
You can help this effort by running the relevant APIs and providing GDB (GNU Debugger) backtraces and bug reports (or [[CrashRpt|crash reports]] if you have Windows) of any segmentation faults that occur.


This article describes the lower-level features that are needed to exercise/test the corresponding reset/re-init related APIs, so that contributors can be provide actionable bug reports.
''Find out more at [[Howto:Reset/re-init Troubleshooting]].''
 
People running the code shown below should be prepared to trigger segfaults, and should ideally be able to provide gdb backtraces (if you are on Windows, please send [[CrashRpt|crash reports]].
 
For testing purposes, it does make sense to run FlightGear using the minimal startup profile, with graphics/rendering disabled using [[Draw masks]].
 
Learn more at [[Howto:Reset/re-init Troubleshooting]]
 
<references/>
 
== About dragons, pterosaurs, a BirdFDM and goats ==
{{Stub}}


== In the hangar ==
== The FlightGear Dragon ==
{{#ev:youtube|P-bP93JfqLQ}}
{{#ev:youtube|P-bP93JfqLQ}}
== In the hangar ==


== Scenery corner ==
== Scenery corner ==

Navigation menu