20,741
edits
(→Idea) |
|||
Line 69: | Line 69: | ||
== Approach == | == Approach == | ||
It's basically a form of feature-scaling: [[Feature Scaling]] | |||
We could expose most of the GL* info at the property tree level, and then use Nasal/propertylist rules (and/or SGConditions) to dynamically toggle features on/off during startup, i.e. sort of a better customiable initialization sequence. | |||
The easiest way to implement something like this would be supporting "data overlays", i.e. in the form of fgfsrc/preferences.xml files that are stored in $FG_ROOT/Profiles and automatically overlaid over default startup options once a certain GL vendor/make and GPU model are detected, e.g. by having: | The easiest way to implement something like this would be supporting "data overlays", i.e. in the form of fgfsrc/preferences.xml files that are stored in $FG_ROOT/Profiles and automatically overlaid over default startup options once a certain GL vendor/make and GPU model are detected, e.g. by having: | ||
* $FG_ROOT/GraphicsProfiles/NVIDIA | * $FG_ROOT/GraphicsProfiles/NVIDIA | ||
Line 81: | Line 80: | ||
* $FG_ROOT/GraphicsProfiles/Other | * $FG_ROOT/GraphicsProfiles/Other | ||
Each vendor-specific sub-folder could then contain graphics related xml overlays that will be loaded on top of the default startup options (i.e. those not customized/overriden by the user) - what that means is that the current hard-coded default settings in fg_init.cxx would need to be dynamically loaded during startup using the APIs from props_io.cxx. | Each vendor-specific sub-folder could then contain graphics related xml overlays that will be loaded on top of the default startup options (i.e. those not customized/overriden by the user) - what that means is that the current hard-coded default settings in fg_init.cxx would need to be dynamically loaded during startup using the APIs from props_io.cxx. | ||
The corresponding startup profiles could be either conventional PropertyList XML files, or support embedded Nasal/property-rule blocks to provide support for regex-matching etc. | |||
The corresponding startup profiles could be either conventional PropertyList XML files, or support embedded Nasal/property-rule blocks to provide support for regex-matching etc.<ref> {{cite web | |||
| url = http://forum.flightgear.org/viewtopic.php?p=275306#p275306 | | url = http://forum.flightgear.org/viewtopic.php?p=275306#p275306 | ||
| title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | | title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | ||
Line 89: | Line 88: | ||
| added = Feb 7th, 2016 | | added = Feb 7th, 2016 | ||
| script_version = 0.25 | | script_version = 0.25 | ||
}} | }}</ref> | ||
This is something where it would make sense to provide a benchmark and test various combination of settings on different systems and gather all results in a central database to determine a safe subset of settings that should work for most AMD/ATI, NVIDIA and Intel boards - note that the CrashRpt tool is already gathering feedback on crashes and sending that to a webserver, where it is stored in a database. | |||
<ref> {{cite web | |||
| url = http://forum.flightgear.org/viewtopic.php?p=275314#p275314 | | url = http://forum.flightgear.org/viewtopic.php?p=275314#p275314 | ||
| title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | | title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | ||
Line 101: | Line 98: | ||
| added = Feb 7th, 2016 | | added = Feb 7th, 2016 | ||
| script_version = 0.25 | | script_version = 0.25 | ||
}} | }}</ref> | ||
We could provide a <code>--disable-gpu-profiles</code> parameter to resort to the old/standard behavior, or require people to explicitly enable the new system via something like <code>--enable-gpu-profiles</code>, i.e. trying to pick an appropriate set of standard settings. | |||
The more difficult thing is fixing up subsystems that are not currently able to be reset/restarted with restarting FG as a whole | The more difficult thing is fixing up subsystems that are not currently able to be reset/restarted with restarting FG as a whole | ||
Note that the rendering settings dialog will already detect the INTEL substring and show a warning if appropriate | Note that the rendering settings dialog will already detect the INTEL substring and show a warning if appropriate | ||
<ref>{{cite web | |||
| url = http://forum.flightgear.org/viewtopic.php?p=275314#p275314 | | url = http://forum.flightgear.org/viewtopic.php?p=275314#p275314 | ||
| title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | | title = <nowiki>Re: Review of FG on reddit: xpost</nowiki> | ||
Line 115: | Line 112: | ||
| script_version = 0.25 | | script_version = 0.25 | ||
}} | }} | ||
</ref> | |||
== Implementation == | == Implementation == |