From 3b51cae958df48cd629124e875d7236038f60302 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 20 Oct 2012 17:53:33 +0100 Subject: bug fix --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index b98f177..cce8946 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -2344,7 +2344,7 @@ namespace OpenSim.Region.Physics.OdePlugin } } } - IntPtr HeightmapData = d.GeomHeightfieldDataCreate(); + IntPtr HeightmapData = d.GeomUbitTerrainDataCreate(); const int wrap = 0; float thickness = hfmin; -- cgit v1.1 From 8bb29054165b1fa3284b200ca6682eb1c81e977f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 28 Oct 2012 11:55:11 +0000 Subject: test limit ode exec time by time not number of loops done --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index cce8946..5e01ff1 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -1714,9 +1714,8 @@ namespace OpenSim.Region.Physics.OdePlugin else curphysiteractions = m_physicsiterations; - int nodeframes = 0; - // checkThread(); + int nodeframes = 0; lock (SimulationLock) lock(OdeLock) @@ -1733,7 +1732,11 @@ namespace OpenSim.Region.Physics.OdePlugin d.WorldSetQuickStepNumIterations(world, curphysiteractions); - while (step_time > HalfOdeStep && nodeframes < 10) //limit number of steps so we don't say here for ever + int loopstartMS = Util.EnvironmentTickCount(); + int looptimeMS = 0; + + + while (step_time > HalfOdeStep) { try { @@ -1742,9 +1745,8 @@ namespace OpenSim.Region.Physics.OdePlugin if (ChangesQueue.Count > 0) { - int ttmpstart = Util.EnvironmentTickCount(); + int changestartMS = Util.EnvironmentTickCount(); int ttmp; - while (ChangesQueue.Dequeue(out item)) { if (item.actor != null) @@ -1762,7 +1764,7 @@ namespace OpenSim.Region.Physics.OdePlugin item.actor.Name, item.what.ToString()); } } - ttmp = Util.EnvironmentTickCountSubtract(ttmpstart); + ttmp = Util.EnvironmentTickCountSubtract(changestartMS); if (ttmp > 20) break; } @@ -1873,9 +1875,12 @@ namespace OpenSim.Region.Physics.OdePlugin // ode.dunlock(world); } - step_time -= ODE_STEPSIZE; nodeframes++; + + looptimeMS = Util.EnvironmentTickCountSubtract(loopstartMS); + if (looptimeMS > 100) + break; } lock (_badCharacter) @@ -1963,7 +1968,7 @@ namespace OpenSim.Region.Physics.OdePlugin // think time dilation as to do with dinamic step size that we dont' have // even so tell something to world - if (nodeframes < 10) // we did the requested loops + if (looptimeMS < 100) // we did the requested loops m_timeDilation = 1.0f; else if (step_time > 0) { -- cgit v1.1 From dd0323d89e9da7121ac85f8997c6f860d9977dd1 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 28 Oct 2012 14:04:39 +0000 Subject: minor change --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index 5e01ff1..0194c21 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -1977,6 +1977,7 @@ namespace OpenSim.Region.Physics.OdePlugin m_timeDilation = 1; if (step_time > m_SkipFramesAtms) step_time = 0; + m_lastframe = DateTime.UtcNow; // skip also the time lost } } -- cgit v1.1 From fbe4ec8ee0b56ca4490f5a7439aa287ff37e2e9d Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 28 Oct 2012 14:32:55 +0000 Subject: fix ode timing --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index 0194c21..eb0a514 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -1692,7 +1692,6 @@ namespace OpenSim.Region.Physics.OdePlugin DateTime now = DateTime.UtcNow; TimeSpan timedif = now - m_lastframe; - m_lastframe = now; timeStep = (float)timedif.TotalSeconds; // acumulate time so we can reduce error @@ -1704,6 +1703,8 @@ namespace OpenSim.Region.Physics.OdePlugin if (framecount < 0) framecount = 0; + m_lastframe = now; + framecount++; int curphysiteractions; -- cgit v1.1 From db7f4074b51f6c8e6e329cd67fb1e711f2272408 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 28 Oct 2012 14:39:04 +0000 Subject: revert last change --- OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs') diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs index eb0a514..54bc29f 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs @@ -1689,10 +1689,10 @@ namespace OpenSim.Region.Physics.OdePlugin /// public override float Simulate(float timeStep) { - DateTime now = DateTime.UtcNow; TimeSpan timedif = now - m_lastframe; timeStep = (float)timedif.TotalSeconds; + m_lastframe = now; // acumulate time so we can reduce error step_time += timeStep; @@ -1703,7 +1703,6 @@ namespace OpenSim.Region.Physics.OdePlugin if (framecount < 0) framecount = 0; - m_lastframe = now; framecount++; -- cgit v1.1