Re: [Flightgear-devel] Sea color

2012-05-11 Thread Vivian Meazza
Thorsten

 
  Does the problem go away if you set local-weather/dynamics-loop-flag=1
  from the property browser *after* Advanced Weather is started?
  Does the problem go away if you set local-weather/timing-loop-flag=1
  from the property browser *after* Advanced Weather is started?
  Does the problem go away if you set local-weather/effect-loop-flag=1
  from the property browser *after* Advanced Weather is started?
  Does the problem go away if you set
  local-weather/interpolation-loop-flag=1 from the property browser
  *after* Advanced Weather is started?
  Does the problem go away if you set
  local-weather/housekeeping-loop-flag=1 from the property browser
  *after* Advanced Weather is started?
  Does the problem go away if you set local-weather/tile-loop-flag=1
  from the property browser *after* Advanced Weather is started?
 

Tested extensively today, and the short answer is no. There is some
improvement as the flags are successively set to 0, but Advanced Weather
never becomes as smooth as Basic Weather (and that's not without staggers of
its own).

The longer answer is that the symptoms are readily seen in the System
Performance Monitor. There are large differences between the worst and
average  frame rates, exceeding 50%. In contrast, the Basic Weather
difference is approximately 10%, with some occasional excursions beyond
this. Switching from Basic Weather to Advanced, I see that the  submodule
events changes dramatically. With Basic Weather, the numbers in this
submodule are consistent with other submodules. With Advanced, events stands
out from the rest: not only are the numbers much larger than any of the
others but they fluctuate wildly from sample to sample. The total time spent
in event during a sample are 3 times that spent in the next largest,flight
which is the FDM. It is my understanding that submodule events is where
much of the work for nasal is done: listeners, loop timers and the like. I
have placed todays test results here:

http://dl.dropbox.com/u/57645542/stagger-data.htm

What can be done? I cannot speak authoritatively here - perhaps some expert
can jump in. Personally I would try trading in some framerate for
smoothness, and let all loops run at maximum frame rate. I think at least
some of the problem is load variation as various loop cut in. Loops with
diverse time intervals must coincide from time to time; perhaps we are
seeing that. I did try starting loops at random intervals in AI Models at
one time, but that seemed to make things worse. We know that for loops do
not help, perhaps those loops can be advanced on index per frame.  We know
we have problems with Garbage Collection.

 I suppose the bottom line is that this just might beyond what Nasal was
designed for, and we need to migrate to C++.

HTH

Vivian



--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] Sea color

2012-05-11 Thread Renk Thorsten
 Tested extensively today, and the short answer is no. There is some
 improvement as the flags are successively set to 0, but Advanced Weather
 never becomes as smooth as Basic Weather (and that's not without  
 staggers of
 its own).
(...)
  I suppose the bottom line is that this just might beyond what Nasal was
 designed for, and we need to migrate to C++.

The problem with that consequence is: As you switched all loops off, the Nasal 
part of Advanced Weather ceased to run completely and all that's left is the 
same cloud-generating functionality which is responsible for Basic Weather (C++ 
and shader work). If killing all Nasal did not solve the problems, then they 
can't be caused by Nasal, and porting to C++ will not fix them.

* Thorsten
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


[Flightgear-devel] The (never ending) story about Berlin-Brandenburg airport

2012-05-11 Thread Martin Spott
I'm not sure wether that's funny or sad - at least it's extremely
rare  ;-)

  http://foxtrot.mgras.net/bitmap/FGFS/EDDB-NT.png

Cheers,
Martin.
-- 
 Unix _IS_ user friendly - it's just selective about who its friends are !
--

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] Sea color

2012-05-11 Thread ThorstenB
On 11.05.2012 10:21, Renk Thorsten wrote:
 The problem with that consequence is: As you switched all loops off,
 the Nasal part of Advanced Weather ceased to run completely and all
 that's left is the same cloud-generating functionality which is
 responsible for Basic Weather (C++ and shader work). If killing all
 Nasal did not solve the problems, then they can't be caused by Nasal,
 and porting to C++ will not fix them.

Not quite true. A significant part of Nasal-related frame rate impact is 
caused by garbage collection. Its delay/jitter only depends on the 
number of Nasal objects and their references which need to be searched. 
Increasing the number of Nasal objects (code+data) existing in memory 
also increases the delay.

The amount of Nasal code which is actually being executed only 
influences the g/c frequency, i.e. whether the effect is visible every 
few seconds vs several times per second.

This is why we are loading large Nasal modules, like advanced weather, 
on demand only (= only when feature enabled). We're not unloading 
objects when disabling a feature though - this usually requires 
restarting fgfs. This should be remembered when comparing such features 
(i.e. restart fgfs after disabling advanced weather etc).

