diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 2650be4c88..fd3f997525 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -6173,8 +6173,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP // Threshold for body rotation to be a significant agent update // use the abs of cos - private const float QDELTABody = 1.0f - 0.0001f; - private const float QDELTAHead = 1.0f - 0.0001f; + private const float QDELTABody = 1.0f - 0.00005f; + private const float QDELTAHead = 1.0f - 0.00005f; // Threshold for camera rotation to be a significant agent update private const float VDELTA = 0.01f; @@ -6199,8 +6199,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP { if( (x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed - || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 && - (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly +// || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 && +// (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly + || x.ControlFlags != (byte)AgentManager.ControlFlags.NONE// actually all movement controls need to pass || (x.Flags != m_thisAgentUpdateArgs.Flags) // significant if Flags changed || (x.State != m_thisAgentUpdateArgs.State) // significant if Stats changed || (Math.Abs(x.Far - m_thisAgentUpdateArgs.Far) >= 32) // significant if far distance changed diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 53a9441896..e643db7436 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -3869,15 +3869,11 @@ namespace OpenSim.Region.Framework.Scenes for (int i = 0; i < parts.Length; i++) { SceneObjectPart part = parts[i]; - if (part.Scale.X > m_scene.m_maxPhys || - part.Scale.Y > m_scene.m_maxPhys || - part.Scale.Z > m_scene.m_maxPhys ) - { - UsePhysics = false; // Reset physics - break; - } - if (checkShape && part.PhysicsShapeType != (byte)PhysicsShapeType.None) + if(part.PhysicsShapeType == (byte)PhysicsShapeType.None) + continue; // assuming root type was checked elsewhere + + if (checkShape) { if (--maxprims < 0) { @@ -3885,6 +3881,14 @@ namespace OpenSim.Region.Framework.Scenes break; } } + + if (part.Scale.X > m_scene.m_maxPhys || + part.Scale.Y > m_scene.m_maxPhys || + part.Scale.Z > m_scene.m_maxPhys ) + { + UsePhysics = false; // Reset physics + break; + } } } diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 36dae35230..1d904696e6 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -927,7 +927,7 @@ ;; The trade-off may be increased memory usage by the script engine. ; ThreadStackSize = 262144 - ;; Set this to true (the default) to load each script into a separate + ;; Set this to true to load each script into a separate ;; AppDomain. ;; ;; Setting this to false will load all script assemblies into the @@ -936,8 +936,10 @@ ;; ;; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. ;; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. - ;; Some Windows users have also reported script loading problems when AppDomainLoading = false - ; AppDomainLoading = true + ;; at this time some mono versions seem to have problems with the true option + ;; so default is now false until a fix is found, to simply life of less technical skilled users. + ;; this should only be a issue if regions stay alive for a long time with lots of scripts added or edited. + ; AppDomainLoading = false ;; Controls whether scripts are stopped by aborting their threads externally (abort) or by co-operative checks from the compiled script (co-op) ;; co-op will be more stable but this option is currently experimental. diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index bd3774856c..f10596e104 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -1693,12 +1693,13 @@ ; Stack size per thread created ThreadStackSize = 262144 - ; Set this to true (the default) to load each script into a separate + ; Set this to true to load each script into a separate ; AppDomain. Setting this to false will load all script assemblies into the - ; current AppDomain, which will reduce the per-script overhead at the - ; expense of reduced security and the inability to garbage collect the - ; script assemblies - AppDomainLoading = true + ; current AppDomain, which will reduce the per-script overhead but deleted scripts stay inactive using memory + ; this may only be a problem if regions stay alive for a long time with lots of scripts added or edited. + ; at this time some mono versions seem to have problems with the true option + ; so default is now false until a fix is found + AppDomainLoading = false ; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false ; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the