"save the catgirls"

avinationmerge
UbitUmarov 2012-04-24 05:42:47 +01:00
parent 1cfee4e84c
commit 1848ceac95
2 changed files with 13 additions and 18 deletions

View File

@ -1391,10 +1391,11 @@ namespace OpenSim.Region.Framework.Scenes
int previousFrameTick; int previousFrameTick;
int maintc; int maintc;
int sleepMS; int sleepMS;
int framestart;
while (!m_shuttingDown && (endFrame == null || Frame < endFrame)) while (!m_shuttingDown && (endFrame == null || Frame < endFrame))
{ {
maintc = Util.EnvironmentTickCount(); framestart = Util.EnvironmentTickCount();
++Frame; ++Frame;
// m_log.DebugFormat("[SCENE]: Processing frame {0} in {1}", Frame, RegionInfo.RegionName); // m_log.DebugFormat("[SCENE]: Processing frame {0} in {1}", Frame, RegionInfo.RegionName);
@ -1481,7 +1482,7 @@ namespace OpenSim.Region.Framework.Scenes
// landMS = Util.EnvironmentTickCountSubtract(ldMS); // landMS = Util.EnvironmentTickCountSubtract(ldMS);
//} //}
frameMS = Util.EnvironmentTickCountSubtract(maintc); // frameMS = Util.EnvironmentTickCountSubtract(maintc);
otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS; otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS;
// if (Frame%m_update_avatars == 0) // if (Frame%m_update_avatars == 0)
@ -1496,7 +1497,7 @@ namespace OpenSim.Region.Framework.Scenes
// frameMS currently records work frame times, not total frame times (work + any required sleep to // frameMS currently records work frame times, not total frame times (work + any required sleep to
// reach min frame time. // reach min frame time.
StatsReporter.addFrameMS(frameMS); // StatsReporter.addFrameMS(frameMS);
StatsReporter.addAgentMS(agentMS); StatsReporter.addAgentMS(agentMS);
StatsReporter.addPhysicsMS(physicsMS + physicsMS2); StatsReporter.addPhysicsMS(physicsMS + physicsMS2);
@ -1553,17 +1554,21 @@ namespace OpenSim.Region.Framework.Scenes
previousFrameTick = m_lastFrameTick; previousFrameTick = m_lastFrameTick;
m_lastFrameTick = Util.EnvironmentTickCount(); m_lastFrameTick = Util.EnvironmentTickCount();
maintc = Util.EnvironmentTickCountSubtract(m_lastFrameTick, maintc); maintc = Util.EnvironmentTickCountSubtract(m_lastFrameTick, framestart);
maintc = (int)(MinFrameTime * 1000) - maintc; maintc = (int)(MinFrameTime * 1000) - maintc;
m_firstHeartbeat = false; m_firstHeartbeat = false;
sleepMS = Util.EnvironmentTickCount(); sleepMS = Util.EnvironmentTickCount();
if (maintc > 0) if (maintc > 0)
Thread.Sleep(maintc); Thread.Sleep(maintc);
sleepMS = Util.EnvironmentTickCountSubtract(sleepMS); sleepMS = Util.EnvironmentTickCountSubtract(sleepMS);
frameMS = Util.EnvironmentTickCountSubtract(framestart);
StatsReporter.addSleepMS(sleepMS); StatsReporter.addSleepMS(sleepMS);
StatsReporter.addFrameMS(frameMS);
// Optionally warn if a frame takes double the amount of time that it should. // Optionally warn if a frame takes double the amount of time that it should.
if (DebugUpdates if (DebugUpdates

View File

@ -253,24 +253,13 @@ namespace OpenSim.Region.Framework.Scenes
physfps = 0; physfps = 0;
#endregion #endregion
//Our time dilation is 0.91 when we're running a full speed,
// therefore to make sure we get an appropriate range,
// we have to factor in our error. (0.10f * statsUpdateFactor)
// multiplies the fix for the error times the amount of times it'll occur a second
// / 10 divides the value by the number of times the sim heartbeat runs (10fps)
// Then we divide the whole amount by the amount of seconds pass in between stats updates.
// 'statsUpdateFactor' is how often stats packets are sent in seconds. Used below to change
// values to X-per-second values.
float factor = 1 / statsUpdateFactor; float factor = 1 / statsUpdateFactor;
if (reportedFPS <= 0) if (reportedFPS <= 0)
reportedFPS = 1; reportedFPS = 1;
float perframe = 1.0f / (float)reportedFPS; float perframe = 1.0f / (float)reportedFPS;
float TotalFrameTime = 1000.0f * statsUpdateFactor * perframe; float TotalFrameTime = m_frameMS * perframe;
float targetframetime = 1100.0f / (float)m_nominalReportedFps; float targetframetime = 1100.0f / (float)m_nominalReportedFps;
@ -279,7 +268,8 @@ namespace OpenSim.Region.Framework.Scenes
sparetime = 0; sparetime = 0;
else else
{ {
sparetime = TotalFrameTime - m_frameMS * perframe; sparetime = m_frameMS - m_physicsMS - m_agentMS;
sparetime *= perframe;
if (sparetime < 0) if (sparetime < 0)
sparetime = 0; sparetime = 0;
else if (sparetime > TotalFrameTime) else if (sparetime > TotalFrameTime)
@ -290,7 +280,7 @@ namespace OpenSim.Region.Framework.Scenes
// m_otherMS = m_frameMS - m_physicsMS - m_imageMS - m_netMS - m_agentMS; // m_otherMS = m_frameMS - m_physicsMS - m_imageMS - m_netMS - m_agentMS;
// m_imageMS m_netMS are not included in m_frameMS // m_imageMS m_netMS are not included in m_frameMS
m_otherMS = m_frameMS - m_physicsMS - m_agentMS; m_otherMS = m_frameMS - m_physicsMS - m_agentMS - m_sleeptimeMS;
if (m_otherMS < 0) if (m_otherMS < 0)
m_otherMS = 0; m_otherMS = 0;