diff options
author | Justin Clark-Casey (justincc) | 2014-07-29 00:13:29 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-07-29 00:13:29 +0100 |
commit | f6f7585ec583788b11960cf5a1ac36409e6583aa (patch) | |
tree | e5e7e8f12244b5e2d679158204aca0e6c24073d4 | |
parent | BulletSim: rearrange code for sensing whether shapes have been (diff) | |
download | opensim-SC_OLD-f6f7585ec583788b11960cf5a1ac36409e6583aa.zip opensim-SC_OLD-f6f7585ec583788b11960cf5a1ac36409e6583aa.tar.gz opensim-SC_OLD-f6f7585ec583788b11960cf5a1ac36409e6583aa.tar.bz2 opensim-SC_OLD-f6f7585ec583788b11960cf5a1ac36409e6583aa.tar.xz |
Add a "debug scene set child-repri <double>" command that allows child reprioritization distance to be changed on the fly.
This governs when child agent position changes are sent to neighbouring regions.
Corresponding config parameter is ChildReprioritizationDistance in [InterestManagement] in OpenSim.ini
For test purposes.
Diffstat (limited to '')
4 files changed, 79 insertions, 21 deletions
diff --git a/OpenSim/Framework/Console/ConsoleUtil.cs b/OpenSim/Framework/Console/ConsoleUtil.cs index 744f652..44f6dc1 100644 --- a/OpenSim/Framework/Console/ConsoleUtil.cs +++ b/OpenSim/Framework/Console/ConsoleUtil.cs | |||
@@ -156,7 +156,7 @@ namespace OpenSim.Framework.Console | |||
156 | } | 156 | } |
157 | 157 | ||
158 | /// <summary> | 158 | /// <summary> |
159 | /// Convert a console integer to an int, automatically complaining if a console is given. | 159 | /// Convert a console input to a bool, automatically complaining if a console is given. |
160 | /// </summary> | 160 | /// </summary> |
161 | /// <param name='console'>Can be null if no console is available.</param> | 161 | /// <param name='console'>Can be null if no console is available.</param> |
162 | /// <param name='rawConsoleVector'>/param> | 162 | /// <param name='rawConsoleVector'>/param> |
@@ -176,7 +176,7 @@ namespace OpenSim.Framework.Console | |||
176 | } | 176 | } |
177 | 177 | ||
178 | /// <summary> | 178 | /// <summary> |
179 | /// Convert a console integer to an int, automatically complaining if a console is given. | 179 | /// Convert a console input to an int, automatically complaining if a console is given. |
180 | /// </summary> | 180 | /// </summary> |
181 | /// <param name='console'>Can be null if no console is available.</param> | 181 | /// <param name='console'>Can be null if no console is available.</param> |
182 | /// <param name='rawConsoleInt'>/param> | 182 | /// <param name='rawConsoleInt'>/param> |
@@ -196,6 +196,46 @@ namespace OpenSim.Framework.Console | |||
196 | } | 196 | } |
197 | 197 | ||
198 | /// <summary> | 198 | /// <summary> |
199 | /// Convert a console input to a float, automatically complaining if a console is given. | ||
200 | /// </summary> | ||
201 | /// <param name='console'>Can be null if no console is available.</param> | ||
202 | /// <param name='rawConsoleInput'>/param> | ||
203 | /// <param name='i'></param> | ||
204 | /// <returns></returns> | ||
205 | public static bool TryParseConsoleFloat(ICommandConsole console, string rawConsoleInput, out float i) | ||
206 | { | ||
207 | if (!float.TryParse(rawConsoleInput, out i)) | ||
208 | { | ||
209 | if (console != null) | ||
210 | console.OutputFormat("ERROR: {0} is not a valid float", rawConsoleInput); | ||
211 | |||
212 | return false; | ||
213 | } | ||
214 | |||
215 | return true; | ||
216 | } | ||
217 | |||
218 | /// <summary> | ||
219 | /// Convert a console input to a double, automatically complaining if a console is given. | ||
220 | /// </summary> | ||
221 | /// <param name='console'>Can be null if no console is available.</param> | ||
222 | /// <param name='rawConsoleInput'>/param> | ||
223 | /// <param name='i'></param> | ||
224 | /// <returns></returns> | ||
225 | public static bool TryParseConsoleDouble(ICommandConsole console, string rawConsoleInput, out double i) | ||
226 | { | ||
227 | if (!double.TryParse(rawConsoleInput, out i)) | ||
228 | { | ||
229 | if (console != null) | ||
230 | console.OutputFormat("ERROR: {0} is not a valid double", rawConsoleInput); | ||
231 | |||
232 | return false; | ||
233 | } | ||
234 | |||
235 | return true; | ||
236 | } | ||
237 | |||
238 | /// <summary> | ||
199 | /// Convert a console integer to a natural int, automatically complaining if a console is given. | 239 | /// Convert a console integer to a natural int, automatically complaining if a console is given. |
200 | /// </summary> | 240 | /// </summary> |
201 | /// <param name='console'>Can be null if no console is available.</param> | 241 | /// <param name='console'>Can be null if no console is available.</param> |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 27929c6..f87ae47 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -413,7 +413,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
413 | private bool m_reprioritizationEnabled = true; | 413 | private bool m_reprioritizationEnabled = true; |
414 | private double m_reprioritizationInterval = 5000.0; | 414 | private double m_reprioritizationInterval = 5000.0; |
415 | private double m_rootReprioritizationDistance = 10.0; | 415 | private double m_rootReprioritizationDistance = 10.0; |
416 | private double m_childReprioritizationDistance = 20.0; | ||
417 | 416 | ||
418 | private Timer m_mapGenerationTimer = new Timer(); | 417 | private Timer m_mapGenerationTimer = new Timer(); |
419 | private bool m_generateMaptiles; | 418 | private bool m_generateMaptiles; |
@@ -650,7 +649,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
650 | public bool IsReprioritizationEnabled { get { return m_reprioritizationEnabled; } } | 649 | public bool IsReprioritizationEnabled { get { return m_reprioritizationEnabled; } } |
651 | public double ReprioritizationInterval { get { return m_reprioritizationInterval; } } | 650 | public double ReprioritizationInterval { get { return m_reprioritizationInterval; } } |
652 | public double RootReprioritizationDistance { get { return m_rootReprioritizationDistance; } } | 651 | public double RootReprioritizationDistance { get { return m_rootReprioritizationDistance; } } |
653 | public double ChildReprioritizationDistance { get { return m_childReprioritizationDistance; } } | 652 | public double ChildReprioritizationDistance { get; set; } |
654 | 653 | ||
655 | public AgentCircuitManager AuthenticateHandler | 654 | public AgentCircuitManager AuthenticateHandler |
656 | { | 655 | { |
@@ -1002,7 +1001,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1002 | m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true); | 1001 | m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true); |
1003 | m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0); | 1002 | m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0); |
1004 | m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0); | 1003 | m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0); |
1005 | m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0); | 1004 | ChildReprioritizationDistance |
1005 | = interestConfig.GetDouble("ChildReprioritizationDistance", ChildReprioritizationDistance); | ||
1006 | } | 1006 | } |
1007 | 1007 | ||
1008 | m_log.DebugFormat("[SCENE]: Using the {0} prioritization scheme", m_priorityScheme); | 1008 | m_log.DebugFormat("[SCENE]: Using the {0} prioritization scheme", m_priorityScheme); |
@@ -1023,6 +1023,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1023 | PeriodicBackup = true; | 1023 | PeriodicBackup = true; |
1024 | UseBackup = true; | 1024 | UseBackup = true; |
1025 | 1025 | ||
1026 | ChildReprioritizationDistance = 20.0; | ||
1027 | |||
1026 | m_eventManager = new EventManager(); | 1028 | m_eventManager = new EventManager(); |
1027 | 1029 | ||
1028 | m_permissions = new ScenePermissions(this); | 1030 | m_permissions = new ScenePermissions(this); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 45c3348..bfa3b9a 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -150,6 +150,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
150 | 150 | ||
151 | public void SendChildAgentDataUpdate(AgentPosition cAgentData, ScenePresence presence) | 151 | public void SendChildAgentDataUpdate(AgentPosition cAgentData, ScenePresence presence) |
152 | { | 152 | { |
153 | // m_log.DebugFormat( | ||
154 | // "[SCENE COMMUNICATION SERVICE]: Sending child agent position updates for {0} in {1}", | ||
155 | // presence.Name, m_scene.Name); | ||
156 | |||
153 | // This assumes that we know what our neighbors are. | 157 | // This assumes that we know what our neighbors are. |
154 | try | 158 | try |
155 | { | 159 | { |
diff --git a/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs b/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs index 5fb74b0..5347945 100644 --- a/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs +++ b/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs | |||
@@ -93,28 +93,30 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments | |||
93 | "Debug", this, "debug scene get", | 93 | "Debug", this, "debug scene get", |
94 | "debug scene get", | 94 | "debug scene get", |
95 | "List current scene options.", | 95 | "List current scene options.", |
96 | "If active is false then main scene update and maintenance loops are suspended.\n" | 96 | "active - if false then main scene update and maintenance loops are suspended.\n" |
97 | + "If animations is true then extra animations debug information is logged.\n" | 97 | + "animations - if true then extra animations debug information is logged.\n" |
98 | + "If collisions is false then collisions with other objects are turned off.\n" | 98 | + "child-repri - how far an avatar must move in meters before we update the position of its child agents in neighbouring regions.\n" |
99 | + "If pbackup is false then periodic scene backup is turned off.\n" | 99 | + "collisions - if false then collisions with other objects are turned off.\n" |
100 | + "If physics is false then all physics objects are non-physical.\n" | 100 | + "pbackup - if false then periodic scene backup is turned off.\n" |
101 | + "If scripting is false then no scripting operations happen.\n" | 101 | + "physics - if false then all physics objects are non-physical.\n" |
102 | + "If teleport is true then some extra teleport debug information is logged.\n" | 102 | + "scripting - if false then no scripting operations happen.\n" |
103 | + "If updates is true then any frame which exceeds double the maximum desired frame time is logged.", | 103 | + "teleport - if true then some extra teleport debug information is logged.\n" |
104 | + "updates - if true then any frame which exceeds double the maximum desired frame time is logged.", | ||
104 | HandleDebugSceneGetCommand); | 105 | HandleDebugSceneGetCommand); |
105 | 106 | ||
106 | scene.AddCommand( | 107 | scene.AddCommand( |
107 | "Debug", this, "debug scene set", | 108 | "Debug", this, "debug scene set", |
108 | "debug scene set active|collisions|pbackup|physics|scripting|teleport|updates true|false", | 109 | "debug scene set active|collisions|pbackup|physics|scripting|teleport|updates true|false", |
109 | "Turn on scene debugging options.", | 110 | "Turn on scene debugging options.", |
110 | "If active is false then main scene update and maintenance loops are suspended.\n" | 111 | "active - if false then main scene update and maintenance loops are suspended.\n" |
111 | + "If animations is true then extra animations debug information is logged.\n" | 112 | + "animations - if true then extra animations debug information is logged.\n" |
112 | + "If collisions is false then collisions with other objects are turned off.\n" | 113 | + "child-repri - how far an avatar must move in meters before we update the position of its child agents in neighbouring regions.\n" |
113 | + "If pbackup is false then periodic scene backup is turned off.\n" | 114 | + "collisions - if false then collisions with other objects are turned off.\n" |
114 | + "If physics is false then all physics objects are non-physical.\n" | 115 | + "pbackup - if false then periodic scene backup is turned off.\n" |
115 | + "If scripting is false then no scripting operations happen.\n" | 116 | + "physics - if false then all physics objects are non-physical.\n" |
116 | + "If teleport is true then some extra teleport debug information is logged.\n" | 117 | + "scripting - if false then no scripting operations happen.\n" |
117 | + "If updates is true then any frame which exceeds double the maximum desired frame time is logged.", | 118 | + "teleport - if true then some extra teleport debug information is logged.\n" |
119 | + "updates - if true then any frame which exceeds double the maximum desired frame time is logged.", | ||
118 | HandleDebugSceneSetCommand); | 120 | HandleDebugSceneSetCommand); |
119 | } | 121 | } |
120 | 122 | ||
@@ -138,6 +140,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments | |||
138 | ConsoleDisplayList cdl = new ConsoleDisplayList(); | 140 | ConsoleDisplayList cdl = new ConsoleDisplayList(); |
139 | cdl.AddRow("active", m_scene.Active); | 141 | cdl.AddRow("active", m_scene.Active); |
140 | cdl.AddRow("animations", m_scene.DebugAnimations); | 142 | cdl.AddRow("animations", m_scene.DebugAnimations); |
143 | cdl.AddRow("child-repri", m_scene.ChildReprioritizationDistance); | ||
141 | cdl.AddRow("pbackup", m_scene.PeriodicBackup); | 144 | cdl.AddRow("pbackup", m_scene.PeriodicBackup); |
142 | cdl.AddRow("physics", m_scene.PhysicsEnabled); | 145 | cdl.AddRow("physics", m_scene.PhysicsEnabled); |
143 | cdl.AddRow("scripting", m_scene.ScriptsEnabled); | 146 | cdl.AddRow("scripting", m_scene.ScriptsEnabled); |
@@ -186,6 +189,15 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments | |||
186 | m_scene.DebugAnimations = active; | 189 | m_scene.DebugAnimations = active; |
187 | } | 190 | } |
188 | 191 | ||
192 | if (options.ContainsKey("child-repri")) | ||
193 | { | ||
194 | double childRepriDistance; | ||
195 | |||
196 | // FIXME: This can only come from the console at the moment but might not always be true. | ||
197 | if (ConsoleUtil.TryParseConsoleDouble(MainConsole.Instance, options["child-repri"], out childRepriDistance)) | ||
198 | m_scene.ChildReprioritizationDistance = childRepriDistance; | ||
199 | } | ||
200 | |||
189 | if (options.ContainsKey("pbackup")) | 201 | if (options.ContainsKey("pbackup")) |
190 | { | 202 | { |
191 | bool active; | 203 | bool active; |