SH-3275 WIP Run viewer metrics for object update messages
continued clean up of llstats stuffmaster
parent
5564fcb271
commit
df7d6c9075
|
|
@ -785,9 +785,6 @@ bool LLAppViewer::init()
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
// *FIX: The following code isn't grouped into functions yet.
|
||||
|
||||
// Statistics / debug timer initialization
|
||||
init_statistics();
|
||||
|
||||
//
|
||||
// Various introspection concerning the libs we're using - particularly
|
||||
// the libs involved in getting to a full login screen.
|
||||
|
|
@ -4208,7 +4205,6 @@ void LLAppViewer::idle()
|
|||
// of SEND_STATS_PERIOD so that the initial stats report will
|
||||
// be sent immediately.
|
||||
static LLFrameStatsTimer viewer_stats_timer(SEND_STATS_PERIOD);
|
||||
reset_statistics();
|
||||
|
||||
// Update session stats every large chunk of time
|
||||
// *FIX: (???) SAMANTHA
|
||||
|
|
@ -4268,7 +4264,7 @@ void LLAppViewer::idle()
|
|||
idle_afk_check();
|
||||
|
||||
// Update statistics for this frame
|
||||
update_statistics(gFrameCount);
|
||||
update_statistics();
|
||||
}
|
||||
|
||||
////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -1394,7 +1394,7 @@ bool idle_startup()
|
|||
display_startup();
|
||||
|
||||
//reset statistics
|
||||
LLViewerStats::getInstance()->resetStats();
|
||||
LLViewerStats::instance().resetStats();
|
||||
|
||||
display_startup();
|
||||
//
|
||||
|
|
|
|||
|
|
@ -61,8 +61,6 @@ LLColor4U MAX_WATER_COLOR(0, 48, 96, 240);
|
|||
|
||||
|
||||
S32 LLSurface::sTextureSize = 256;
|
||||
S32 LLSurface::sTexelsUpdated = 0;
|
||||
F32 LLSurface::sTextureUpdateTime = 0.f;
|
||||
|
||||
// ---------------- LLSurface:: Public Members ---------------
|
||||
|
||||
|
|
|
|||
|
|
@ -168,9 +168,6 @@ public:
|
|||
|
||||
F32 mDetailTextureScale; // Number of times to repeat detail texture across this surface
|
||||
|
||||
static F32 sTextureUpdateTime;
|
||||
static S32 sTexelsUpdated;
|
||||
|
||||
protected:
|
||||
void createSTexture();
|
||||
void createWaterTexture();
|
||||
|
|
|
|||
|
|
@ -3242,7 +3242,7 @@ void LLTextureFetchDebugger::startDebug()
|
|||
}
|
||||
|
||||
//collect statistics
|
||||
mTotalFetchingTime = gDebugTimers[0].getElapsedTimeF32() - mTotalFetchingTime;
|
||||
mTotalFetchingTime = gTextureTimer.getElapsedTimeF32() - mTotalFetchingTime;
|
||||
|
||||
std::set<LLUUID> fetched_textures;
|
||||
S32 size = mFetchingHistory.size();
|
||||
|
|
@ -3324,7 +3324,7 @@ void LLTextureFetchDebugger::stopDebug()
|
|||
//unlock the fetcher
|
||||
mFetcher->lockFetcher(false);
|
||||
mFreezeHistory = FALSE;
|
||||
mTotalFetchingTime = gDebugTimers[0].getElapsedTimeF32(); //reset
|
||||
mTotalFetchingTime = gTextureTimer.getElapsedTimeF32(); //reset
|
||||
}
|
||||
|
||||
//called in the main thread and when the fetching queue is empty
|
||||
|
|
@ -3637,7 +3637,7 @@ bool LLTextureFetchDebugger::update()
|
|||
case REFETCH_VIS_CACHE:
|
||||
if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)
|
||||
{
|
||||
mRefetchVisCacheTime = gDebugTimers[0].getElapsedTimeF32() - mTotalFetchingTime;
|
||||
mRefetchVisCacheTime = gTextureTimer.getElapsedTimeF32() - mTotalFetchingTime;
|
||||
mState = IDLE;
|
||||
mFetcher->lockFetcher(true);
|
||||
}
|
||||
|
|
@ -3645,7 +3645,7 @@ bool LLTextureFetchDebugger::update()
|
|||
case REFETCH_VIS_HTTP:
|
||||
if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)
|
||||
{
|
||||
mRefetchVisHTTPTime = gDebugTimers[0].getElapsedTimeF32() - mTotalFetchingTime;
|
||||
mRefetchVisHTTPTime = gTextureTimer.getElapsedTimeF32() - mTotalFetchingTime;
|
||||
mState = IDLE;
|
||||
mFetcher->lockFetcher(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1314,22 +1314,6 @@ class LLAdvancedPrintAgentInfo : public view_listener_t
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
////////////////////////////////
|
||||
// PRINT TEXTURE MEMORY STATS //
|
||||
////////////////////////////////
|
||||
|
||||
|
||||
class LLAdvancedPrintTextureMemoryStats : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
output_statistics(NULL);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
//////////////////
|
||||
// DEBUG CLICKS //
|
||||
//////////////////
|
||||
|
|
@ -8280,7 +8264,6 @@ void initialize_menus()
|
|||
commit.add("Advanced.DumpFocusHolder", boost::bind(&handle_dump_focus) );
|
||||
view_listener_t::addMenu(new LLAdvancedPrintSelectedObjectInfo(), "Advanced.PrintSelectedObjectInfo");
|
||||
view_listener_t::addMenu(new LLAdvancedPrintAgentInfo(), "Advanced.PrintAgentInfo");
|
||||
view_listener_t::addMenu(new LLAdvancedPrintTextureMemoryStats(), "Advanced.PrintTextureMemoryStats");
|
||||
view_listener_t::addMenu(new LLAdvancedToggleDebugClicks(), "Advanced.ToggleDebugClicks");
|
||||
view_listener_t::addMenu(new LLAdvancedCheckDebugClicks(), "Advanced.CheckDebugClicks");
|
||||
view_listener_t::addMenu(new LLAdvancedCheckDebugViews(), "Advanced.CheckDebugViews");
|
||||
|
|
|
|||
|
|
@ -286,19 +286,19 @@ LLViewerStats::~LLViewerStats()
|
|||
|
||||
void LLViewerStats::resetStats()
|
||||
{
|
||||
LLViewerStats::getInstance()->mKBitStat.reset();
|
||||
LLViewerStats::getInstance()->mLayersKBitStat.reset();
|
||||
LLViewerStats::getInstance()->mObjectKBitStat.reset();
|
||||
LLViewerStats::getInstance()->mTextureKBitStat.reset();
|
||||
LLViewerStats::getInstance()->mVFSPendingOperations.reset();
|
||||
LLViewerStats::getInstance()->mAssetKBitStat.reset();
|
||||
LLViewerStats::getInstance()->mPacketsInStat.reset();
|
||||
LLViewerStats::getInstance()->mPacketsLostStat.reset();
|
||||
LLViewerStats::getInstance()->mPacketsOutStat.reset();
|
||||
LLViewerStats::getInstance()->mFPSStat.reset();
|
||||
LLViewerStats::getInstance()->mTexturePacketsStat.reset();
|
||||
|
||||
LLViewerStats::getInstance()->mAgentPositionSnaps.reset();
|
||||
LLViewerStats& stats = LLViewerStats::instance();
|
||||
stats.mKBitStat.reset();
|
||||
stats.mLayersKBitStat.reset();
|
||||
stats.mObjectKBitStat.reset();
|
||||
stats.mTextureKBitStat.reset();
|
||||
stats.mVFSPendingOperations.reset();
|
||||
stats.mAssetKBitStat.reset();
|
||||
stats.mPacketsInStat.reset();
|
||||
stats.mPacketsLostStat.reset();
|
||||
stats.mPacketsOutStat.reset();
|
||||
stats.mFPSStat.reset();
|
||||
stats.mTexturePacketsStat.reset();
|
||||
stats.mAgentPositionSnaps.reset();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -401,140 +401,6 @@ void LLViewerStats::addToMessage(LLSD &body) const
|
|||
|
||||
// *NOTE:Mani The following methods used to exist in viewer.cpp
|
||||
// Moving them here, but not merging them into LLViewerStats yet.
|
||||
void reset_statistics()
|
||||
{
|
||||
if (LLSurface::sTextureUpdateTime)
|
||||
{
|
||||
LLSurface::sTexelsUpdated = 0;
|
||||
LLSurface::sTextureUpdateTime = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void output_statistics(void*)
|
||||
{
|
||||
llinfos << "Number of orphans: " << gObjectList.getOrphanCount() << llendl;
|
||||
llinfos << "Number of dead objects: " << gObjectList.mNumDeadObjects << llendl;
|
||||
llinfos << "Num images: " << gTextureList.getNumImages() << llendl;
|
||||
llinfos << "Texture usage: " << LLImageGL::sGlobalTextureMemoryInBytes << llendl;
|
||||
llinfos << "Texture working set: " << LLImageGL::sBoundTextureMemoryInBytes << llendl;
|
||||
llinfos << "Raw usage: " << LLImageRaw::sGlobalRawMemory << llendl;
|
||||
llinfos << "Formatted usage: " << LLImageFormatted::sGlobalFormattedMemory << llendl;
|
||||
llinfos << "Zombie Viewer Objects: " << LLViewerObject::getNumZombieObjects() << llendl;
|
||||
llinfos << "Number of lights: " << gPipeline.getLightCount() << llendl;
|
||||
|
||||
llinfos << "Memory Usage:" << llendl;
|
||||
llinfos << "--------------------------------" << llendl;
|
||||
llinfos << "Pipeline:" << llendl;
|
||||
llinfos << llendl;
|
||||
|
||||
#if LL_SMARTHEAP
|
||||
llinfos << "--------------------------------" << llendl;
|
||||
{
|
||||
llinfos << "sizeof(LLVOVolume) = " << sizeof(LLVOVolume) << llendl;
|
||||
|
||||
U32 total_pool_size = 0;
|
||||
U32 total_used_size = 0;
|
||||
MEM_POOL_INFO pool_info;
|
||||
MEM_POOL_STATUS pool_status;
|
||||
U32 pool_num = 0;
|
||||
for(pool_status = MemPoolFirst( &pool_info, 1 );
|
||||
pool_status != MEM_POOL_END;
|
||||
pool_status = MemPoolNext( &pool_info, 1 ) )
|
||||
{
|
||||
llinfos << "Pool #" << pool_num << llendl;
|
||||
if( MEM_POOL_OK != pool_status )
|
||||
{
|
||||
llwarns << "Pool not ok" << llendl;
|
||||
continue;
|
||||
}
|
||||
|
||||
llinfos << "Pool blockSizeFS " << pool_info.blockSizeFS
|
||||
<< " pageSize " << pool_info.pageSize
|
||||
<< llendl;
|
||||
|
||||
U32 pool_count = MemPoolCount(pool_info.pool);
|
||||
llinfos << "Blocks " << pool_count << llendl;
|
||||
|
||||
U32 pool_size = MemPoolSize( pool_info.pool );
|
||||
if( pool_size == MEM_ERROR_RET )
|
||||
{
|
||||
llinfos << "MemPoolSize() failed (" << pool_num << ")" << llendl;
|
||||
}
|
||||
else
|
||||
{
|
||||
llinfos << "MemPool Size " << pool_size / 1024 << "K" << llendl;
|
||||
}
|
||||
|
||||
total_pool_size += pool_size;
|
||||
|
||||
if( !MemPoolLock( pool_info.pool ) )
|
||||
{
|
||||
llinfos << "MemPoolLock failed (" << pool_num << ") " << llendl;
|
||||
continue;
|
||||
}
|
||||
|
||||
U32 used_size = 0;
|
||||
MEM_POOL_ENTRY entry;
|
||||
entry.entry = NULL;
|
||||
while( MemPoolWalk( pool_info.pool, &entry ) == MEM_POOL_OK )
|
||||
{
|
||||
if( entry.isInUse )
|
||||
{
|
||||
used_size += entry.size;
|
||||
}
|
||||
}
|
||||
|
||||
MemPoolUnlock( pool_info.pool );
|
||||
|
||||
llinfos << "MemPool Used " << used_size/1024 << "K" << llendl;
|
||||
total_used_size += used_size;
|
||||
pool_num++;
|
||||
}
|
||||
|
||||
llinfos << "Total Pool Size " << total_pool_size/1024 << "K" << llendl;
|
||||
llinfos << "Total Used Size " << total_used_size/1024 << "K" << llendl;
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
llinfos << "--------------------------------" << llendl;
|
||||
llinfos << "Avatar Memory (partly overlaps with above stats):" << llendl;
|
||||
LLTexLayerStaticImageList::getInstance()->dumpByteCount();
|
||||
LLVOAvatarSelf::dumpScratchTextureByteCount();
|
||||
LLTexLayerSetBuffer::dumpTotalByteCount();
|
||||
LLVOAvatarSelf::dumpTotalLocalTextureByteCount();
|
||||
LLTexLayerParamAlpha::dumpCacheByteCount();
|
||||
LLVOAvatar::dumpBakedStatus();
|
||||
|
||||
llinfos << llendl;
|
||||
|
||||
llinfos << "Object counts:" << llendl;
|
||||
S32 i;
|
||||
S32 obj_counts[256];
|
||||
// S32 app_angles[256];
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
obj_counts[i] = 0;
|
||||
}
|
||||
for (i = 0; i < gObjectList.getNumObjects(); i++)
|
||||
{
|
||||
LLViewerObject *objectp = gObjectList.getObject(i);
|
||||
if (objectp)
|
||||
{
|
||||
obj_counts[objectp->getPCode()]++;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
if (obj_counts[i])
|
||||
{
|
||||
llinfos << LLPrimitive::pCodeToString(i) << ":" << obj_counts[i] << llendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U32 gTotalLandIn = 0, gTotalLandOut = 0;
|
||||
U32 gTotalWaterIn = 0, gTotalWaterOut = 0;
|
||||
|
||||
|
|
@ -552,16 +418,9 @@ U32 gTotalTextureBytesPerBoostLevel[LLViewerTexture::MAX_GL_IMAGE_CATEGORY]
|
|||
extern U32 gVisCompared;
|
||||
extern U32 gVisTested;
|
||||
|
||||
std::map<S32,LLFrameTimer> gDebugTimers;
|
||||
std::map<S32,std::string> gDebugTimerLabel;
|
||||
extern LLFrameTimer gTextureTimer;
|
||||
|
||||
void init_statistics()
|
||||
{
|
||||
// Label debug timers
|
||||
gDebugTimerLabel[0] = "Texture";
|
||||
}
|
||||
|
||||
void update_statistics(U32 frame_count)
|
||||
void update_statistics()
|
||||
{
|
||||
gTotalWorldBytes += gVLManager.getTotalBytes();
|
||||
gTotalObjectBytes += gObjectBits / 8;
|
||||
|
|
@ -588,11 +447,7 @@ void update_statistics(U32 frame_count)
|
|||
stats.setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gPipeline.getLightingDetail());
|
||||
stats.setStat(LLViewerStats::ST_DRAW_DIST, (F64)gSavedSettings.getF32("RenderFarClip"));
|
||||
stats.setStat(LLViewerStats::ST_CHAT_BUBBLES, (F64)gSavedSettings.getBOOL("UseChatBubbles"));
|
||||
#if 0 // 1.9.2
|
||||
stats.setStat(LLViewerStats::ST_SHADER_OBJECTS, (F64)gSavedSettings.getS32("VertexShaderLevelObject"));
|
||||
stats.setStat(LLViewerStats::ST_SHADER_AVATAR, (F64)gSavedSettings.getBOOL("VertexShaderLevelAvatar"));
|
||||
stats.setStat(LLViewerStats::ST_SHADER_ENVIRONMENT, (F64)gSavedSettings.getBOOL("VertexShaderLevelEnvironment"));
|
||||
#endif
|
||||
|
||||
stats.setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime("Frame"));
|
||||
F64 idle_secs = gDebugView->mFastTimerView->getTime("Idle");
|
||||
F64 network_secs = gDebugView->mFastTimerView->getTime("Network");
|
||||
|
|
@ -624,11 +479,11 @@ void update_statistics(U32 frame_count)
|
|||
|
||||
if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)
|
||||
{
|
||||
gDebugTimers[0].pause();
|
||||
gTextureTimer.pause();
|
||||
}
|
||||
else
|
||||
{
|
||||
gDebugTimers[0].unpause();
|
||||
gTextureTimer.unpause();
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -664,7 +519,6 @@ void update_statistics(U32 frame_count)
|
|||
texture_stats_timer.reset();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ViewerStatsResponder : public LLHTTPClient::Responder
|
||||
|
|
@ -824,10 +678,7 @@ void send_stats()
|
|||
S32 window_height = gViewerWindow->getWindowHeightRaw();
|
||||
S32 window_size = (window_width * window_height) / 1024;
|
||||
misc["string_1"] = llformat("%d", window_size);
|
||||
if (gDebugTimers.find(0) != gDebugTimers.end() && gFrameTimeSeconds > 0)
|
||||
{
|
||||
misc["string_2"] = llformat("Texture Time: %.2f, Total Time: %.2f", gDebugTimers[0].getElapsedTimeF32(), gFrameTimeSeconds);
|
||||
}
|
||||
misc["string_2"] = llformat("Texture Time: %.2f, Total Time: %.2f", gTextureTimer.getElapsedTimeF32(), gFrameTimeSeconds);
|
||||
|
||||
// misc["int_1"] = LLSD::Integer(gSavedSettings.getU32("RenderQualityPerformance")); // Steve: 1.21
|
||||
// misc["int_2"] = LLSD::Integer(gFrameStalls); // Steve: 1.21
|
||||
|
|
@ -918,13 +769,6 @@ LLSD LLViewerStats::PhaseMap::dumpPhases()
|
|||
const std::string& phase_name = iter->first;
|
||||
result[phase_name]["completed"] = !(iter->second.getStarted());
|
||||
result[phase_name]["elapsed"] = iter->second.getElapsedTimeF32();
|
||||
#if 0 // global stats for each phase seem like overkill here
|
||||
phase_stats_t::iterator stats_iter = sPhaseStats.find(phase_name);
|
||||
if (stats_iter != sPhaseStats.end())
|
||||
{
|
||||
result[phase_name]["stats"] = stats_iter->second.getData();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,82 +33,82 @@
|
|||
class LLViewerStats : public LLSingleton<LLViewerStats>
|
||||
{
|
||||
public:
|
||||
LLStat mKBitStat;
|
||||
LLStat mLayersKBitStat;
|
||||
LLStat mObjectKBitStat;
|
||||
LLStat mAssetKBitStat;
|
||||
LLStat mTextureKBitStat;
|
||||
LLStat mVFSPendingOperations;
|
||||
LLStat mObjectsDrawnStat;
|
||||
LLStat mObjectsCulledStat;
|
||||
LLStat mObjectsTestedStat;
|
||||
LLStat mObjectsComparedStat;
|
||||
LLStat mObjectsOccludedStat;
|
||||
LLStat mFPSStat;
|
||||
LLStat mPacketsInStat;
|
||||
LLStat mPacketsLostStat;
|
||||
LLStat mPacketsOutStat;
|
||||
LLStat mPacketsLostPercentStat;
|
||||
LLStat mTexturePacketsStat;
|
||||
LLStat mActualInKBitStat; // From the packet ring (when faking a bad connection)
|
||||
LLStat mActualOutKBitStat; // From the packet ring (when faking a bad connection)
|
||||
LLStat mTrianglesDrawnStat;
|
||||
LLStat mKBitStat,
|
||||
mLayersKBitStat,
|
||||
mObjectKBitStat,
|
||||
mAssetKBitStat,
|
||||
mTextureKBitStat,
|
||||
mVFSPendingOperations,
|
||||
mObjectsDrawnStat,
|
||||
mObjectsCulledStat,
|
||||
mObjectsTestedStat,
|
||||
mObjectsComparedStat,
|
||||
mObjectsOccludedStat,
|
||||
mFPSStat,
|
||||
mPacketsInStat,
|
||||
mPacketsLostStat,
|
||||
mPacketsOutStat,
|
||||
mPacketsLostPercentStat,
|
||||
mTexturePacketsStat,
|
||||
mActualInKBitStat, // From the packet ring (when faking a bad connection)
|
||||
mActualOutKBitStat, // From the packet ring (when faking a bad connection)
|
||||
mTrianglesDrawnStat;
|
||||
|
||||
// Simulator stats
|
||||
LLStat mSimTimeDilation;
|
||||
LLStat mSimTimeDilation,
|
||||
|
||||
LLStat mSimFPS;
|
||||
LLStat mSimPhysicsFPS;
|
||||
LLStat mSimAgentUPS;
|
||||
LLStat mSimScriptEPS;
|
||||
mSimFPS,
|
||||
mSimPhysicsFPS,
|
||||
mSimAgentUPS,
|
||||
mSimScriptEPS,
|
||||
|
||||
LLStat mSimFrameMsec;
|
||||
LLStat mSimNetMsec;
|
||||
LLStat mSimSimOtherMsec;
|
||||
LLStat mSimSimPhysicsMsec;
|
||||
mSimFrameMsec,
|
||||
mSimNetMsec,
|
||||
mSimSimOtherMsec,
|
||||
mSimSimPhysicsMsec,
|
||||
|
||||
LLStat mSimSimPhysicsStepMsec;
|
||||
LLStat mSimSimPhysicsShapeUpdateMsec;
|
||||
LLStat mSimSimPhysicsOtherMsec;
|
||||
mSimSimPhysicsStepMsec,
|
||||
mSimSimPhysicsShapeUpdateMsec,
|
||||
mSimSimPhysicsOtherMsec,
|
||||
|
||||
LLStat mSimAgentMsec;
|
||||
LLStat mSimImagesMsec;
|
||||
LLStat mSimScriptMsec;
|
||||
LLStat mSimSpareMsec;
|
||||
LLStat mSimSleepMsec;
|
||||
LLStat mSimPumpIOMsec;
|
||||
mSimAgentMsec,
|
||||
mSimImagesMsec,
|
||||
mSimScriptMsec,
|
||||
mSimSpareMsec,
|
||||
mSimSleepMsec,
|
||||
mSimPumpIOMsec,
|
||||
|
||||
LLStat mSimMainAgents;
|
||||
LLStat mSimChildAgents;
|
||||
LLStat mSimObjects;
|
||||
LLStat mSimActiveObjects;
|
||||
LLStat mSimActiveScripts;
|
||||
mSimMainAgents,
|
||||
mSimChildAgents,
|
||||
mSimObjects,
|
||||
mSimActiveObjects,
|
||||
mSimActiveScripts,
|
||||
|
||||
LLStat mSimInPPS;
|
||||
LLStat mSimOutPPS;
|
||||
LLStat mSimPendingDownloads;
|
||||
LLStat mSimPendingUploads;
|
||||
LLStat mSimPendingLocalUploads;
|
||||
LLStat mSimTotalUnackedBytes;
|
||||
mSimInPPS,
|
||||
mSimOutPPS,
|
||||
mSimPendingDownloads,
|
||||
mSimPendingUploads,
|
||||
mSimPendingLocalUploads,
|
||||
mSimTotalUnackedBytes,
|
||||
|
||||
LLStat mPhysicsPinnedTasks;
|
||||
LLStat mPhysicsLODTasks;
|
||||
LLStat mPhysicsMemoryAllocated;
|
||||
mPhysicsPinnedTasks,
|
||||
mPhysicsLODTasks,
|
||||
mPhysicsMemoryAllocated,
|
||||
|
||||
LLStat mSimPingStat;
|
||||
mSimPingStat,
|
||||
|
||||
LLStat mNumImagesStat;
|
||||
LLStat mNumRawImagesStat;
|
||||
LLStat mGLTexMemStat;
|
||||
LLStat mGLBoundMemStat;
|
||||
LLStat mRawMemStat;
|
||||
LLStat mFormattedMemStat;
|
||||
mNumImagesStat,
|
||||
mNumRawImagesStat,
|
||||
mGLTexMemStat,
|
||||
mGLBoundMemStat,
|
||||
mRawMemStat,
|
||||
mFormattedMemStat,
|
||||
|
||||
LLStat mNumObjectsStat;
|
||||
LLStat mNumActiveObjectsStat;
|
||||
LLStat mNumNewObjectsStat;
|
||||
LLStat mNumSizeCulledStat;
|
||||
LLStat mNumVisCulledStat;
|
||||
mNumObjectsStat,
|
||||
mNumActiveObjectsStat,
|
||||
mNumNewObjectsStat,
|
||||
mNumSizeCulledStat,
|
||||
mNumVisCulledStat;
|
||||
|
||||
void resetStats();
|
||||
public:
|
||||
|
|
@ -177,7 +177,6 @@ public:
|
|||
ST_COUNT = 58
|
||||
};
|
||||
|
||||
|
||||
LLViewerStats();
|
||||
~LLViewerStats();
|
||||
|
||||
|
|
@ -304,14 +303,10 @@ private:
|
|||
static const F32 SEND_STATS_PERIOD = 300.0f;
|
||||
|
||||
// The following are from (older?) statistics code found in appviewer.
|
||||
void init_statistics();
|
||||
void reset_statistics();
|
||||
void output_statistics(void*);
|
||||
void update_statistics(U32 frame_count);
|
||||
void update_statistics();
|
||||
void send_stats();
|
||||
|
||||
extern std::map<S32,LLFrameTimer> gDebugTimers;
|
||||
extern std::map<S32,std::string> gDebugTimerLabel;
|
||||
extern LLFrameTimer gTextureTimer;
|
||||
extern U32 gTotalTextureBytes;
|
||||
extern U32 gTotalObjectBytes;
|
||||
extern U32 gTotalTextureBytesPerBoostLevel[] ;
|
||||
|
|
|
|||
|
|
@ -906,14 +906,6 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time)
|
|||
}
|
||||
min_count--;
|
||||
}
|
||||
//if (fetch_count == 0)
|
||||
//{
|
||||
// gDebugTimers[0].pause();
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// gDebugTimers[0].unpause();
|
||||
//}
|
||||
return image_op_timer.getElapsedTimeF32();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -333,19 +333,13 @@ public:
|
|||
if (gSavedSettings.getBOOL("DebugShowTime"))
|
||||
{
|
||||
const U32 y_inc2 = 15;
|
||||
for (std::map<S32,LLFrameTimer>::reverse_iterator iter = gDebugTimers.rbegin();
|
||||
iter != gDebugTimers.rend(); ++iter)
|
||||
{
|
||||
S32 idx = iter->first;
|
||||
LLFrameTimer& timer = iter->second;
|
||||
F32 time = timer.getElapsedTimeF32();
|
||||
S32 hours = (S32)(time / (60*60));
|
||||
S32 mins = (S32)((time - hours*(60*60)) / 60);
|
||||
S32 secs = (S32)((time - hours*(60*60) - mins*60));
|
||||
std::string label = gDebugTimerLabel[idx];
|
||||
if (label.empty()) label = llformat("Debug: %d", idx);
|
||||
addText(xpos, ypos, llformat(" %s: %d:%02d:%02d", label.c_str(), hours,mins,secs)); ypos += y_inc2;
|
||||
}
|
||||
LLFrameTimer& timer = gTextureTimer;
|
||||
F32 time = timer.getElapsedTimeF32();
|
||||
S32 hours = (S32)(time / (60*60));
|
||||
S32 mins = (S32)((time - hours*(60*60)) / 60);
|
||||
S32 secs = (S32)((time - hours*(60*60) - mins*60));
|
||||
addText(xpos, ypos, llformat(" "Texture": %d:%02d:%02d", hours,mins,secs)); ypos += y_inc2;
|
||||
|
||||
|
||||
F32 time = gFrameTimeSeconds;
|
||||
S32 hours = (S32)(time / (60*60));
|
||||
|
|
|
|||
|
|
@ -457,8 +457,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
|
|||
texturep->createGLTexture(0, raw);
|
||||
}
|
||||
texturep->setSubImage(raw, tex_x_begin, tex_y_begin, tex_x_end - tex_x_begin, tex_y_end - tex_y_begin);
|
||||
LLSurface::sTextureUpdateTime += gen_timer.getElapsedTimeF32();
|
||||
LLSurface::sTexelsUpdated += (tex_x_end - tex_x_begin) * (tex_y_end - tex_y_begin);
|
||||
|
||||
for (S32 i = 0; i < 4; i++)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue