Add avatar and prim update milliseconds per frame optional stats
parent
5cc9b820e5
commit
5f44be99ef
|
@ -151,25 +151,35 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
public const string ODETotalFrameMsStatName = "ODETotalFrameMS";
|
public const string ODETotalFrameMsStatName = "ODETotalFrameMS";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of time spent in native code that actually steps through the simulation.
|
/// Stat name for the amount of time spent in native code that actually steps through the simulation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ODENativeStepFrameMsStatName = "ODENativeStepFrameMS";
|
public const string ODENativeStepFrameMsStatName = "ODENativeStepFrameMS";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stat name for recording the number of milliseconds that ODE spends in native collision code.
|
/// Stat name for the number of milliseconds that ODE spends in native collision code.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ODENativeCollisionFrameMsStatName = "ODENativeCollisionFrameMS";
|
public const string ODENativeCollisionFrameMsStatName = "ODENativeCollisionFrameMS";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stat name for recording the number of milliseconds that ODE spends in native space collision code.
|
/// Stat name for the number of milliseconds that ODE spends in native space collision code.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ODENativeSpaceCollisionFrameMsStatName = "ODENativeSpaceCollisionFrameMS";
|
public const string ODENativeSpaceCollisionFrameMsStatName = "ODENativeSpaceCollisionFrameMS";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stat name for recording the number of milliseconds that ODE spends in native geom collision code.
|
/// Stat name for the number of milliseconds that ODE spends in native geom collision code.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ODENativeGeomCollisionFrameMsStatName = "ODENativeGeomCollisionFrameMS";
|
public const string ODENativeGeomCollisionFrameMsStatName = "ODENativeGeomCollisionFrameMS";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stat name for the milliseconds spent updating avatar position and velocity
|
||||||
|
/// </summary>
|
||||||
|
public const string ODEAvatarUpdateFrameMsStatName = "ODEAvatarUpdateFrameMS";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stat name for the milliseconds spent updating prim position and velocity
|
||||||
|
/// </summary>
|
||||||
|
public const string ODEPrimUpdateFrameMsStatName = "ODEPrimUpdateFrameMS";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stat name for the number of avatar collisions with another entity.
|
/// Stat name for the number of avatar collisions with another entity.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -2838,7 +2848,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
public override float Simulate(float timeStep)
|
public override float Simulate(float timeStep)
|
||||||
{
|
{
|
||||||
int startFrameTick = CollectStats ? Util.EnvironmentTickCount() : 0;
|
int startFrameTick = CollectStats ? Util.EnvironmentTickCount() : 0;
|
||||||
int quickStepTick = 0;
|
int tempTick = 0;;
|
||||||
|
|
||||||
if (framecount >= int.MaxValue)
|
if (framecount >= int.MaxValue)
|
||||||
framecount = 0;
|
framecount = 0;
|
||||||
|
@ -3014,12 +3024,12 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
m_global_contactcount = 0;
|
m_global_contactcount = 0;
|
||||||
|
|
||||||
if (CollectStats)
|
if (CollectStats)
|
||||||
quickStepTick = Util.EnvironmentTickCount();
|
tempTick = Util.EnvironmentTickCount();
|
||||||
|
|
||||||
d.WorldQuickStep(world, ODE_STEPSIZE);
|
d.WorldQuickStep(world, ODE_STEPSIZE);
|
||||||
|
|
||||||
if (CollectStats)
|
if (CollectStats)
|
||||||
m_stats[ODENativeStepFrameMsStatName] += Util.EnvironmentTickCountSubtract(quickStepTick);
|
m_stats[ODENativeStepFrameMsStatName] += Util.EnvironmentTickCountSubtract(tempTick);
|
||||||
|
|
||||||
d.JointGroupEmpty(contactgroup);
|
d.JointGroupEmpty(contactgroup);
|
||||||
}
|
}
|
||||||
|
@ -3031,6 +3041,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
timeLeft -= ODE_STEPSIZE;
|
timeLeft -= ODE_STEPSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CollectStats)
|
||||||
|
tempTick = Util.EnvironmentTickCount();
|
||||||
|
|
||||||
foreach (OdeCharacter actor in _characters)
|
foreach (OdeCharacter actor in _characters)
|
||||||
{
|
{
|
||||||
if (actor.bad)
|
if (actor.bad)
|
||||||
|
@ -3054,6 +3067,12 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
defects.Clear();
|
defects.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CollectStats)
|
||||||
|
{
|
||||||
|
m_stats[ODEAvatarUpdateFrameMsStatName] += Util.EnvironmentTickCountSubtract(tempTick);
|
||||||
|
tempTick = Util.EnvironmentTickCount();
|
||||||
|
}
|
||||||
|
|
||||||
//if (timeStep < 0.2f)
|
//if (timeStep < 0.2f)
|
||||||
|
|
||||||
foreach (OdePrim prim in _activeprims)
|
foreach (OdePrim prim in _activeprims)
|
||||||
|
@ -3067,6 +3086,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CollectStats)
|
||||||
|
m_stats[ODEPrimUpdateFrameMsStatName] += Util.EnvironmentTickCountSubtract(tempTick);
|
||||||
|
|
||||||
//DumpJointInfo();
|
//DumpJointInfo();
|
||||||
|
|
||||||
// Finished with all sim stepping. If requested, dump world state to file for debugging.
|
// Finished with all sim stepping. If requested, dump world state to file for debugging.
|
||||||
|
@ -4135,6 +4157,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
m_stats[ODENativeGeomCollisionFrameMsStatName] = 0;
|
m_stats[ODENativeGeomCollisionFrameMsStatName] = 0;
|
||||||
m_stats[ODEAvatarContactsStatsName] = 0;
|
m_stats[ODEAvatarContactsStatsName] = 0;
|
||||||
m_stats[ODEPrimContactsStatName] = 0;
|
m_stats[ODEPrimContactsStatName] = 0;
|
||||||
|
m_stats[ODEAvatarUpdateFrameMsStatName] = 0;
|
||||||
|
m_stats[ODEPrimUpdateFrameMsStatName] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue