Graphics card profiles: Difference between revisions

Jump to navigation Jump to search
Line 69: Line 69:


== Approach ==
== Approach ==
{{DeQuote}}
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.


{{FGCquote
|1= that's basically a form of feature-scaling: [[Feature Scaling]]
Like you say, we could expose most of the GL* info at the property tree level, and then use Nasal/propertylist rules 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.
 
|2= {{cite web
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>
}}


{{FGCquote
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.
|1= 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
|2= {{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>
}}
 
{{FGCquote
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.
|1= We could provide a --disable-gpu-profiles to resort to the old behavior, or require people to explicitly enable the new system via something like --enable-gpu-profiles, 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
|2= {{cite web
<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 ==

Navigation menu