diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp
index 8d269a91a8f0be917375c424a482a2e47acadf32..528a7bb4a5f51f9b11b29739502a6738e9f08b8b 100644
--- a/indra/llcharacter/llcharacter.cpp
+++ b/indra/llcharacter/llcharacter.cpp
@@ -180,7 +180,7 @@ void LLCharacter::requestStopMotion( LLMotion* motion)
 //-----------------------------------------------------------------------------
 // updateMotions()
 //-----------------------------------------------------------------------------
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_ANIMATION("Update Animation");
+static LLFastTimer::DeclareTimer FTM_UPDATE_ANIMATION("Update Animation");
 
 void LLCharacter::updateMotions(e_update_t update_type)
 {
diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp
index 0db9bb50cd7f1e3fb98f7e31082723544665ceca..ca7e471bf253d83dee384b2c6e8d47187c63bbdd 100644
--- a/indra/llcommon/lldate.cpp
+++ b/indra/llcommon/lldate.cpp
@@ -94,7 +94,7 @@ std::string LLDate::asRFC1123() const
 	return toHTTPDateString (std::string ("%A, %d %b %Y %H:%M:%S GMT"));
 }
 
-LLFastTimerUtil::DeclareTimer FT_DATE_FORMAT("Date Format");
+LLFastTimer::DeclareTimer FT_DATE_FORMAT("Date Format");
 
 std::string LLDate::toHTTPDateString (std::string fmt) const
 {
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index ff96bd7abc9364fe2c6768b699a1b067e7f65c4b..645bbb88ff49dde87d0eb93adda5e8fee37e21ff 100644
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -97,8 +97,7 @@ class LLMutex;
 #include <queue>
 #include "llsd.h"
 
-
-class LL_COMMON_API LLFastTimerUtil
+class LL_COMMON_API LLFastTimer
 {
 public:
 
@@ -153,9 +152,8 @@ public:
 
 		FrameState& getFrameState() const;
 
-
 	private: 
-		friend class LLFastTimerUtil;
+		friend class LLFastTimer;
 		friend class NamedTimerFactory;
 
 		//
@@ -172,7 +170,6 @@ public:
 		static void buildHierarchy();
 		static void resetFrame();
 		static void reset();
-
 	
 		//
 		// members
@@ -194,7 +191,6 @@ public:
 		std::vector<NamedTimer*>	mChildren;
 		bool						mCollapsed;				// don't show children
 		bool						mNeedsSorting;			// sort children whenever child added
-
 	};
 
 	// used to statically declare a new named timer
@@ -213,77 +209,17 @@ public:
 		FrameState*		mFrameState; 
 	};
 
-
-public:
-	static LLMutex*			sLogLock;
-	static std::queue<LLSD> sLogQueue;
-	static BOOL				sLog;
-	static BOOL				sMetricLog;
-	static bool 			sPauseHistory;
-	static bool 			sResetHistory;
-	static U64				sTimerCycles;
-	static U32				sTimerCalls;
-
-	typedef std::vector<FrameState> info_list_t;
-	static info_list_t& getFrameStateList();
-
-	
-	// call this once a frame to reset timers
-	static void nextFrame();
-
-	// dumps current cumulative frame stats to log
-	// call nextFrame() to reset timers
-	static void dumpCurTimes(); 
-
-	// call this to reset timer hierarchy, averages, etc.
-	static void reset();
-
-	static U64 countsPerSecond();
-	static S32 getLastFrameIndex() { return sLastFrameIndex; }
-	static S32 getCurFrameIndex() { return sCurFrameIndex; }
-
-	static void writeLog(std::ostream& os);
-	static const NamedTimer* getTimerByName(const std::string& name);
-
-	struct CurTimerData
-	{
-		LLFastTimer*	mCurTimer;
-		FrameState*		mFrameState;
-		U32				mChildTime;
-	};
-	static CurTimerData		sCurTimerData;
-
-private:
-	static S32				sCurFrameIndex;
-	static S32				sLastFrameIndex;
-	static U64				sLastFrameTime;
-	static info_list_t*		sTimerInfos;
-};
-
-class LLFastTimer
-{
-	friend LLFastTimerUtil::NamedTimer;
 public:
-	LLFastTimer(LLFastTimerUtil::FrameState* state)
-	:	mFrameState(state)
-	{
-		U32 start_time = get_cpu_clock_count_32();
-		mStartTime = start_time;
-		mFrameState->mActiveCount++;
-		LLFastTimerUtil::sCurTimerData.mCurTimer = this;
-		LLFastTimerUtil::sCurTimerData.mFrameState = mFrameState;
-		LLFastTimerUtil::sCurTimerData.mChildTime = 0;
-		mLastTimerData = LLFastTimerUtil::sCurTimerData;
-	}
+	LLFastTimer(LLFastTimer::FrameState* state);
 
-	LL_INLINE LLFastTimer(LLFastTimerUtil::DeclareTimer& timer)
+	LL_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer)
 	:	mFrameState(timer.mFrameState)
 	{
 #if TIME_FAST_TIMERS
 		U64 timer_start = get_cpu_clock_count_64();
 #endif
 #if FAST_TIMER_ON
-		LLFastTimerUtil::FrameState* frame_state = mFrameState;
+		LLFastTimer::FrameState* frame_state = mFrameState;
 		mStartTime = get_cpu_clock_count_32();
 
 		frame_state->mActiveCount++;
@@ -291,7 +227,7 @@ public:
 		// keep current parent as long as it is active when we are
 		frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0);
 	
-		LLFastTimerUtil::CurTimerData* cur_timer_data = &LLFastTimerUtil::sCurTimerData;
+		LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData;
 		mLastTimerData = *cur_timer_data;
 		cur_timer_data->mCurTimer = this;
 		cur_timer_data->mFrameState = frame_state;
@@ -309,10 +245,10 @@ public:
 		U64 timer_start = get_cpu_clock_count_64();
 #endif
 #if FAST_TIMER_ON
-		LLFastTimerUtil::FrameState* frame_state = mFrameState;
+		LLFastTimer::FrameState* frame_state = mFrameState;
 		U32 total_time = get_cpu_clock_count_32() - mStartTime;
 
-		frame_state->mSelfTimeCounter += total_time - LLFastTimerUtil::sCurTimerData.mChildTime;
+		frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime;
 		frame_state->mActiveCount--;
 
 		// store last caller to bootstrap tree creation
@@ -322,7 +258,7 @@ public:
 		// we are only tracking self time, so subtract our total time delta from parents
 		mLastTimerData.mChildTime += total_time;
 
-		LLFastTimerUtil::sCurTimerData = mLastTimerData;
+		LLFastTimer::sCurTimerData = mLastTimerData;
 #endif
 #if TIME_FAST_TIMERS
 		U64 timer_end = get_cpu_clock_count_64();
@@ -330,10 +266,58 @@ public:
 		sTimerCalls++;
 #endif	
 	}
+
+public:
+	static LLMutex*			sLogLock;
+	static std::queue<LLSD> sLogQueue;
+	static BOOL				sLog;
+	static BOOL				sMetricLog;
+	static bool 			sPauseHistory;
+	static bool 			sResetHistory;
+	static U64				sTimerCycles;
+	static U32				sTimerCalls;
+
+	typedef std::vector<FrameState> info_list_t;
+	static info_list_t& getFrameStateList();
+
+	
+	// call this once a frame to reset timers
+	static void nextFrame();
+
+	// dumps current cumulative frame stats to log
+	// call nextFrame() to reset timers
+	static void dumpCurTimes(); 
+
+	// call this to reset timer hierarchy, averages, etc.
+	static void reset();
+
+	static U64 countsPerSecond();
+	static S32 getLastFrameIndex() { return sLastFrameIndex; }
+	static S32 getCurFrameIndex() { return sCurFrameIndex; }
+
+	static void writeLog(std::ostream& os);
+	static const NamedTimer* getTimerByName(const std::string& name);
+
+	struct CurTimerData
+	{
+		LLFastTimer*	mCurTimer;
+		FrameState*		mFrameState;
+		U32				mChildTime;
+	};
+	static CurTimerData		sCurTimerData;
+
 private:
-	U32								mStartTime;
-	LLFastTimerUtil::FrameState*	mFrameState;
-	LLFastTimerUtil::CurTimerData	mLastTimerData;
+	static S32				sCurFrameIndex;
+	static S32				sLastFrameIndex;
+	static U64				sLastFrameTime;
+	static info_list_t*		sTimerInfos;
+
+	U32							mStartTime;
+	LLFastTimer::FrameState*	mFrameState;
+	LLFastTimer::CurTimerData	mLastTimerData;
+
 };
 
+typedef class LLFastTimer LLFastTimer;
+
 #endif // LL_LLFASTTIMER_H
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index d09741cfe9757a79ab4ba83589caef9c6809dfd2..5f3d9d658202985bafaff33bb8b2648771fb1300 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -42,7 +42,7 @@
 #include <winnls.h> // for WideCharToMultiByte
 #endif
 
-LLFastTimerUtil::DeclareTimer FT_STRING_FORMAT("String Format");
+LLFastTimer::DeclareTimer FT_STRING_FORMAT("String Format");
 
 
 std::string ll_safe_string(const char* in)
diff --git a/indra/llmessage/llpumpio.cpp b/indra/llmessage/llpumpio.cpp
index fb75ffa94299d058cdf3dffd446c755700cce435..5e9dfd81faa48e30175eeace6ed6e66af36d7ca1 100644
--- a/indra/llmessage/llpumpio.cpp
+++ b/indra/llmessage/llpumpio.cpp
@@ -444,7 +444,7 @@ void LLPumpIO::pump()
 	pump(DEFAULT_POLL_TIMEOUT);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PUMP("Pump");
+static LLFastTimer::DeclareTimer FTM_PUMP("Pump");
 
 //timeout is in microseconds
 void LLPumpIO::pump(const S32& poll_timeout)
diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp
index 3c67cbf3d59b35b62b3eac0ebfb08b09f34311f9..6682575ca58c71fe2a3dd833ce603f4ca1331452 100644
--- a/indra/llmessage/lltemplatemessagereader.cpp
+++ b/indra/llmessage/lltemplatemessagereader.cpp
@@ -531,7 +531,7 @@ void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host, const S3
 	gMessageSystem->callExceptionFunc(MX_RAN_OFF_END_OF_PACKET);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PROCESS_MESSAGES("Process Messages");
+static LLFastTimer::DeclareTimer FTM_PROCESS_MESSAGES("Process Messages");
 
 // decode a given message
 BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender )
diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp
index 0f38785d527cca1189293766e189a352bcfaf439..1de1d6ded4a0df1a244bb949f3ddae5cfe649e1b 100644
--- a/indra/llrender/llfontgl.cpp
+++ b/indra/llrender/llfontgl.cpp
@@ -116,7 +116,7 @@ BOOL LLFontGL::loadFace(const std::string& filename, F32 point_size, F32 vert_dp
 	return mFontFreetype->loadFace(filename, point_size, vert_dpi, horz_dpi, components, is_fallback);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_FONTS("Fonts");
+static LLFastTimer::DeclareTimer FTM_RENDER_FONTS("Fonts");
 
 S32 LLFontGL::render(const LLWString &wstr, S32 begin_offset, F32 x, F32 y, const LLColor4 &color, HAlign halign, VAlign valign, U8 style, 
 					 ShadowType shadow, S32 max_chars, S32 max_pixels, F32* right_x, BOOL use_ellipses) const
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 406e672efdb257d6958cd4ef9651701c47a6fabd..845203b420ebb7e29ef5a70372462f6ba61948c1 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2692,7 +2692,7 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
 	}
 }
 
-LLFastTimerUtil::DeclareTimer POST_BUILD("Floater Post Build");
+LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build");
 
 bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node)
 {
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index a1ef9ff3408ffb9b7366308000ced5f11074904d..ede32084d0c0c58101ce3c7069f292570dabad47 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -231,7 +231,7 @@ LLColor3 LLKeywords::readColor( const std::string& s )
 	return LLColor3( r, g, b );
 }
 
-LLFastTimerUtil::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
+LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
 
 // Walk through a string, applying the rules specified by the keyword token list and
 // create a list of color segments.
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index 825cafb80d420d87659654d953fa3b2c123ff00c..1aaba88c49c771501bccd66b34b5e8de8d49a842 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -437,7 +437,7 @@ bool LLLayoutStack::getPanelMinSize(const std::string& panel_name, S32* min_widt
 	return NULL != panel;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_LAYOUT("Update LayoutStacks");
+static LLFastTimer::DeclareTimer FTM_UPDATE_LAYOUT("Update LayoutStacks");
 void LLLayoutStack::updateLayout(BOOL force_resize)
 {
 	LLFastTimer ft(FTM_UPDATE_LAYOUT);
diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp
index 24f6a89da1a2ecfad0b4ab1cbd555f3b3bbe24b4..db3288243828de36db4ab1582df7c34b63c511f0 100644
--- a/indra/llui/llpanel.cpp
+++ b/indra/llui/llpanel.cpp
@@ -369,7 +369,7 @@ void LLPanel::setBorderVisible(BOOL b)
 	}
 }
 
-LLFastTimerUtil::DeclareTimer FTM_PANEL_CONSTRUCTION("Panel Construction");
+LLFastTimer::DeclareTimer FTM_PANEL_CONSTRUCTION("Panel Construction");
 
 LLView* LLPanel::fromXML(LLXMLNodePtr node, LLView* parent, LLXMLNodePtr output_node)
 {
@@ -476,9 +476,9 @@ void LLPanel::initFromParams(const LLPanel::Params& p)
 	mBgAlphaImage = p.bg_alpha_image();
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PANEL_SETUP("Panel Setup");
-static LLFastTimerUtil::DeclareTimer FTM_EXTERNAL_PANEL_LOAD("Load Extern Panel Reference");
-static LLFastTimerUtil::DeclareTimer FTM_PANEL_POSTBUILD("Panel PostBuild");
+static LLFastTimer::DeclareTimer FTM_PANEL_SETUP("Panel Setup");
+static LLFastTimer::DeclareTimer FTM_EXTERNAL_PANEL_LOAD("Load Extern Panel Reference");
+static LLFastTimer::DeclareTimer FTM_PANEL_POSTBUILD("Panel PostBuild");
 
 BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node)
 {
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 400e627d840725021e89f5b94672aab5c1d30d99..5ebf49c48818df9b3cc2deee0f83816377607ad3 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1065,7 +1065,7 @@ S32 LLTextBase::getLeftOffset(S32 width)
 }
 
 
-static LLFastTimerUtil::DeclareTimer FTM_TEXT_REFLOW ("Text Reflow");
+static LLFastTimer::DeclareTimer FTM_TEXT_REFLOW ("Text Reflow");
 void LLTextBase::reflow(S32 start_index)
 {
 	LLFastTimer ft(FTM_TEXT_REFLOW);
@@ -1377,7 +1377,7 @@ void LLTextBase::removeDocumentChild(LLView* view)
 }
 
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_TEXT_SEGMENTS("Update Text Segments");
+static LLFastTimer::DeclareTimer FTM_UPDATE_TEXT_SEGMENTS("Update Text Segments");
 void LLTextBase::updateSegments()
 {
 	LLFastTimer ft(FTM_UPDATE_TEXT_SEGMENTS);
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index a4c2770e20e79d938929c335e5c1f6f861bebf90..e8fc9475a542d55f42958964c6d6e692b9fbe5f5 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2498,7 +2498,7 @@ BOOL LLTextEditor::tryToRevertToPristineState()
 }
 
 
-static LLFastTimerUtil::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
+static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
 void LLTextEditor::loadKeywords(const std::string& filename,
 								const std::vector<std::string>& funcs,
 								const std::vector<std::string>& tooltips,
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp
index c5d3de576caf3bf0353f30242f64cc647de081b2..27237800d4b65edb2d00acaf3e9723b6e2dbfc01 100644
--- a/indra/llui/lluictrlfactory.cpp
+++ b/indra/llui/lluictrlfactory.cpp
@@ -50,9 +50,9 @@
 // this library includes
 #include "llfloater.h"
 
-LLFastTimerUtil::DeclareTimer FTM_WIDGET_CONSTRUCTION("Widget Construction");
-LLFastTimerUtil::DeclareTimer FTM_INIT_FROM_PARAMS("Widget InitFromParams");
-LLFastTimerUtil::DeclareTimer FTM_WIDGET_SETUP("Widget Setup");
+LLFastTimer::DeclareTimer FTM_WIDGET_CONSTRUCTION("Widget Construction");
+LLFastTimer::DeclareTimer FTM_INIT_FROM_PARAMS("Widget InitFromParams");
+LLFastTimer::DeclareTimer FTM_WIDGET_SETUP("Widget Setup");
 
 //-----------------------------------------------------------------------------
 
@@ -105,7 +105,7 @@ void LLUICtrlFactory::loadWidgetTemplate(const std::string& widget_tag, LLInitPa
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_CREATE_CHILDREN("Create XUI Children");
+static LLFastTimer::DeclareTimer FTM_CREATE_CHILDREN("Create XUI Children");
 
 //static 
 void LLUICtrlFactory::createChildren(LLView* viewp, LLXMLNodePtr node, const widget_registry_t& registry, LLXMLNodePtr output_node)
@@ -147,7 +147,7 @@ void LLUICtrlFactory::createChildren(LLView* viewp, LLXMLNodePtr node, const wid
 
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_XML_PARSE("XML Reading/Parsing");
+static LLFastTimer::DeclareTimer FTM_XML_PARSE("XML Reading/Parsing");
 //-----------------------------------------------------------------------------
 // getLayeredXMLNode()
 //-----------------------------------------------------------------------------
@@ -175,7 +175,7 @@ bool LLUICtrlFactory::getLocalizedXMLNode(const std::string &xui_filename, LLXML
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_BUILD_FLOATERS("Build Floaters");
+static LLFastTimer::DeclareTimer FTM_BUILD_FLOATERS("Build Floaters");
 
 //-----------------------------------------------------------------------------
 // buildFloater()
@@ -247,7 +247,7 @@ S32 LLUICtrlFactory::saveToXML(LLView* viewp, const std::string& filename)
 	return 0;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_BUILD_PANELS("Build Panels");
+static LLFastTimer::DeclareTimer FTM_BUILD_PANELS("Build Panels");
 
 //-----------------------------------------------------------------------------
 // buildPanel()
@@ -313,7 +313,7 @@ BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, L
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
-static LLFastTimerUtil::DeclareTimer FTM_CREATE_FROM_XML("Create child widget");
+static LLFastTimer::DeclareTimer FTM_CREATE_FROM_XML("Create child widget");
 
 LLView *LLUICtrlFactory::createFromXML(LLXMLNodePtr node, LLView* parent, const std::string& filename, const widget_registry_t& registry, LLXMLNodePtr output_node)
 {
diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h
index 80e82b784c5b33d195ca07c63441dad0ae155bf0..b1fa6add67bfbc708b81714ac2b66a4e8422676f 100644
--- a/indra/llui/lluictrlfactory.h
+++ b/indra/llui/lluictrlfactory.h
@@ -104,9 +104,9 @@ class LLDefaultWidgetRegistry
 //:	public LLRegistrySingleton<const std::type_info*, empty_param_block_func_t, LLDefaultParamBlockRegistry, LLCompareTypeID>
 //{};
 
-extern LLFastTimerUtil::DeclareTimer FTM_WIDGET_SETUP;
-extern LLFastTimerUtil::DeclareTimer FTM_WIDGET_CONSTRUCTION;
-extern LLFastTimerUtil::DeclareTimer FTM_INIT_FROM_PARAMS;
+extern LLFastTimer::DeclareTimer FTM_WIDGET_SETUP;
+extern LLFastTimer::DeclareTimer FTM_WIDGET_CONSTRUCTION;
+extern LLFastTimer::DeclareTimer FTM_INIT_FROM_PARAMS;
 
 // Build time optimization, generate this once in .cpp file
 #ifndef LLUICTRLFACTORY_CPP
diff --git a/indra/llui/lluistring.cpp b/indra/llui/lluistring.cpp
index e15dc9eb858a079059b5c3942e79205959325d8f..f7a53e87def377a8f0757a5606a92b4606b8040d 100644
--- a/indra/llui/lluistring.cpp
+++ b/indra/llui/lluistring.cpp
@@ -35,7 +35,7 @@
 #include "llsd.h"
 #include "lltrans.h"
 
-LLFastTimerUtil::DeclareTimer FTM_UI_STRING("UI String");
+LLFastTimer::DeclareTimer FTM_UI_STRING("UI String");
 
 
 LLUIString::LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args)
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 9da25b0308497a76d2a1a0d45360f3681256c047..f1b08c380b5ff79f9c2907ffea1162f193e820e9 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -1707,7 +1707,7 @@ LLView* LLView::getChildView(const std::string& name, BOOL recurse) const
 	return child;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_FIND_VIEWS("Find Widgets");
+static LLFastTimer::DeclareTimer FTM_FIND_VIEWS("Find Widgets");
 
 LLView* LLView::findChildView(const std::string& name, BOOL recurse) const
 {
diff --git a/indra/llvfs/llvfile.cpp b/indra/llvfs/llvfile.cpp
index d9437ddd4c90d89c1896d06ab70a852916cb1f45..5fdf41188d46faf90bff83d9b85f5e486e81ec4c 100644
--- a/indra/llvfs/llvfile.cpp
+++ b/indra/llvfs/llvfile.cpp
@@ -44,7 +44,7 @@ const S32 LLVFile::WRITE		= 0x00000002;
 const S32 LLVFile::READ_WRITE	= 0x00000003;  // LLVFile::READ & LLVFile::WRITE
 const S32 LLVFile::APPEND		= 0x00000006;  // 0x00000004 & LLVFile::WRITE
 
-static LLFastTimerUtil::DeclareTimer FTM_VFILE_WAIT("VFile Wait");
+static LLFastTimer::DeclareTimer FTM_VFILE_WAIT("VFile Wait");
 
 //----------------------------------------------------------------------------
 LLVFSThread* LLVFile::sVFSThread = NULL;
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 5064c176e0ec559e51ed040911b9be0c3320c20b..b591111b757371263df42ed269644702c20cadaa 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1642,8 +1642,8 @@ void LLWindowWin32::gatherInput()
 	mMousePositionModified = FALSE;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_KEYHANDLER("Handle Keyboard");
-static LLFastTimerUtil::DeclareTimer FTM_MOUSEHANDLER("Handle Mouse");
+static LLFastTimer::DeclareTimer FTM_KEYHANDLER("Handle Keyboard");
+static LLFastTimer::DeclareTimer FTM_MOUSEHANDLER("Handle Mouse");
 
 LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_param, LPARAM l_param)
 {
diff --git a/indra/llxuixml/lltrans.cpp b/indra/llxuixml/lltrans.cpp
index 2141cc40eb9db55c5ea7dee3d47dacc45fea1c71..d6f17dbb085779b71ed29e2ff9ff527647f98ca8 100644
--- a/indra/llxuixml/lltrans.cpp
+++ b/indra/llxuixml/lltrans.cpp
@@ -137,7 +137,7 @@ bool LLTrans::parseLanguageStrings(LLXMLNodePtr &root)
 
 
 
-static LLFastTimerUtil::DeclareTimer FTM_GET_TRANS("Translate string");
+static LLFastTimer::DeclareTimer FTM_GET_TRANS("Translate string");
 
 //static 
 std::string LLTrans::getString(const std::string &xml_desc, const LLStringUtil::format_map_t& msg_args)
diff --git a/indra/llxuixml/llxuiparser.cpp b/indra/llxuixml/llxuiparser.cpp
index 8ea1890d1548eabb9d747d309c3a46d2dd326d83..17399865e5295230fa428794a0a09a129cc03bf1 100644
--- a/indra/llxuixml/llxuiparser.cpp
+++ b/indra/llxuixml/llxuiparser.cpp
@@ -400,7 +400,7 @@ LLXUIParser::LLXUIParser()
 								boost::bind(&LLXUIParser::writeSDValue, this, _1, _2));
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PARSE_XUI("XUI Parsing");
+static LLFastTimer::DeclareTimer FTM_PARSE_XUI("XUI Parsing");
 
 void LLXUIParser::readXUI(LLXMLNodePtr node, LLInitParam::BaseBlock& block, const std::string& filename, bool silent)
 {
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 8ac2f0966f4bb7af9126350ce04742b9aec9950a..e0356bc091af11c9f975a1d4e7303ef05068fcc3 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -480,11 +480,11 @@ public:
 
 	LLFastTimerLogThread() : LLThread("fast timer log")
 	{
-		if(LLFastTimerUtil::sLog)
+		if(LLFastTimer::sLog)
 		{
 			mFile = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance.slp");
 		}
-		if(LLFastTimerUtil::sMetricLog)
+		if(LLFastTimer::sMetricLog)
 		{
 			mFile = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric.slp");
 		}
@@ -496,7 +496,7 @@ public:
 		
 		while (!LLAppViewer::instance()->isQuitting())
 		{
-			LLFastTimerUtil::writeLog(os);
+			LLFastTimer::writeLog(os);
 			os.flush();
 			ms_sleep(32);
 		}
@@ -606,7 +606,7 @@ bool LLAppViewer::init()
 	// into the log files during normal startup until AFTER
 	// we run the "program crashed last time" error handler below.
 	//
-	LLFastTimerUtil::reset();
+	LLFastTimer::reset();
 
 	// Need to do this initialization before we do anything else, since anything
 	// that touches files should really go through the lldir API
@@ -911,15 +911,15 @@ bool LLAppViewer::init()
 	return true;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_MESSAGES("System Messages");
-static LLFastTimerUtil::DeclareTimer FTM_SLEEP("Sleep");
-static LLFastTimerUtil::DeclareTimer FTM_TEXTURE_CACHE("Texture Cache");
-static LLFastTimerUtil::DeclareTimer FTM_DECODE("Image Decode");
-static LLFastTimerUtil::DeclareTimer FTM_VFS("VFS Thread");
-static LLFastTimerUtil::DeclareTimer FTM_LFS("LFS Thread");
-static LLFastTimerUtil::DeclareTimer FTM_PAUSE_THREADS("Pause Threads");
-static LLFastTimerUtil::DeclareTimer FTM_IDLE("Idle");
-static LLFastTimerUtil::DeclareTimer FTM_PUMP("Pump");
+static LLFastTimer::DeclareTimer FTM_MESSAGES("System Messages");
+static LLFastTimer::DeclareTimer FTM_SLEEP("Sleep");
+static LLFastTimer::DeclareTimer FTM_TEXTURE_CACHE("Texture Cache");
+static LLFastTimer::DeclareTimer FTM_DECODE("Image Decode");
+static LLFastTimer::DeclareTimer FTM_VFS("VFS Thread");
+static LLFastTimer::DeclareTimer FTM_LFS("LFS Thread");
+static LLFastTimer::DeclareTimer FTM_PAUSE_THREADS("Pause Threads");
+static LLFastTimer::DeclareTimer FTM_IDLE("Idle");
+static LLFastTimer::DeclareTimer FTM_PUMP("Pump");
 
 bool LLAppViewer::mainLoop()
 {
@@ -956,7 +956,7 @@ bool LLAppViewer::mainLoop()
 	// Handle messages
 	while (!LLApp::isExiting())
 	{
-		LLFastTimerUtil::nextFrame(); // Should be outside of any timer instances
+		LLFastTimer::nextFrame(); // Should be outside of any timer instances
 
 		try
 		{
@@ -1551,14 +1551,14 @@ bool LLAppViewer::cleanup()
 	{
 		llinfos << "Analyzing performance" << llendl;
 		
-		if(LLFastTimerUtil::sLog)
+		if(LLFastTimer::sLog)
 		{
 			LLFastTimerView::doAnalysis(
 				gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance_baseline.slp"),
 				gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance.slp"),
 				gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance_report.csv"));
 		}
-		if(LLFastTimerUtil::sMetricLog)
+		if(LLFastTimer::sMetricLog)
 		{
 			LLFastTimerView::doAnalysis(
 				gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric_baseline.slp"),
@@ -1678,9 +1678,9 @@ bool LLAppViewer::initThreads()
 	LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && false);
 	LLImage::initClass();
 
-	if (LLFastTimerUtil::sLog || LLFastTimerUtil::sMetricLog)
+	if (LLFastTimer::sLog || LLFastTimer::sMetricLog)
 	{
-		LLFastTimerUtil::sLogLock = new LLMutex(NULL);
+		LLFastTimer::sLogLock = new LLMutex(NULL);
 		mFastTimerLogThread = new LLFastTimerLogThread();
 		mFastTimerLogThread->start();
 	}
@@ -2031,12 +2031,12 @@ bool LLAppViewer::initConfiguration()
 
 	if (clp.hasOption("logperformance"))
 	{
-		LLFastTimerUtil::sLog = TRUE;
+		LLFastTimer::sLog = TRUE;
 	}
 	
 	if(clp.hasOption("logmetrics"))
 	{
-		LLFastTimerUtil::sMetricLog = TRUE ;
+		LLFastTimer::sMetricLog = TRUE ;
 	}
 
 	if (clp.hasOption("graphicslevel"))
@@ -3370,14 +3370,14 @@ public:
 		}
 };
 
-static LLFastTimerUtil::DeclareTimer FTM_AUDIO_UPDATE("Update Audio");
-static LLFastTimerUtil::DeclareTimer FTM_CLEANUP("Cleanup");
-static LLFastTimerUtil::DeclareTimer FTM_IDLE_CB("Idle Callbacks");
-static LLFastTimerUtil::DeclareTimer FTM_LOD_UPDATE("Update LOD");
-static LLFastTimerUtil::DeclareTimer FTM_OBJECTLIST_UPDATE("Update Objectlist");
-static LLFastTimerUtil::DeclareTimer FTM_REGION_UPDATE("Update Region");
-static LLFastTimerUtil::DeclareTimer FTM_WORLD_UPDATE("Update World");
-static LLFastTimerUtil::DeclareTimer FTM_NETWORK("Network");
+static LLFastTimer::DeclareTimer FTM_AUDIO_UPDATE("Update Audio");
+static LLFastTimer::DeclareTimer FTM_CLEANUP("Cleanup");
+static LLFastTimer::DeclareTimer FTM_IDLE_CB("Idle Callbacks");
+static LLFastTimer::DeclareTimer FTM_LOD_UPDATE("Update LOD");
+static LLFastTimer::DeclareTimer FTM_OBJECTLIST_UPDATE("Update Objectlist");
+static LLFastTimer::DeclareTimer FTM_REGION_UPDATE("Update Region");
+static LLFastTimer::DeclareTimer FTM_WORLD_UPDATE("Update World");
+static LLFastTimer::DeclareTimer FTM_NETWORK("Network");
 
 ///////////////////////////////////////////////////////
 // idle()
@@ -3882,7 +3882,7 @@ void LLAppViewer::sendLogoutRequest()
 static F32 CheckMessagesMaxTime = CHECK_MESSAGES_DEFAULT_MAX_TIME;
 #endif
 
-static LLFastTimerUtil::DeclareTimer FTM_IDLE_NETWORK("Network");
+static LLFastTimer::DeclareTimer FTM_IDLE_NETWORK("Network");
 
 void LLAppViewer::idleNetwork()
 {
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 02e5f9c65365694b8bfea71d8ea675f221ccd8b1..d60330024afedf42cb35e2dd6e08c7a19c141c29 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -60,7 +60,7 @@ const F32 MAX_INTERPOLATE_DISTANCE_SQUARED = 10.f * 10.f;
 const F32 OBJECT_DAMPING_TIME_CONSTANT = 0.06f;
 const F32 MIN_SHADOW_CASTER_RADIUS = 2.0f;
 
-static LLFastTimerUtil::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
+static LLFastTimer::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
 
 
 ////////////////////////
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 605095f24a45779efb76458c751662be58b3b969..546b60f286777c35aee462b14597b5bd329d88f5 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -94,7 +94,7 @@ S32 normal_channel = -1;
 S32 specular_channel = -1;
 S32 diffuse_channel = -1;
 
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_AVATAR("Avatar Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_AVATAR("Avatar Shadow");
 
 LLDrawPoolAvatar::LLDrawPoolAvatar() : 
 	LLFacePool(POOL_AVATAR)	
diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp
index 04f411e34551d6758685253753c09d14a2131a55..ca7a1b47c2cacb3754d3a82ccec361ac239b7e8a 100644
--- a/indra/newview/lldrawpoolsimple.cpp
+++ b/indra/newview/lldrawpoolsimple.cpp
@@ -47,8 +47,8 @@
 static LLGLSLShader* simple_shader = NULL;
 static LLGLSLShader* fullbright_shader = NULL;
 
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_SIMPLE_DEFERRED("Deferred Simple");
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_GRASS_DEFERRED("Deferred Grass");
+static LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE_DEFERRED("Deferred Simple");
+static LLFastTimer::DeclareTimer FTM_RENDER_GRASS_DEFERRED("Deferred Grass");
 
 void LLDrawPoolGlow::render(S32 pass)
 {
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index 0e36e9e6d2b08e4fdef4afe209468db08d6aae31..9dc22cddcd2a0587dc157956c3b7181d88450e47 100644
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -61,7 +61,7 @@ int DebugDetailMap = 0;
 S32 LLDrawPoolTerrain::sDetailMode = 1;
 F32 LLDrawPoolTerrain::sDetailScale = DETAIL_SCALE;
 static LLGLSLShader* sShader = NULL;
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_TERRAIN("Terrain Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_TERRAIN("Terrain Shadow");
 
 
 LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
diff --git a/indra/newview/lldrawpooltree.cpp b/indra/newview/lldrawpooltree.cpp
index 192b0a13d3ad1ab9b8890aceaf6e2a880e7c1c5b..5521fb05a82fcf7b87ae500afca251e2b7105bb7 100644
--- a/indra/newview/lldrawpooltree.cpp
+++ b/indra/newview/lldrawpooltree.cpp
@@ -46,7 +46,7 @@
 
 S32 LLDrawPoolTree::sDiffTex = 0;
 static LLGLSLShader* shader = NULL;
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_TREE("Tree Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_TREE("Tree Shadow");
 
 LLDrawPoolTree::LLDrawPoolTree(LLViewerTexture *texturep) :
 	LLFacePool(POOL_TREE),
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index b36909f3ac665b51723363690ef515552696a10f..7d8bb6e10449178bb9e4bba8ebd0f31c45987006 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -63,17 +63,17 @@ static const S32 LINE_GRAPH_HEIGHT = 240;
 static S32 FTV_NUM_TIMERS;
 const S32 FTV_MAX_DEPTH = 8;
 
-std::vector<LLFastTimerUtil::NamedTimer*> ft_display_idx; // line of table entry for display purposes (for collapse)
+std::vector<LLFastTimer::NamedTimer*> ft_display_idx; // line of table entry for display purposes (for collapse)
 
-typedef LLTreeDFSIter<LLFastTimerUtil::NamedTimer, LLFastTimerUtil::NamedTimer::child_const_iter> timer_tree_iterator_t;
+typedef LLTreeDFSIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_iterator_t;
 
 BOOL LLFastTimerView::sAnalyzePerformance = FALSE;
 
-static timer_tree_iterator_t begin_timer_tree(LLFastTimerUtil::NamedTimer& id) 
+static timer_tree_iterator_t begin_timer_tree(LLFastTimer::NamedTimer& id) 
 { 
 	return timer_tree_iterator_t(&id, 
-							boost::bind(boost::mem_fn(&LLFastTimerUtil::NamedTimer::beginChildren), _1), 
-							boost::bind(boost::mem_fn(&LLFastTimerUtil::NamedTimer::endChildren), _1));
+							boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1), 
+							boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1));
 }
 
 static timer_tree_iterator_t end_timer_tree() 
@@ -96,7 +96,7 @@ LLFastTimerView::LLFastTimerView(const LLRect& rect)
 	mScrollIndex = 0;
 	mHoverID = NULL;
 	mHoverBarIndex = -1;
-	FTV_NUM_TIMERS = LLFastTimerUtil::NamedTimer::instanceCount();
+	FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount();
 	mPrintStats = -1;	
 	mAverageCyclesPerTimer = 0;
 }
@@ -125,7 +125,7 @@ BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)
 	return FALSE;
 }
 
-LLFastTimerUtil::NamedTimer* LLFastTimerView::getLegendID(S32 y)
+LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y)
 {
 	S32 idx = (getRect().getHeight() - y) / ((S32) LLFontGL::getFontMonospace()->getLineHeight()+2) - 5;
 
@@ -141,7 +141,7 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
 {
 	if (x < mBarRect.mLeft) 
 	{
-		LLFastTimerUtil::NamedTimer* idp = getLegendID(y);
+		LLFastTimer::NamedTimer* idp = getLegendID(y);
 		if (idp)
 		{
 			idp->setCollapsed(!idp->getCollapsed());
@@ -175,9 +175,9 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
 	else
 	{
 		// pause/unpause
-		LLFastTimerUtil::sPauseHistory = !LLFastTimerUtil::sPauseHistory;
+		LLFastTimer::sPauseHistory = !LLFastTimer::sPauseHistory;
 		// reset scroll to bottom when unpausing
-		if (!LLFastTimerUtil::sPauseHistory)
+		if (!LLFastTimer::sPauseHistory)
 		{
 			mScrollIndex = 0;
 		}
@@ -196,9 +196,9 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
 	mHoverTimer = NULL;
 	mHoverID = NULL;
 
-	if(LLFastTimerUtil::sPauseHistory && mBarRect.pointInRect(x, y))
+	if(LLFastTimer::sPauseHistory && mBarRect.pointInRect(x, y))
 	{
-		mHoverBarIndex = llmin(LLFastTimerUtil::getCurFrameIndex() - 1, 
+		mHoverBarIndex = llmin(LLFastTimer::getCurFrameIndex() - 1, 
 								MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight()));
 		if (mHoverBarIndex == 0)
 		{
@@ -210,7 +210,7 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
 		}
 
 		S32 i = 0;
-		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 			it != end_timer_tree();
 			++it, ++i)
 		{
@@ -234,7 +234,7 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
 	}
 	else if (x < mBarRect.mLeft) 
 	{
-		LLFastTimerUtil::NamedTimer* timer_id = getLegendID(y);
+		LLFastTimer::NamedTimer* timer_id = getLegendID(y);
 		if (timer_id)
 		{
 			mHoverID = timer_id;
@@ -247,7 +247,7 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
 
 BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
 {
-	if(LLFastTimerUtil::sPauseHistory && mBarRect.pointInRect(x, y))
+	if(LLFastTimer::sPauseHistory && mBarRect.pointInRect(x, y))
 	{
 		// tooltips for timer bars
 		if (mHoverTimer)
@@ -256,7 +256,7 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
 			localRectToScreen(mToolTipRect, &screen_rect);
 
 			LLToolTipMgr::instance().show(LLToolTip::Params()
-				.message(mHoverTimer->getToolTip(LLFastTimerUtil::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex))
+				.message(mHoverTimer->getToolTip(LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex))
 				.sticky_rect(screen_rect)
 				.delay_time(0.f));
 
@@ -268,7 +268,7 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
 		// tooltips for timer legend
 		if (x < mBarRect.mLeft) 
 		{
-			LLFastTimerUtil::NamedTimer* idp = getLegendID(y);
+			LLFastTimer::NamedTimer* idp = getLegendID(y);
 			if (idp)
 			{
 				LLToolTipMgr::instance().show(idp->getToolTip());
@@ -283,16 +283,16 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
 
 BOOL LLFastTimerView::handleScrollWheel(S32 x, S32 y, S32 clicks)
 {
-	LLFastTimerUtil::sPauseHistory = TRUE;
+	LLFastTimer::sPauseHistory = TRUE;
 	mScrollIndex = llclamp(mScrollIndex - clicks, 
 							0, 
-							llmin(LLFastTimerUtil::getLastFrameIndex(), (S32)LLFastTimerUtil::NamedTimer::HISTORY_NUM - MAX_VISIBLE_HISTORY));
+							llmin(LLFastTimer::getLastFrameIndex(), (S32)LLFastTimer::NamedTimer::HISTORY_NUM - MAX_VISIBLE_HISTORY));
 	return TRUE;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_TIMER("Timers", true);
+static LLFastTimer::DeclareTimer FTM_RENDER_TIMER("Timers", true);
 
-static std::map<LLFastTimerUtil::NamedTimer*, LLColor4> sTimerColors;
+static std::map<LLFastTimer::NamedTimer*, LLColor4> sTimerColors;
 
 void LLFastTimerView::draw()
 {
@@ -300,7 +300,7 @@ void LLFastTimerView::draw()
 	
 	std::string tdesc;
 
-	F64 clock_freq = (F64)LLFastTimerUtil::countsPerSecond();
+	F64 clock_freq = (F64)LLFastTimer::countsPerSecond();
 	F64 iclock_freq = 1000.0 / clock_freq;
 	
 	S32 margin = 10;
@@ -367,7 +367,7 @@ void LLFastTimerView::draw()
 		y -= (texth + 2);
 	}
 
-	S32 histmax = llmin(LLFastTimerUtil::getLastFrameIndex()+1, MAX_VISIBLE_HISTORY);
+	S32 histmax = llmin(LLFastTimer::getLastFrameIndex()+1, MAX_VISIBLE_HISTORY);
 		
 	// Draw the legend
 	xleft = margin;
@@ -375,15 +375,15 @@ void LLFastTimerView::draw()
 
 	y -= (texth + 2);
 
-	sTimerColors[&LLFastTimerUtil::NamedTimer::getRootNamedTimer()] = LLColor4::grey;
+	sTimerColors[&LLFastTimer::NamedTimer::getRootNamedTimer()] = LLColor4::grey;
 
 	F32 hue = 0.f;
 
-	for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+	for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 		it != timer_tree_iterator_t();
 		++it)
 	{
-		LLFastTimerUtil::NamedTimer* idp = (*it);
+		LLFastTimer::NamedTimer* idp = (*it);
 
 		const F32 HUE_INCREMENT = 0.23f;
 		hue = fmodf(hue + HUE_INCREMENT, 1.f);
@@ -403,12 +403,12 @@ void LLFastTimerView::draw()
 		LLLocalClipRect clip(LLRect(margin, y, LEGEND_WIDTH, margin));
 		S32 cur_line = 0;
 		ft_display_idx.clear();
-		std::map<LLFastTimerUtil::NamedTimer*, S32> display_line;
-		for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+		std::map<LLFastTimer::NamedTimer*, S32> display_line;
+		for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 			it != timer_tree_iterator_t();
 			++it)
 		{
-			LLFastTimerUtil::NamedTimer* idp = (*it);
+			LLFastTimer::NamedTimer* idp = (*it);
 			display_line[idp] = cur_line;
 			ft_display_idx.push_back(idp);
 			cur_line++;
@@ -428,7 +428,7 @@ void LLFastTimerView::draw()
 			S32 calls = 0;
 			if (mHoverBarIndex > 0 && mHoverID)
 			{
-				S32 hidx = LLFastTimerUtil::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex;
+				S32 hidx = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex;
 				U64 ticks = idp->getHistoricalCount(hidx);
 				ms = (F32)((F64)ticks * iclock_freq);
 				calls = (S32)idp->getHistoricalCalls(hidx);
@@ -466,7 +466,7 @@ void LLFastTimerView::draw()
 
 			x += dx;
 			BOOL is_child_of_hover_item = (idp == mHoverID);
-			LLFastTimerUtil::NamedTimer* next_parent = idp->getParent();
+			LLFastTimer::NamedTimer* next_parent = idp->getParent();
 			while(!is_child_of_hover_item && next_parent)
 			{
 				is_child_of_hover_item = (mHoverID == next_parent);
@@ -507,18 +507,18 @@ void LLFastTimerView::draw()
 	barw = width - xleft - margin;
 
 	// Draw the history bars
-	if (LLFastTimerUtil::getLastFrameIndex() >= 0)
+	if (LLFastTimer::getLastFrameIndex() >= 0)
 	{	
 		LLLocalClipRect clip(LLRect(xleft, ytop, getRect().getWidth() - margin, margin));
 
 		U64 totalticks;
-		if (!LLFastTimerUtil::sPauseHistory)
+		if (!LLFastTimer::sPauseHistory)
 		{
-			U64 ticks = LLFastTimerUtil::NamedTimer::getRootNamedTimer().getHistoricalCount(mScrollIndex);
+			U64 ticks = LLFastTimer::NamedTimer::getRootNamedTimer().getHistoricalCount(mScrollIndex);
 
-			if (LLFastTimerUtil::getCurFrameIndex() >= 10)
+			if (LLFastTimer::getCurFrameIndex() >= 10)
 			{
-				U64 framec = LLFastTimerUtil::getCurFrameIndex();
+				U64 framec = LLFastTimer::getCurFrameIndex();
 				U64 avg = (U64)mAvgCountTotal;
 				mAvgCountTotal = (avg*framec + ticks) / (framec + 1);
 				if (ticks > mMaxCountTotal)
@@ -529,10 +529,10 @@ void LLFastTimerView::draw()
 
 			if (ticks < mAvgCountTotal/100 || ticks > mAvgCountTotal*100)
 			{
-				LLFastTimerUtil::sResetHistory = true;
+				LLFastTimer::sResetHistory = true;
 			}
 
-			if (LLFastTimerUtil::getCurFrameIndex() < 10 || LLFastTimerUtil::sResetHistory)
+			if (LLFastTimer::getCurFrameIndex() < 10 || LLFastTimer::sResetHistory)
 			{
 				mAvgCountTotal = ticks;
 				mMaxCountTotal = ticks;
@@ -553,7 +553,7 @@ void LLFastTimerView::draw()
 			totalticks = 0;
 			for (S32 j=0; j<histmax; j++)
 			{
-				U64 ticks = LLFastTimerUtil::NamedTimer::getRootNamedTimer().getHistoricalCount(j);
+				U64 ticks = LLFastTimer::NamedTimer::getRootNamedTimer().getHistoricalCount(j);
 
 				if (ticks > totalticks)
 					totalticks = ticks;
@@ -643,7 +643,7 @@ void LLFastTimerView::draw()
 			S32 tidx;
 			if (j >= 0)
 			{
-				tidx = LLFastTimerUtil::NamedTimer::HISTORY_NUM - j - 1 - mScrollIndex;
+				tidx = LLFastTimer::NamedTimer::HISTORY_NUM - j - 1 - mScrollIndex;
 			}
 			else
 			{
@@ -657,14 +657,14 @@ void LLFastTimerView::draw()
 			std::vector<S32> deltax;
 			xpos.push_back(xleft);
 			
-			LLFastTimerUtil::NamedTimer* prev_id = NULL;
+			LLFastTimer::NamedTimer* prev_id = NULL;
 
 			S32 i = 0;
-			for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+			for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 				it != end_timer_tree();
 				++it, ++i)
 			{
-				LLFastTimerUtil::NamedTimer* idp = (*it);
+				LLFastTimer::NamedTimer* idp = (*it);
 				F32 frac = tidx == -1
 					? (F32)idp->getCountAverage() / (F32)totalticks 
 					: (F32)idp->getHistoricalCount(tidx) / (F32)totalticks;
@@ -691,7 +691,7 @@ void LLFastTimerView::draw()
 				{
 					U64 sublevelticks = 0;
 
-					for (LLFastTimerUtil::NamedTimer::child_const_iter it = prev_id->beginChildren();
+					for (LLFastTimer::NamedTimer::child_const_iter it = prev_id->beginChildren();
 						it != prev_id->endChildren();
 						++it)
 					{
@@ -733,7 +733,7 @@ void LLFastTimerView::draw()
 					S32 scale_offset = 0;
 
 					BOOL is_child_of_hover_item = (idp == mHoverID);
-					LLFastTimerUtil::NamedTimer* next_parent = idp->getParent();
+					LLFastTimer::NamedTimer* next_parent = idp->getParent();
 					while(!is_child_of_hover_item && next_parent)
 					{
 						is_child_of_hover_item = (mHoverID == next_parent);
@@ -797,10 +797,10 @@ void LLFastTimerView::draw()
 
 			//highlight visible range
 			{
-				S32 first_frame = LLFastTimerUtil::NamedTimer::HISTORY_NUM - mScrollIndex;
+				S32 first_frame = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex;
 				S32 last_frame = first_frame - MAX_VISIBLE_HISTORY;
 				
-				F32 frame_delta = ((F32) (graph_rect.getWidth()))/(LLFastTimerUtil::NamedTimer::HISTORY_NUM-1);
+				F32 frame_delta = ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1);
 				
 				F32 right = (F32) graph_rect.mLeft + frame_delta*first_frame;
 				F32 left = (F32) graph_rect.mLeft + frame_delta*last_frame;
@@ -823,11 +823,11 @@ void LLFastTimerView::draw()
 			}
 			
 			U64 cur_max = 0;
-			for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+			for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 				it != end_timer_tree();
 				++it)
 			{
-				LLFastTimerUtil::NamedTimer* idp = (*it);
+				LLFastTimer::NamedTimer* idp = (*it);
 				
 				//fatten highlighted timer
 				if (mHoverID == idp)
@@ -851,7 +851,7 @@ void LLFastTimerView::draw()
 
 				gGL.color4f(col[0], col[1], col[2], alpha);				
 				gGL.begin(LLRender::LINE_STRIP);
-				for (U32 j = 0; j < LLFastTimerUtil::NamedTimer::HISTORY_NUM; j++)
+				for (U32 j = 0; j < LLFastTimer::NamedTimer::HISTORY_NUM; j++)
 				{
 					U64 ticks = idp->getHistoricalCount(j);
 
@@ -871,7 +871,7 @@ void LLFastTimerView::draw()
 						//normalize to highlighted timer
 						cur_max = llmax(cur_max, ticks);
 					}
-					F32 x = graph_rect.mLeft + ((F32) (graph_rect.getWidth()))/(LLFastTimerUtil::NamedTimer::HISTORY_NUM-1)*j;
+					F32 x = graph_rect.mLeft + ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1)*j;
 					F32 y = graph_rect.mBottom + (F32) graph_rect.getHeight()/max_ticks*ticks;
 					gGL.vertex2f(x,y);
 				}
@@ -919,11 +919,11 @@ void LLFastTimerView::draw()
 	{
 		std::string legend_stat;
 		bool first = true;
-		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 			it != end_timer_tree();
 			++it)
 		{
-			LLFastTimerUtil::NamedTimer* idp = (*it);
+			LLFastTimer::NamedTimer* idp = (*it);
 
 			if (!first)
 			{
@@ -941,11 +941,11 @@ void LLFastTimerView::draw()
 
 		std::string timer_stat;
 		first = true;
-		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimerUtil::NamedTimer::getRootNamedTimer());
+		for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
 			it != end_timer_tree();
 			++it)
 		{
-			LLFastTimerUtil::NamedTimer* idp = (*it);
+			LLFastTimer::NamedTimer* idp = (*it);
 
 			if (!first)
 			{
@@ -984,10 +984,10 @@ void LLFastTimerView::draw()
 
 F64 LLFastTimerView::getTime(const std::string& name)
 {
-	const LLFastTimerUtil::NamedTimer* timerp = LLFastTimerUtil::getTimerByName(name);
+	const LLFastTimer::NamedTimer* timerp = LLFastTimer::getTimerByName(name);
 	if (timerp)
 	{
-		return (F64)timerp->getCountAverage() / (F64)LLFastTimerUtil::countsPerSecond();
+		return (F64)timerp->getCountAverage() / (F64)LLFastTimer::countsPerSecond();
 	}
 	return 0.0;
 }
@@ -1179,13 +1179,13 @@ void LLFastTimerView::doAnalysisMetrics(std::string baseline, std::string target
 //static
 void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std::string output)
 {
-	if(LLFastTimerUtil::sLog)
+	if(LLFastTimer::sLog)
 	{
 		doAnalysisDefault(baseline, target, output) ;
 		return ;
 	}
 
-	if(LLFastTimerUtil::sMetricLog)
+	if(LLFastTimer::sMetricLog)
 	{
 		doAnalysisMetrics(baseline, target, output) ;
 		return ;
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index d03d83576e5b8c0286a28af3d9e218f02691ef27..f5c8f2381860b1c23061556f3b3011d5c44d9cdf 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -61,7 +61,7 @@ public:
 	virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
 	virtual void draw();
 
-	LLFastTimerUtil::NamedTimer* getLegendID(S32 y);
+	LLFastTimer::NamedTimer* getLegendID(S32 y);
 	F64 getTime(const std::string& name);
 	
 private:	
@@ -85,8 +85,8 @@ private:
 	U64 mMaxCountTotal;
 	LLRect mBarRect;
 	S32	mScrollIndex;
-	LLFastTimerUtil::NamedTimer* mHoverID;
-	LLFastTimerUtil::NamedTimer* mHoverTimer;
+	LLFastTimer::NamedTimer* mHoverID;
+	LLFastTimer::NamedTimer* mHoverTimer;
 	LLRect					mToolTipRect;
 	S32 mHoverBarIndex;
 	LLFrameTimer mHighlightTimer;
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 769bc2e9e1bd1796b42ae3e2296f76a4bbed438f..fc8790c1722f664ce1a7235693a6cf735e6d1adb 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -261,7 +261,7 @@ void LLVolumeImplFlexible::onSetVolume(const LLVolumeParams &volume_params, cons
 // updated every time step. In the future, perhaps there could be an 
 // optimization similar to what Havok does for objects that are stationary. 
 //---------------------------------------------------------------------------------
-static LLFastTimerUtil::DeclareTimer FTM_FLEXIBLE_UPDATE("Update Flexies");
+static LLFastTimer::DeclareTimer FTM_FLEXIBLE_UPDATE("Update Flexies");
 BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
 {
 	if (mVO->mDrawable.isNull())
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 26cf88a840e6981e9b6ee347b8c5915e9899aa53..41f4d1a663ccd6b3fc03ecd6b1a36b6f535cb2fa 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -295,7 +295,7 @@ void LLFolderView::checkTreeResortForModelChanged()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_SORT("Sort Inventory");
+static LLFastTimer::DeclareTimer FTM_SORT("Sort Inventory");
 
 void LLFolderView::setSortOrder(U32 order)
 {
@@ -377,7 +377,7 @@ void LLFolderView::setOpenArrangeRecursively(BOOL openitem, ERecurseType recurse
 	mIsOpen = TRUE;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_ARRANGE("Arrange");
+static LLFastTimer::DeclareTimer FTM_ARRANGE("Arrange");
 
 // This view grows and shinks to enclose all of its children items and folders.
 S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_generation )
@@ -477,7 +477,7 @@ const std::string LLFolderView::getFilterSubString(BOOL trim)
 	return mFilter->getFilterSubString(trim);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_FILTER("Filter Inventory");
+static LLFastTimer::DeclareTimer FTM_FILTER("Filter Inventory");
 
 void LLFolderView::filter( LLInventoryFilter& filter )
 {
@@ -2056,8 +2056,8 @@ bool LLFolderView::doToSelected(LLInventoryModel* model, const LLSD& userdata)
 	return true;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_AUTO_SELECT("Open and Select");
-static LLFastTimerUtil::DeclareTimer FTM_INVENTORY("Inventory");
+static LLFastTimer::DeclareTimer FTM_AUTO_SELECT("Open and Select");
+static LLFastTimer::DeclareTimer FTM_INVENTORY("Inventory");
 
 // Main idle routine
 void LLFolderView::doIdle()
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp
index 8251c2ad8d9e0fb7d684b633503769937ee7083d..bdb8dadfb475404ffccebf1db438f07f0723f493 100644
--- a/indra/newview/llhudmanager.cpp
+++ b/indra/newview/llhudmanager.cpp
@@ -62,7 +62,7 @@ LLHUDManager::~LLHUDManager()
 {
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_HUD_EFFECTS("Hud Effects");
+static LLFastTimer::DeclareTimer FTM_HUD_EFFECTS("Hud Effects");
 
 void LLHUDManager::updateEffects()
 {
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index 4008719bd416ba884cc9f1ef1d8505037650a5ef..dc55aba0dbf6db94b34dd3a39bdb47c4d89ea794 100644
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
@@ -254,7 +254,7 @@ LLHUDEffect *LLHUDObject::addHUDEffect(const U8 type)
 	return hud_objectp;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_HUD_UPDATE("Update Hud");
+static LLFastTimer::DeclareTimer FTM_HUD_UPDATE("Update Hud");
 
 // static
 void LLHUDObject::updateAll()
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index eb2dc630b0f5c9a5b090182527afc28d7df13ae4..498a29728c28d926c4929cd7cbbc9f913093f222 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -258,7 +258,7 @@ LLInventoryFilter::EFolderShow LLInventoryPanel::getShowFolderState()
 
 void LLInventoryPanel::modelChanged(U32 mask)
 {
-	static LLFastTimerUtil::DeclareTimer FTM_REFRESH("Inventory Refresh");
+	static LLFastTimer::DeclareTimer FTM_REFRESH("Inventory Refresh");
 	LLFastTimer t2(FTM_REFRESH);
 
 	bool handled = false;
diff --git a/indra/newview/llmetricperformancetester.cpp b/indra/newview/llmetricperformancetester.cpp
index f3cdafa7959fc838771fd22cb88fe97e94ca774c..93288c98d74afb251728cc83c710e64b9f91af5d 100644
--- a/indra/newview/llmetricperformancetester.cpp
+++ b/indra/newview/llmetricperformancetester.cpp
@@ -131,8 +131,8 @@ void LLMetricPerformanceTester::preOutputTestResults(LLSD* sd)
 }
 void LLMetricPerformanceTester::postOutputTestResults(LLSD* sd)
 {
-	LLMutexLock lock(LLFastTimerUtil::sLogLock);
-	LLFastTimerUtil::sLogQueue.push((*sd));
+	LLMutexLock lock(LLFastTimer::sLogLock);
+	LLFastTimer::sLogQueue.push((*sd));
 }
 
 void LLMetricPerformanceTester::outputTestResults() 
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index d33578ba1c3a25725c7022085cfab311a4e0a546..6ca67345984c475b8b87bbc08f859718604b44f6 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -49,8 +49,8 @@
 #include "llvoavatar.h"
 #include "lltextureatlas.h"
 
-static LLFastTimerUtil::DeclareTimer FTM_FRUSTUM_CULL("Frustum Culling");
-static LLFastTimerUtil::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
+static LLFastTimer::DeclareTimer FTM_FRUSTUM_CULL("Frustum Culling");
+static LLFastTimer::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
 
 const F32 SG_OCCLUSION_FUDGE = 0.25f;
 #define SG_DISCARD_TOLERANCE 0.01f
@@ -641,7 +641,7 @@ void LLSpatialGroup::rebuildMesh()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
+static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
 
 void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group)
 {
@@ -1508,7 +1508,7 @@ BOOL LLSpatialGroup::rebound()
 	return TRUE;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_OCCLUSION_READBACK("Readback Occlusion");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_READBACK("Readback Occlusion");
 void LLSpatialGroup::checkOcclusion()
 {
 	if (LLPipeline::sUseOcclusion > 1)
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 2c456d7df0d9fc664c55b7618a9be20ff8a60f94..99fa271b78285eeec4e0b3548d71c56a5e72e979 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2087,7 +2087,7 @@ bool idle_startup()
 		LLAppViewer::instance()->handleLoginComplete();
 
 		// reset timers now that we are running "logged in" logic
-		LLFastTimerUtil::reset();
+		LLFastTimer::reset();
 
 		LLAgentPicksInfo::getInstance()->requestNumberOfPicks();
 
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 352de5be7eb472cf3cd45e731f9e7efd2ad213d4..3dac0ee452db03d12504c1ccafd8cb7ffbef0791 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -212,11 +212,11 @@ void display_stats()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PICK("Picking");
-static LLFastTimerUtil::DeclareTimer FTM_RENDER("Render", true);
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_SKY("Update Sky");
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_TEXTURES("Update Textures");
-static LLFastTimerUtil::DeclareTimer FTM_IMAGE_UPDATE("Update Images");
+static LLFastTimer::DeclareTimer FTM_PICK("Picking");
+static LLFastTimer::DeclareTimer FTM_RENDER("Render", true);
+static LLFastTimer::DeclareTimer FTM_UPDATE_SKY("Update Sky");
+static LLFastTimer::DeclareTimer FTM_UPDATE_TEXTURES("Update Textures");
+static LLFastTimer::DeclareTimer FTM_IMAGE_UPDATE("Update Images");
 
 // Paint the display!
 void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
@@ -1098,7 +1098,7 @@ BOOL setup_hud_matrices(const LLRect& screen_region)
 	return TRUE;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_SWAP("Swap");
+static LLFastTimer::DeclareTimer FTM_SWAP("Swap");
 
 void render_ui(F32 zoom_factor, int subfield)
 {
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index ff0d4c511af93da93a22e874530c505a137dbb6a..1bff04352c52a95bb87d43dfa4f29af0fa2d6509 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6841,7 +6841,7 @@ void handle_dump_avatar_local_textures(void*)
 
 void handle_dump_timers()
 {
-	LLFastTimerUtil::dumpCurTimes();
+	LLFastTimer::dumpCurTimes();
 }
 
 void handle_debug_avatar_textures(void*)
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 594c910d1bc911f8d37aa99f79477a49739c82a0..3362142807e823f5bc8fcd252fd436e5cfd9cd74 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3485,7 +3485,7 @@ void process_terse_object_update_improved(LLMessageSystem *mesgsys, void **user_
 	gObjectList.processCompressedObjectUpdate(mesgsys, user_data, OUT_TERSE_IMPROVED);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
+static LLFastTimer::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
 
 
 void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 4479b991c783a1f54479150f1939533d8e2f4908..3c79045cc588c6a72ec49a89cbf8bdfe3c0fa00a 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -117,7 +117,7 @@ S32			LLViewerObject::sAxisArrowLength(50);
 BOOL		LLViewerObject::sPulseEnabled(FALSE);
 BOOL		LLViewerObject::sUseSharedDrawables(FALSE); // TRUE
 
-static LLFastTimerUtil::DeclareTimer FTM_CREATE_OBJECT("Create Object");
+static LLFastTimer::DeclareTimer FTM_CREATE_OBJECT("Create Object");
 
 // static
 LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 71c42f16493804ed1443b749cb511a1ddd53b692..96828ee1b6088baad4c3ef16e92c81c7a38438fb 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -278,7 +278,7 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
+static LLFastTimer::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
 
 void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
 											 void **user_data,
@@ -1357,7 +1357,7 @@ LLViewerObject *LLViewerObjectList::createObjectViewer(const LLPCode pcode, LLVi
 }
 
 
-static LLFastTimerUtil::DeclareTimer FTM_CREATE_OBJECT("Create Object");
+static LLFastTimer::DeclareTimer FTM_CREATE_OBJECT("Create Object");
 
 LLViewerObject *LLViewerObjectList::createObject(const LLPCode pcode, LLViewerRegion *regionp,
 												 const LLUUID &uuid, const U32 local_id, const LLHost &sender)
diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index 2454ccaa48ef178a6ab998ea4e2d084ecf6f4885..841a7ccc5e88439a088e0cf826463fcadb3d08d2 100644
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
@@ -633,7 +633,7 @@ void LLViewerPartSim::shift(const LLVector3 &offset)
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_SIMULATE_PARTICLES("Simulate Particles");
+static LLFastTimer::DeclareTimer FTM_SIMULATE_PARTICLES("Simulate Particles");
 
 void LLViewerPartSim::updateSimulation()
 {
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 0997359de17fd64fa2d558a928320c4e7a3546fc..f825eaa8ab654e9312b39f0ae185747bc162a311 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -305,7 +305,7 @@ void LLViewerTextureManager::init()
 
 	LLViewerTexture::initClass() ;
 
-	if(LLFastTimerUtil::sMetricLog)
+	if(LLFastTimer::sMetricLog)
 	{
 		LLViewerTextureManager::sTesterp = new LLTexturePipelineTester() ;
 	}
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index a5b2bfb781b3e30cce741c677c7858923d4f2635..8252b7df003910c33844e85b46c6e4a112a08023 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -80,7 +80,7 @@ LLStat LLViewerTextureList::sRawMemStat(32, TRUE);
 LLStat LLViewerTextureList::sFormattedMemStat(32, TRUE);
 
 LLViewerTextureList gTextureList;
-static LLFastTimerUtil::DeclareTimer FTM_PROCESS_IMAGES("Process Images");
+static LLFastTimer::DeclareTimer FTM_PROCESS_IMAGES("Process Images");
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -570,7 +570,7 @@ void LLViewerTextureList::dirtyImage(LLViewerFetchedTexture *image)
 }
 
 ////////////////////////////////////////////////////////////////////////////
-static LLFastTimerUtil::DeclareTimer FTM_IMAGE_MARK_DIRTY("Dirty Images");
+static LLFastTimer::DeclareTimer FTM_IMAGE_MARK_DIRTY("Dirty Images");
 
 void LLViewerTextureList::updateImages(F32 max_time)
 {
@@ -735,7 +735,7 @@ void LLViewerTextureList::updateImagesDecodePriorities()
  return type_from_host;
  }
  */
-static LLFastTimerUtil::DeclareTimer FTM_IMAGE_CREATE("Create Images");
+static LLFastTimer::DeclareTimer FTM_IMAGE_CREATE("Create Images");
 
 F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time)
 {
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index d2827ee53781453394c439a9c2bae72ce9bb4688..83cbc8a1f919ab11ba4b73f8128e0126edbe4985 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2844,7 +2844,7 @@ void LLViewerWindow::updateKeyboardFocus()
 		LLSideTray::getInstance()->highlightFocused();
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_WORLD_VIEW("Update World View");
+static LLFastTimer::DeclareTimer FTM_UPDATE_WORLD_VIEW("Update World View");
 void LLViewerWindow::updateWorldViewRect(bool use_full_window)
 {
 	LLFastTimer ft(FTM_UPDATE_WORLD_VIEW);
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 7e73bf4133a07f23a368dd743a7eba6e39a5eb93..6e93bf1bf272dbb391f796d6ea84424baf39f516 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2110,8 +2110,8 @@ S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_AVATAR_UPDATE("Update Avatar");
-static LLFastTimerUtil::DeclareTimer FTM_JOINT_UPDATE("Update Joints");
+static LLFastTimer::DeclareTimer FTM_AVATAR_UPDATE("Update Avatar");
+static LLFastTimer::DeclareTimer FTM_JOINT_UPDATE("Update Joints");
 
 //------------------------------------------------------------------------
 // idleUpdate()
@@ -2304,7 +2304,7 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
 	}//if ( voiceEnabled )
 }		
 
-static LLFastTimerUtil::DeclareTimer FTM_ATTACHMENT_UPDATE("Update Attachments");
+static LLFastTimer::DeclareTimer FTM_ATTACHMENT_UPDATE("Update Attachments");
 
 void LLVOAvatar::idleUpdateMisc(bool detailed_update)
 {
@@ -4675,7 +4675,7 @@ void LLVOAvatar::requestStopMotion( LLMotion* motion )
 //-----------------------------------------------------------------------------
 // loadAvatar()
 //-----------------------------------------------------------------------------
-static LLFastTimerUtil::DeclareTimer FTM_LOAD_AVATAR("Load Avatar");
+static LLFastTimer::DeclareTimer FTM_LOAD_AVATAR("Load Avatar");
 
 BOOL LLVOAvatar::loadAvatar()
 {
@@ -5263,7 +5263,7 @@ void LLVOAvatar::updateGL()
 //-----------------------------------------------------------------------------
 // updateGeometry()
 //-----------------------------------------------------------------------------
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_AVATAR("Update Avatar");
+static LLFastTimer::DeclareTimer FTM_UPDATE_AVATAR("Update Avatar");
 BOOL LLVOAvatar::updateGeometry(LLDrawable *drawable)
 {
 	LLFastTimer ftm(FTM_UPDATE_AVATAR);
diff --git a/indra/newview/llvoclouds.cpp b/indra/newview/llvoclouds.cpp
index 5d01163e08930dd7a596973a0c42b90020fae9b1..177cb16c50802a5e17ab62533a0c7459ffd220af 100644
--- a/indra/newview/llvoclouds.cpp
+++ b/indra/newview/llvoclouds.cpp
@@ -115,7 +115,7 @@ LLDrawable* LLVOClouds::createDrawable(LLPipeline *pipeline)
 	return mDrawable;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_CLOUDS("Update Clouds");
+static LLFastTimer::DeclareTimer FTM_UPDATE_CLOUDS("Update Clouds");
 
 BOOL LLVOClouds::updateGeometry(LLDrawable *drawable)
 {
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index 9b0be69a7e1f3905c3ca7f91b73367d3dd58cc68..e311f079120011c733cac0c149b0020badaa09c7 100644
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -382,7 +382,7 @@ LLDrawable* LLVOGrass::createDrawable(LLPipeline *pipeline)
 	return mDrawable;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_GRASS("Update Grass");
+static LLFastTimer::DeclareTimer FTM_UPDATE_GRASS("Update Grass");
 
 BOOL LLVOGrass::updateGeometry(LLDrawable *drawable)
 {
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index ac6030ccae66642e13a344b1adb8c1e67bef5ac0..139d2fbd8837aed320db6344967e56b4d1c22a78 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -139,7 +139,7 @@ LLVector3 LLVOPartGroup::getCameraPosition() const
 	return gAgent.getCameraPositionAgent();
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_PARTICLES("Update Particles");
+static LLFastTimer::DeclareTimer FTM_UPDATE_PARTICLES("Update Particles");
 BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
 {
 	LLFastTimer ftm(FTM_UPDATE_PARTICLES);
@@ -428,8 +428,8 @@ void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_co
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_GRASS_VB("Grass VB");
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_PARTICLE_VB("Particle VB");
+static LLFastTimer::DeclareTimer FTM_REBUILD_GRASS_VB("Grass VB");
+static LLFastTimer::DeclareTimer FTM_REBUILD_PARTICLE_VB("Particle VB");
 
 void LLParticlePartition::getGeometry(LLSpatialGroup* group)
 {
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index a489142cf9d3c2b83ce8b05d911ee7c95d5e3f17..5ff8f0d267d1aa89f17deda2bc8a800202f6fc33 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -1231,7 +1231,7 @@ void LLVOSky::createDummyVertexBuffer()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_FAKE_VBO_UPDATE("Fake VBO Update");
+static LLFastTimer::DeclareTimer FTM_RENDER_FAKE_VBO_UPDATE("Fake VBO Update");
 
 void LLVOSky::updateDummyVertexBuffer()
 {	
@@ -1257,7 +1257,7 @@ void LLVOSky::updateDummyVertexBuffer()
 //----------------------------------
 //end of fake vertex buffer updating
 //----------------------------------
-static LLFastTimerUtil::DeclareTimer FTM_GEO_SKY("Sky Geometry");
+static LLFastTimer::DeclareTimer FTM_GEO_SKY("Sky Geometry");
 
 BOOL LLVOSky::updateGeometry(LLDrawable *drawable)
 {
diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp
index 52ed8328b82bfa1ce639b74ea2b59be6ec8a4839..ef7b16100361789cd5a138270d44081600ccc993 100644
--- a/indra/newview/llvosurfacepatch.cpp
+++ b/indra/newview/llvosurfacepatch.cpp
@@ -176,7 +176,7 @@ LLDrawable *LLVOSurfacePatch::createDrawable(LLPipeline *pipeline)
 	return mDrawable;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_TERRAIN("Update Terrain");
+static LLFastTimer::DeclareTimer FTM_UPDATE_TERRAIN("Update Terrain");
 
 void LLVOSurfacePatch::updateGL()
 {
@@ -1035,7 +1035,7 @@ LLVertexBuffer* LLTerrainPartition::createVertexBuffer(U32 type_mask, U32 usage)
 	return new LLVertexBufferTerrain();
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_TERRAIN_VB("Terrain VB");
+static LLFastTimer::DeclareTimer FTM_REBUILD_TERRAIN_VB("Terrain VB");
 void LLTerrainPartition::getGeometry(LLSpatialGroup* group)
 {
 	LLFastTimer ftm(FTM_REBUILD_TERRAIN_VB);
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index 98e12ad6eab04d664774e29e8394e4faf297d4c1..24f1c4bd246717d25b0840422439fcf7daf8a56e 100644
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -500,7 +500,7 @@ LLDrawable* LLVOTree::createDrawable(LLPipeline *pipeline)
 const S32 LEAF_INDICES = 24;
 const S32 LEAF_VERTICES = 16;
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_TREE("Update Tree");
+static LLFastTimer::DeclareTimer FTM_UPDATE_TREE("Update Tree");
 
 BOOL LLVOTree::updateGeometry(LLDrawable *drawable)
 {
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 69736335815d53994ba912a23141c5d6b5ef421e..55609621b3ac967bd94bc1f44ed8a6c16b27a084 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -86,8 +86,8 @@ S32 LLVOVolume::sNumLODChanges = 0;
 LLPointer<LLObjectMediaDataClient> LLVOVolume::sObjectMediaClient = NULL;
 LLPointer<LLObjectMediaNavigateClient> LLVOVolume::sObjectMediaNavigateClient = NULL;
 
-static LLFastTimerUtil::DeclareTimer FTM_GEN_TRIANGLES("Generate Triangles");
-static LLFastTimerUtil::DeclareTimer FTM_GEN_VOLUME("Generate Volumes");
+static LLFastTimer::DeclareTimer FTM_GEN_TRIANGLES("Generate Triangles");
+static LLFastTimer::DeclareTimer FTM_GEN_VOLUME("Generate Volumes");
 
 // Implementation class of LLMediaDataClientObject.  See llmediadataclient.h
 class LLMediaDataClientObjectImpl : public LLMediaDataClientObject
@@ -1339,8 +1339,8 @@ void LLVOVolume::updateRelativeXform()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_GEN_FLEX("Generate Flexies");
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_PRIMITIVES("Update Primitives");
+static LLFastTimer::DeclareTimer FTM_GEN_FLEX("Generate Flexies");
+static LLFastTimer::DeclareTimer FTM_UPDATE_PRIMITIVES("Update Primitives");
 
 BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
 {
@@ -3190,8 +3190,8 @@ void LLVolumeGeometryManager::getGeometry(LLSpatialGroup* group)
 
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_VOLUME_VB("Volume");
-static LLFastTimerUtil::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
+static LLFastTimer::DeclareTimer FTM_REBUILD_VOLUME_VB("Volume");
+static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
 
 void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
 {
@@ -3423,7 +3423,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
 	mFaceList.clear();
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_VOLUME_GEOM("Volume Geometry");
+static LLFastTimer::DeclareTimer FTM_VOLUME_GEOM("Volume Geometry");
 void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
 {
 	llpushcallstacks ;
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index 86cdde3f2e6d233e0d0f35efd36f0c89c07af0f8..a8c4625f6ed8a5a58d738bc9478819d034351d17 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -136,7 +136,7 @@ LLDrawable *LLVOWater::createDrawable(LLPipeline *pipeline)
 	return mDrawable;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_WATER("Update Water");
+static LLFastTimer::DeclareTimer FTM_UPDATE_WATER("Update Water");
 
 BOOL LLVOWater::updateGeometry(LLDrawable *drawable)
 {
diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp
index 77b07e0ccf45e5029bc6db4299b55d58a37d1ebb..d3238f16a8aa62ded405f7e4d2e325e74c718449 100644
--- a/indra/newview/llvowlsky.cpp
+++ b/indra/newview/llvowlsky.cpp
@@ -307,7 +307,7 @@ void LLVOWLSky::restoreGL()
 	gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_GEO_SKY("Sky Geometry");
+static LLFastTimer::DeclareTimer FTM_GEO_SKY("Sky Geometry");
 
 BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable)
 {
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index 5d03596a44df197e17840d6a270b4112aa7623f4..8be8f494dabd41d8e6b70464209a7766297fedd9 100644
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
@@ -261,7 +261,7 @@ void LLWaterParamManager::updateShaderUniforms(LLGLSLShader * shader)
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
+static LLFastTimer::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
 
 void LLWaterParamManager::update(LLViewerCamera * cam)
 {
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 9a0b2dfba83b3474e5edf280cec4384cd7c3c211..7cac564619e280ad67f0cd8d87c858871396fdea 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -58,7 +58,7 @@
 #include "curl/curl.h"
 
 LLWLParamManager * LLWLParamManager::sInstance = NULL;
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
+static LLFastTimer::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
 
 LLWLParamManager::LLWLParamManager() :
 
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f361767f68650ed1734f39376b72e7a4539f6ce2..4f4fc838191bb0fe9922e6e8931b3a931001ba58 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -140,34 +140,34 @@ BOOL	gDebugPipeline = FALSE;
 LLPipeline gPipeline;
 const LLMatrix4* gGLLastMatrix = NULL;
 
-LLFastTimerUtil::DeclareTimer FTM_RENDER_GEOMETRY("Geometry");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_GRASS("Grass");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_INVISIBLE("Invisible");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_OCCLUSION("Occlusion");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_SHINY("Shiny");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_SIMPLE("Simple");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_TERRAIN("Terrain");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_TREES("Trees");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_UI("UI");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_WATER("Water");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_WL_SKY("Windlight Sky");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_ALPHA("Alpha Objects");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_CHARACTERS("Avatars");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_BUMP("Bump");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_FULLBRIGHT("Fullbright");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_GLOW("Glow");
-LLFastTimerUtil::DeclareTimer FTM_GEO_UPDATE("Geo Update");
-LLFastTimerUtil::DeclareTimer FTM_POOLRENDER("RenderPool");
-LLFastTimerUtil::DeclareTimer FTM_POOLS("Pools");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_BLOOM_FBO("First FBO");
-LLFastTimerUtil::DeclareTimer FTM_STATESORT("Sort Draw State");
-LLFastTimerUtil::DeclareTimer FTM_PIPELINE("Pipeline");
-LLFastTimerUtil::DeclareTimer FTM_CLIENT_COPY("Client Copy");
-LLFastTimerUtil::DeclareTimer FTM_RENDER_DEFERRED("Deferred Shading");
-
-
-static LLFastTimerUtil::DeclareTimer FTM_STATESORT_DRAWABLE("Sort Drawables");
-static LLFastTimerUtil::DeclareTimer FTM_STATESORT_POSTSORT("Post Sort");
+LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY("Geometry");
+LLFastTimer::DeclareTimer FTM_RENDER_GRASS("Grass");
+LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE("Invisible");
+LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION("Occlusion");
+LLFastTimer::DeclareTimer FTM_RENDER_SHINY("Shiny");
+LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE("Simple");
+LLFastTimer::DeclareTimer FTM_RENDER_TERRAIN("Terrain");
+LLFastTimer::DeclareTimer FTM_RENDER_TREES("Trees");
+LLFastTimer::DeclareTimer FTM_RENDER_UI("UI");
+LLFastTimer::DeclareTimer FTM_RENDER_WATER("Water");
+LLFastTimer::DeclareTimer FTM_RENDER_WL_SKY("Windlight Sky");
+LLFastTimer::DeclareTimer FTM_RENDER_ALPHA("Alpha Objects");
+LLFastTimer::DeclareTimer FTM_RENDER_CHARACTERS("Avatars");
+LLFastTimer::DeclareTimer FTM_RENDER_BUMP("Bump");
+LLFastTimer::DeclareTimer FTM_RENDER_FULLBRIGHT("Fullbright");
+LLFastTimer::DeclareTimer FTM_RENDER_GLOW("Glow");
+LLFastTimer::DeclareTimer FTM_GEO_UPDATE("Geo Update");
+LLFastTimer::DeclareTimer FTM_POOLRENDER("RenderPool");
+LLFastTimer::DeclareTimer FTM_POOLS("Pools");
+LLFastTimer::DeclareTimer FTM_RENDER_BLOOM_FBO("First FBO");
+LLFastTimer::DeclareTimer FTM_STATESORT("Sort Draw State");
+LLFastTimer::DeclareTimer FTM_PIPELINE("Pipeline");
+LLFastTimer::DeclareTimer FTM_CLIENT_COPY("Client Copy");
+LLFastTimer::DeclareTimer FTM_RENDER_DEFERRED("Deferred Shading");
+
+
+static LLFastTimer::DeclareTimer FTM_STATESORT_DRAWABLE("Sort Drawables");
+static LLFastTimer::DeclareTimer FTM_STATESORT_POSTSORT("Post Sort");
 
 //----------------------------------------
 std::string gPoolNames[] = 
@@ -508,7 +508,7 @@ void LLPipeline::destroyGL()
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RESIZE_SCREEN_TEXTURE("Resize Screen Texture");
+static LLFastTimer::DeclareTimer FTM_RESIZE_SCREEN_TEXTURE("Resize Screen Texture");
 void LLPipeline::resizeScreenTexture()
 {
 	LLFastTimer ft(FTM_RESIZE_SCREEN_TEXTURE);
@@ -1396,8 +1396,8 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list)
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_OCTREE_BALANCE("Balance Octree");
-static LLFastTimerUtil::DeclareTimer FTM_UPDATE_MOVE("Update Move");
+static LLFastTimer::DeclareTimer FTM_OCTREE_BALANCE("Balance Octree");
+static LLFastTimer::DeclareTimer FTM_UPDATE_MOVE("Update Move");
 
 void LLPipeline::updateMove()
 {
@@ -1557,7 +1557,7 @@ BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
 	return res;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_CULL("Object Culling");
+static LLFastTimer::DeclareTimer FTM_CULL("Object Culling");
 
 void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip)
 {
@@ -2188,7 +2188,7 @@ void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags f
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RESET_DRAWORDER("Reset Draw Order");
+static LLFastTimer::DeclareTimer FTM_RESET_DRAWORDER("Reset Draw Order");
 
 void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
 {
@@ -5519,7 +5519,7 @@ void LLPipeline::bindScreenToTexture()
 	
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_RENDER_BLOOM("Bloom");
+static LLFastTimer::DeclareTimer FTM_RENDER_BLOOM("Bloom");
 void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
 {
 	LLMemType mt_ru(LLMemType::MTYPE_PIPELINE_RENDER_BLOOM);
@@ -6227,16 +6227,16 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index, LLRen
 	}
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_GI_TRACE("Trace");
-static LLFastTimerUtil::DeclareTimer FTM_GI_GATHER("Gather");
-static LLFastTimerUtil::DeclareTimer FTM_SUN_SHADOW("Shadow Map");
-static LLFastTimerUtil::DeclareTimer FTM_SOFTEN_SHADOW("Shadow Soften");
-static LLFastTimerUtil::DeclareTimer FTM_EDGE_DETECTION("Find Edges");
-static LLFastTimerUtil::DeclareTimer FTM_LOCAL_LIGHTS("Local Lights");
-static LLFastTimerUtil::DeclareTimer FTM_ATMOSPHERICS("Atmospherics");
-static LLFastTimerUtil::DeclareTimer FTM_FULLSCREEN_LIGHTS("Fullscreen Lights");
-static LLFastTimerUtil::DeclareTimer FTM_PROJECTORS("Projectors");
-static LLFastTimerUtil::DeclareTimer FTM_POST("Post");
+static LLFastTimer::DeclareTimer FTM_GI_TRACE("Trace");
+static LLFastTimer::DeclareTimer FTM_GI_GATHER("Gather");
+static LLFastTimer::DeclareTimer FTM_SUN_SHADOW("Shadow Map");
+static LLFastTimer::DeclareTimer FTM_SOFTEN_SHADOW("Shadow Soften");
+static LLFastTimer::DeclareTimer FTM_EDGE_DETECTION("Find Edges");
+static LLFastTimer::DeclareTimer FTM_LOCAL_LIGHTS("Local Lights");
+static LLFastTimer::DeclareTimer FTM_ATMOSPHERICS("Atmospherics");
+static LLFastTimer::DeclareTimer FTM_FULLSCREEN_LIGHTS("Fullscreen Lights");
+static LLFastTimer::DeclareTimer FTM_PROJECTORS("Projectors");
+static LLFastTimer::DeclareTimer FTM_POST("Post");
 
 
 void LLPipeline::renderDeferredLighting()
@@ -7433,9 +7433,9 @@ glh::matrix4f scale_translate_to_fit(const LLVector3 min, const LLVector3 max)
 	return ret;
 }
 
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_RENDER("Render Shadows");
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_ALPHA("Alpha Shadow");
-static LLFastTimerUtil::DeclareTimer FTM_SHADOW_SIMPLE("Simple Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_RENDER("Render Shadows");
+static LLFastTimer::DeclareTimer FTM_SHADOW_ALPHA("Alpha Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_SIMPLE("Simple Shadow");
 
 void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera& shadow_cam, LLCullResult &result, BOOL use_shader, BOOL use_occlusion)
 {
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 13b6270bd661de0e64c398f0089e47c01d869031..67004a5f2d921cba497d8961dfde0eedc9190620 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -78,25 +78,25 @@ glh::matrix4f gl_ortho(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top,
 glh::matrix4f gl_perspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar);
 glh::matrix4f gl_lookat(LLVector3 eye, LLVector3 center, LLVector3 up);
 
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_GEOMETRY;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_GRASS;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_INVISIBLE;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_OCCLUSION;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_SHINY;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_SIMPLE;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_TERRAIN;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_TREES;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_UI;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_WATER;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_WL_SKY;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_ALPHA;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_CHARACTERS;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_BUMP;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_FULLBRIGHT;
-extern LLFastTimerUtil::DeclareTimer FTM_RENDER_GLOW;
-extern LLFastTimerUtil::DeclareTimer FTM_STATESORT;
-extern LLFastTimerUtil::DeclareTimer FTM_PIPELINE;
-extern LLFastTimerUtil::DeclareTimer FTM_CLIENT_COPY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_GRASS;
+extern LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE;
+extern LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION;
+extern LLFastTimer::DeclareTimer FTM_RENDER_SHINY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE;
+extern LLFastTimer::DeclareTimer FTM_RENDER_TERRAIN;
+extern LLFastTimer::DeclareTimer FTM_RENDER_TREES;
+extern LLFastTimer::DeclareTimer FTM_RENDER_UI;
+extern LLFastTimer::DeclareTimer FTM_RENDER_WATER;
+extern LLFastTimer::DeclareTimer FTM_RENDER_WL_SKY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_ALPHA;
+extern LLFastTimer::DeclareTimer FTM_RENDER_CHARACTERS;
+extern LLFastTimer::DeclareTimer FTM_RENDER_BUMP;
+extern LLFastTimer::DeclareTimer FTM_RENDER_FULLBRIGHT;
+extern LLFastTimer::DeclareTimer FTM_RENDER_GLOW;
+extern LLFastTimer::DeclareTimer FTM_STATESORT;
+extern LLFastTimer::DeclareTimer FTM_PIPELINE;
+extern LLFastTimer::DeclareTimer FTM_CLIENT_COPY;
 
 
 class LLPipeline