20,741
edits
m (→Objective) |
|||
| Line 6: | Line 6: | ||
Obviously, FlightGear has drastically evolved since the early days of FGBenchmark, so lots of benchmarking metrics can now be gathered, even without touching the C++ source code and without using any external tools or introducing other platform-specific dependencies. Basically, a simple form of regression testing or benchmark (unit tests) can now be implemented directly through FlightGear and Nasal scripting. Technically, the main restrictions are currently: | Obviously, FlightGear has drastically evolved since the early days of FGBenchmark, so lots of benchmarking metrics can now be gathered, even without touching the C++ source code and without using any external tools or introducing other platform-specific dependencies. Basically, a simple form of regression testing or benchmark (unit tests) can now be implemented directly through FlightGear and Nasal scripting. Technically, the main restrictions are currently: | ||
* FlightGear expects an aircraft to be selected at startup, so that benchmarks could only be self-contained if they're are provided as a custom set of aircraft-set.xml files | * FlightGear expects an aircraft to be selected at startup, so that benchmarks could only be self-contained if they're are provided as a custom set of aircraft-set.xml files, simply because [[FlightGear Sessions|we cannot yet switch aircraft at runtime]]. Thus, the simplest option is simply creating benchmarks using certain aircraft and providing a "aircraft-benchmark-set.xml" file, the ufo should work well for starters. | ||
* the | * the fgfsrc, autosave.xml preferences.xml files are user-specific and cannot currently be overridden by a benchmark, however these files may contain tons of settings that might affect performance/benchmarks - which needs fixing, to ensure that a 100% correct setup can be replicated by a benchmark. Basically, we could simply add a new command-line switch to ignore these local files in $FG_HOME/$FG_ROOT and instead refer to a corresponding PropertyList-section embedded in the aircraft-set.xml file, so that user-specific settings are not loaded (well, except for obvious candidates like --fg-root= and some others) | ||
* FlightGear always expects a fully interactive GUI session to be running, see [[FlightGear Headless]] | * FlightGear always expects a fully interactive GUI session to be running, see [[FlightGear Headless]] | ||
* Many settings are runtime-configurable and can be changed through the property tree (or fgcommands) while running FlightGear, some others still require a [[Reset & re-init|full simulator reset]] - this applies in particular to [[FlightGear Run Levels|non-optional subsystems]] but also a bunch of rendering related settings | * Many settings are runtime-configurable and can be changed through the property tree (or fgcommands) while running FlightGear, some others still require a [[Reset & re-init|full simulator reset]] - this applies in particular to [[FlightGear Run Levels|non-optional subsystems]] but also a bunch of rendering related settings | ||