cheers,
Thorsten

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [SPAM] Re: Sea color

2012-05-11 Thread Anders Gidenstam
On Fri, 11 May 2012, ThorstenB wrote:

 Not quite true. A significant part of Nasal-related frame rate impact is
 caused by garbage collection. Its delay/jitter only depends on the
 number of Nasal objects and their references which need to be searched.
 Increasing the number of Nasal objects (code+data) existing in memory
 also increases the delay.


It might be interesting to try my old patch that adds a separate thread 
that tries to run the Nasal GC when the main loop is doing other things 
and see if that gives any improvement. (It runs the GC for every frame 
which is rather wasteful, but I have idle cores here anyway.)

http://sleipner.gidenstam.org/users/anders/FlightGear/sg-gc-3.diff
http://sleipner.gidenstam.org/users/anders/FlightGear/fg-gc-3.diff

It doesn't solve the bigger problem of the current Nasal GC needing to
run uninterrupted and in mutual exclusion - but I see very few GC runs in 
the main loop here (the patch prints ** Nasal GC in main thread ** 
in the console when that happens) except during startup.

IIRC it does not report when a main loop Nasal context has to 
wait for the GC thread to finish a GC pass but I could look into adding 
that when I have time - it would be interesting to know.

As far as I know the code has not been tested on Windows.

Cheers,

Anders
-- 
---
Anders Gidenstam
WWW: http://gitorious.org/anders-hangar
  http://www.gidenstam.org/FlightGear/

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [SPAM] Re: Sea color

2012-05-11 Thread James Turner

On 11 May 2012, at 19:59, Anders Gidenstam wrote:

 It doesn't solve the bigger problem of the current Nasal GC needing to
 run uninterrupted and in mutual exclusion - but I see very few GC runs in 
 the main loop here (the patch prints ** Nasal GC in main thread ** 
 in the console when that happens) except during startup.
 
 IIRC it does not report when a main loop Nasal context has to 
 wait for the GC thread to finish a GC pass but I could look into adding 
 that when I have time - it would be interesting to know.
 
 As far as I know the code has not been tested on Windows.

I'd be happy to add this, especially made conditional at runtime (which looks 
possible)

One comment is, it would be nice to use the SimGear locking / thread 
primitives, but that's a pretty trivial change.

I did look at incremental GC for Nasal last year, but couldn't find a 'simple 
enough' generational algorithm. Still happy for someone else to try - the Nasal 
GC interface is very clean and self-contained, so quite easy to experiment with 
different GC schemes.

James


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] Sea color

2012-05-11 Thread Vivian Meazza
ThorstenB

 On 11.05.2012 10:21, Renk Thorsten wrote:
  The problem with that consequence is: As you switched all loops off,
  the Nasal part of Advanced Weather ceased to run completely and all
  that's left is the same cloud-generating functionality which is
  responsible for Basic Weather (C++ and shader work). If killing all
  Nasal did not solve the problems, then they can't be caused by Nasal,
  and porting to C++ will not fix them.
 
 Not quite true. A significant part of Nasal-related frame rate impact is
caused
 by garbage collection. Its delay/jitter only depends on the number of
Nasal
 objects and their references which need to be searched.
 Increasing the number of Nasal objects (code+data) existing in memory also
 increases the delay.
 
 The amount of Nasal code which is actually being executed only influences
 the g/c frequency, i.e. whether the effect is visible every few seconds vs
 several times per second.
 
 This is why we are loading large Nasal modules, like advanced weather, on
 demand only (= only when feature enabled). We're not unloading objects
 when disabling a feature though - this usually requires restarting fgfs.
This
 should be remembered when comparing such features (i.e. restart fgfs after
 disabling advanced weather etc).
 

Thanks for that explanation. In the light of this I did some more testing.

Switching from Basic to Advanced Weather increases the time spent in the
events submodule from a stable 44 ms to over 1000 ms unstable. Setting all
flags to 0 reduces this to 90 ms. Switching back to Basic, the time drops to
75. 

Adding more nasal loops into the equation by lowering the flaps and gear  on
the Seahawk, I think I can see the effect as a slight increase in the time
spent in the events submodule.

I'm not clear how deleterious having one submodule taking significantly more
time than any other might be. If that is a problem, then large nasal script
are not a good idea even if we only enable them on demand. The instability
is clearly not a good thing, but is this a GC problem? If it is, then again,
large nasal scripts are not good. 

Perhaps James can fix the GC issue, and this issue will disappear. I hope
so.

Vivian 








--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


[Flightgear-devel] model-combined-shader

2012-05-11 Thread syd adams
Hi guys,
Is it just me or has the model-combined shader stopped reflecting ?
Moving the model slider seems to have no effect now .
Syd

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel