SimulatorFPS: The actual optimal FPS of the simulator, un-fudged
SimulatorFPSFactor: The fudge factor that is applied to the stats sent to the viewer
SimulatorFPSWarnPercent: The percentage below which a lag meter should go to amber
SimulatorFPSCritPercent: The percentage below which a lag meter should go to red
To display the real values, a viewer would divide the reported FPS by the SimulatorFPSFactor and use that to calculate the percentage of SimulatorFPS. E.g. reported is 55fps, SimulatorFPSFactor is 5.0 and SimulatorFPS is 11.
This integrates the OpenSim refactoring to make physics, etc into modules.
AVN physics hasn't been moved to new location.
Does not compile yet.
Merge branch 'osmaster' into mbworknew1
Off by default but set with [Startup]ShouldUseFireAndForgetForCollsions=true
There is a problem with physics colliions sometimes stopping. One suspicion
is that the long callback path from the physics engine into the script engine
is causing problems. Enabling this feature passes the collision into the
script engine on a separate thread and not the main simulation thread.
Tester can enable this and see if the collsions stay around. If they still
fail, this commit should be reverted and another solution looked for.
Implements recent changes to llGetEnv
region_cpu_ratio hardcoded to 1
region_product_sku hardcoded to OpenSim
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
Test Plan: Tested using opensim standalone on windows with json stats.
Reviewers: rlouden
Reviewed By: rlouden
Differential Revision: http://cr.irl.ucf.edu/D275
Test Plan:
Tested on local opensim and firestorm. Not tested with JSON stats
reporter.
Reviewers: rlouden
Reviewed By: rlouden
Differential Revision: http://cr.irl.ucf.edu/D269
Signed-off-by: Diva Canto <diva@metaverseink.com>
Test Plan: Tested on windows with the json stats reporter.
Reviewers: rlouden, kboswell, clattin, ssirigam, martin
Reviewed By: rlouden, kboswell, clattin, ssirigam, martin
Differential Revision: http://cr.irl.ucf.edu/D273
Test Plan: Tested on windows with the json stats reporter.
Reviewers: rlouden, ssirigam, martin, kboswell, clattin
Differential Revision: http://cr.irl.ucf.edu/D273
Test Plan:
Tested on local opensim and firestorm. Not tested with JSON stats
reporter.
Reviewers: rlouden
Reviewed By: rlouden
Differential Revision: http://cr.irl.ucf.edu/D269
Added Scene.PositionIsInCurrentRegion(pos) to sense when new position needs some crossing work.
Many changes made to EntityTransferModule to accomodate new crossing sense logic.
This only bounds passed parameters as there is no good way of refusing
the parameter setting. This mostly means that passing NaN's won't
crash the simulator.
Add permission by identifying uuid (owner/creator/group) and function. Revoke
permission in the same manner. Permission adjustments immediately effect
running scripts ability to call os functions.
osGrantScriptPermissions(UUID key,string function) Threat Level Severe
osRevokeScriptPermissions(UUID key,string function) Threat Level Severe
work sponsored by: Rage
This is to achieve a clean separation of concerns - the watchdog is an inappropriate place for work management.
Also adds a WorkManager.RunInThreadPool() class which feeds through to Util.FireAndForget.
Also switches around the name and obj arguments to the new RunInThread() and RunJob() methods so that the callback obj comes after the callback as seen in the SDK and elsewhere
Instead of processing all incoming attachment scene object concurrently, process them consecutively to eliminate potential overload from this source.
This is a naive implementation because it does not currently account for slow foreign asset services.
Although it may take longer, this approach may also improve attachment visibility for HG avatars
since the scene object is now always added to the scene after receiving assets from the foreign service and not before.
This is done by adjusting the order of code so that SceneAgent will always be set before adding the client.
Various parts of the code (rightly) assume that a a client registered to the manager will always have a SceneAgent set no matter what.
value default to 256, so should have no effect. Next steps needed: reduce
client udp Throttles with distance, update childreen connections with
significat movement and view range changes, Make disconnect be delayed in time, make disconnects be receiving region action not sender on region changes. Allow distance less than 256 to only connect to visible regions, even none. Make this be relative to camera and not agent position or region centers as it is now.
This setting was originally added some time ago to deal with issues where appearance was not received properly by all users.
However, it does not scale well with large numbers of agents.
Disabling to see if the original problem has abated or whether this will have to be tackled in another way.
[Startup] default setting UpdateTempCleaningEveryNFrames becomes UpdateTempCleaningEveryNSeconds.
Default becomes 180s instead of effective 182s (which would also vary with any changes in frame time or extra long frames)
The functionality is the same but this allow us to monitor such tasks via "show threads" and abort them for test purposes, etc.
Also extends thread names to provide more info (e.g. SendInitialDataToClient says what client the task is for).
This is to see if an inaccuracy in sleep times under load is responsible for increase in frame times even when there is spare time still available.
Can currently only be activated by setting "debug scene set update-on-timer true".
Can be switched between timer and thread with sleep updates whilst the scene is running.