Need to test: localassetbrowser preview related floaters hgfloatertexteditor maps media textures! Currently very hacky web browser alpha masks on avatars bumpmaps Are all sky components appearing? LLViewerDynamicTexture (texture baking, browser, animated textures, anim previews, etc) Snapshot related features Customize avatar vfs floater UI textures in general Texture priority issues
214 lines
5.6 KiB
C++
214 lines
5.6 KiB
C++
/**
|
|
* @file llviewerstats.h
|
|
* @brief LLViewerStats class header file
|
|
*
|
|
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
|
*
|
|
* Copyright (c) 2002-2009, Linden Research, Inc.
|
|
*
|
|
* Second Life Viewer Source Code
|
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
|
* to you under the terms of the GNU General Public License, version 2.0
|
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
*
|
|
* There are special exceptions to the terms and conditions of the GPL as
|
|
* it is applied to this Source Code. View the full text of the exception
|
|
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
|
* online at
|
|
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
*
|
|
* By copying, modifying or distributing this software, you acknowledge
|
|
* that you have read and understood your obligations described above,
|
|
* and agree to abide by those obligations.
|
|
*
|
|
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
|
* COMPLETENESS OR PERFORMANCE.
|
|
* $/LicenseInfo$
|
|
*/
|
|
|
|
#ifndef LL_LLVIEWERSTATS_H
|
|
#define LL_LLVIEWERSTATS_H
|
|
|
|
#include "llstat.h"
|
|
#include "lltextureinfo.h"
|
|
|
|
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)
|
|
|
|
// Simulator stats
|
|
LLStat mSimTimeDilation;
|
|
|
|
LLStat mSimFPS;
|
|
LLStat mSimPhysicsFPS;
|
|
LLStat mSimAgentUPS;
|
|
LLStat mSimScriptEPS;
|
|
|
|
LLStat mSimFrameMsec;
|
|
LLStat mSimNetMsec;
|
|
LLStat mSimSimOtherMsec;
|
|
LLStat mSimSimPhysicsMsec;
|
|
|
|
LLStat mSimSimPhysicsStepMsec;
|
|
LLStat mSimSimPhysicsShapeUpdateMsec;
|
|
LLStat mSimSimPhysicsOtherMsec;
|
|
|
|
LLStat mSimAgentMsec;
|
|
LLStat mSimImagesMsec;
|
|
LLStat mSimScriptMsec;
|
|
LLStat mSimSpareMsec;
|
|
LLStat mSimSleepMsec;
|
|
LLStat mSimPumpIOMsec;
|
|
|
|
LLStat mSimMainAgents;
|
|
LLStat mSimChildAgents;
|
|
LLStat mSimObjects;
|
|
LLStat mSimActiveObjects;
|
|
LLStat mSimActiveScripts;
|
|
|
|
LLStat mSimInPPS;
|
|
LLStat mSimOutPPS;
|
|
LLStat mSimPendingDownloads;
|
|
LLStat mSimPendingUploads;
|
|
LLStat mSimPendingLocalUploads;
|
|
LLStat mSimTotalUnackedBytes;
|
|
|
|
LLStat mPhysicsPinnedTasks;
|
|
LLStat mPhysicsLODTasks;
|
|
LLStat mPhysicsMemoryAllocated;
|
|
/*
|
|
LLStat mSimCPUUsageStat;
|
|
LLStat mSimMemTotalStat;
|
|
LLStat mSimMemRSSStat;
|
|
*/
|
|
|
|
|
|
LLStat mSimPingStat;
|
|
|
|
void resetStats();
|
|
public:
|
|
// If you change this, please also add a corresponding text label
|
|
// in statTypeToText in llviewerstats.cpp
|
|
enum EStatType
|
|
{
|
|
ST_VERSION = 0,
|
|
ST_AVATAR_EDIT_SECONDS = 1,
|
|
ST_TOOLBOX_SECONDS = 2,
|
|
ST_CHAT_COUNT = 3,
|
|
ST_IM_COUNT = 4,
|
|
ST_FULLSCREEN_BOOL = 5,
|
|
ST_RELEASE_COUNT= 6,
|
|
ST_CREATE_COUNT = 7,
|
|
ST_REZ_COUNT = 8,
|
|
ST_FPS_10_SECONDS = 9,
|
|
ST_FPS_2_SECONDS = 10,
|
|
ST_MOUSELOOK_SECONDS = 11,
|
|
ST_FLY_COUNT = 12,
|
|
ST_TELEPORT_COUNT = 13,
|
|
ST_OBJECT_DELETE_COUNT = 14,
|
|
ST_SNAPSHOT_COUNT = 15,
|
|
ST_UPLOAD_SOUND_COUNT = 16,
|
|
ST_UPLOAD_TEXTURE_COUNT = 17,
|
|
ST_EDIT_TEXTURE_COUNT = 18,
|
|
ST_KILLED_COUNT = 19,
|
|
ST_FRAMETIME_JITTER = 20,
|
|
ST_FRAMETIME_SLEW = 21,
|
|
ST_INVENTORY_TOO_LONG = 22,
|
|
ST_WEARABLES_TOO_LONG = 23,
|
|
ST_LOGIN_SECONDS = 24,
|
|
ST_LOGIN_TIMEOUT_COUNT = 25,
|
|
ST_HAS_BAD_TIMER = 26,
|
|
ST_DOWNLOAD_FAILED = 27,
|
|
ST_LSL_SAVE_COUNT = 28,
|
|
ST_UPLOAD_ANIM_COUNT = 29,
|
|
ST_FPS_8_SECONDS = 30,
|
|
ST_SIM_FPS_20_SECONDS = 31,
|
|
ST_PHYS_FPS_20_SECONDS = 32,
|
|
ST_LOSS_05_SECONDS = 33,
|
|
ST_FPS_DROP_50_RATIO = 34,
|
|
ST_ENABLE_VBO = 35,
|
|
ST_DELTA_BANDWIDTH = 36,
|
|
ST_MAX_BANDWIDTH = 37,
|
|
ST_LIGHTING_DETAIL = 38,
|
|
ST_VISIBLE_AVATARS = 39,
|
|
ST_SHADER_OBJECTS = 40,
|
|
ST_SHADER_ENVIRONMENT = 41,
|
|
ST_DRAW_DIST = 42,
|
|
ST_CHAT_BUBBLES = 43,
|
|
ST_SHADER_AVATAR = 44,
|
|
ST_FRAME_SECS = 45,
|
|
ST_UPDATE_SECS = 46,
|
|
ST_NETWORK_SECS = 47,
|
|
ST_IMAGE_SECS = 48,
|
|
ST_REBUILD_SECS = 49,
|
|
ST_RENDER_SECS = 50,
|
|
ST_CROSSING_AVG = 51,
|
|
ST_CROSSING_MAX = 52,
|
|
ST_LIBXUL_WIDGET_USED = 53, // Unused
|
|
ST_WINDOW_WIDTH = 54,
|
|
ST_WINDOW_HEIGHT = 55,
|
|
ST_TEX_BAKES = 56,
|
|
ST_TEX_REBAKES = 57,
|
|
ST_LOGITECH_LCD = 58,
|
|
|
|
ST_COUNT = 59
|
|
};
|
|
|
|
|
|
LLViewerStats();
|
|
~LLViewerStats();
|
|
|
|
// all return latest value of given stat
|
|
F64 getStat(EStatType type) const;
|
|
F64 setStat(EStatType type, F64 value); // set the stat to value
|
|
F64 incStat(EStatType type, F64 value = 1.f); // add value to the stat
|
|
|
|
void updateFrameStats(const F64 time_diff);
|
|
|
|
void addToMessage(LLSD &body) const;
|
|
|
|
private:
|
|
F64 mStats[ST_COUNT];
|
|
|
|
F64 mLastTimeDiff; // used for time stat updates
|
|
};
|
|
|
|
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 send_stats();
|
|
|
|
extern std::map<S32,LLFrameTimer> gDebugTimers;
|
|
extern std::map<S32,std::string> gDebugTimerLabel;
|
|
extern U32 gTotalTextureBytes;
|
|
extern U32 gTotalObjectBytes;
|
|
extern U32 gTotalTextureBytesPerBoostLevel[] ;
|
|
#endif // LL_LLVIEWERSTATS_H
|