diff options
| -rw-r--r-- | indra/newview/llfloatertexturefetchdebugger.cpp | 145 | ||||
| -rw-r--r-- | indra/newview/llfloatertexturefetchdebugger.h | 3 | ||||
| -rwxr-xr-x | indra/newview/lltexturefetch.cpp | 125 | ||||
| -rw-r--r-- | indra/newview/lltexturefetch.h | 14 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml | 14 | 
6 files changed, 208 insertions, 104 deletions
| diff --git a/indra/newview/llfloatertexturefetchdebugger.cpp b/indra/newview/llfloatertexturefetchdebugger.cpp index b6210423d1..02872f54a0 100644 --- a/indra/newview/llfloatertexturefetchdebugger.cpp +++ b/indra/newview/llfloatertexturefetchdebugger.cpp @@ -67,6 +67,7 @@ LLFloaterTextureFetchDebugger::LLFloaterTextureFetchDebugger(const LLSD& key)  BOOL LLFloaterTextureFetchDebugger::postBuild(void)   {	  	mDebugger = LLAppViewer::getTextureFetch()->getFetchDebugger(); +	mStartStatus = (S32)LLTextureFetchDebugger::IDLE;  	//set states for buttons  	mButtonStateMap["start_btn"] = true; @@ -93,7 +94,7 @@ BOOL LLFloaterTextureFetchDebugger::postBuild(void)  LLFloaterTextureFetchDebugger::~LLFloaterTextureFetchDebugger()  {  	//stop everything -	mDebugger->stopDebug(); +	mDebugger->setStopDebug();  }  void LLFloaterTextureFetchDebugger::updateButtons() @@ -125,11 +126,69 @@ void LLFloaterTextureFetchDebugger::disableButtons()  	childDisable("refetchallcache_btn");  	childDisable("refetchallhttp_btn");  } +void LLFloaterTextureFetchDebugger::setStartStatus(S32 status) +{ +	llassert_always(LLTextureFetchDebugger::IDLE == (LLTextureFetchDebugger::e_debug_state)mStartStatus) ; +	mStartStatus = status; +} +	 +bool LLFloaterTextureFetchDebugger::idleStart() +{ +	switch((LLTextureFetchDebugger::e_debug_state)mStartStatus) +	{ +		case LLTextureFetchDebugger::IDLE: +			break; +		case LLTextureFetchDebugger::START_DEBUG: +			mDebugger->startDebug(); +			break; +		case LLTextureFetchDebugger::READ_CACHE:			 +			mDebugger->debugCacheRead(); +			break; +		case LLTextureFetchDebugger::WRITE_CACHE: +			mDebugger->debugCacheWrite(); +			break; +		case LLTextureFetchDebugger::DECODING: +			mDebugger->debugDecoder(); +			break; +		case LLTextureFetchDebugger::HTTP_FETCHING: +			mDebugger->debugHTTP(); +			break; +		case LLTextureFetchDebugger::GL_TEX: +			mDebugger->debugGLTextureCreation(); +			break; +		case LLTextureFetchDebugger::REFETCH_VIS_CACHE: +			mDebugger->debugRefetchVisibleFromCache(); +			break; +		case LLTextureFetchDebugger::REFETCH_VIS_HTTP: +			mDebugger->debugRefetchVisibleFromHTTP(); +			break; +		case LLTextureFetchDebugger::REFETCH_ALL_CACHE: +			mDebugger->debugRefetchAllFromCache(); +			break; +		case LLTextureFetchDebugger::REFETCH_ALL_HTTP: +			mDebugger->debugRefetchAllFromHTTP(); +			break; +		default: +			break; +		} + +	if(mStartStatus != (S32)LLTextureFetchDebugger::IDLE) +	{ +		mStartStatus = (S32)LLTextureFetchDebugger::IDLE; +		return true; +	} + +	return false; +}  void LLFloaterTextureFetchDebugger::idle()  {	 -	LLTextureFetchDebugger::e_debug_state state = mDebugger->getState(); -	 +	if(idleStart()) +	{ +		return; +	} + +	LLTextureFetchDebugger::e_debug_state state = mDebugger->getState();	  	if(mDebugger->update())  	{  		switch(state) @@ -137,38 +196,36 @@ void LLFloaterTextureFetchDebugger::idle()  		case LLTextureFetchDebugger::IDLE:  			break;  		case LLTextureFetchDebugger::READ_CACHE:			 -			mButtonStateMap["decode_btn"] = true; -			updateButtons(); +			mButtonStateMap["decode_btn"] = true;			  			break; -		case LLTextureFetchDebugger::WRITE_CACHE: -			updateButtons(); +		case LLTextureFetchDebugger::WRITE_CACHE:			  			break;  		case LLTextureFetchDebugger::DECODING: -			mButtonStateMap["gl_btn"] = true; -			updateButtons(); +			mButtonStateMap["gl_btn"] = true;			  			break;  		case LLTextureFetchDebugger::HTTP_FETCHING:  			mButtonStateMap["cacheread_btn"] = true;  			mButtonStateMap["cachewrite_btn"] = true; -			mButtonStateMap["decode_btn"] = true; -			updateButtons(); +			mButtonStateMap["decode_btn"] = true;			  			break; -		case LLTextureFetchDebugger::GL_TEX: -			updateButtons(); +		case LLTextureFetchDebugger::GL_TEX:			  			break; -		case LLTextureFetchDebugger::REFETCH_VIS_CACHE: -			updateButtons(); -		case LLTextureFetchDebugger::REFETCH_VIS_HTTP: -			updateButtons(); +		case LLTextureFetchDebugger::REFETCH_VIS_CACHE:			 +			break; +		case LLTextureFetchDebugger::REFETCH_VIS_HTTP:			 +			break; +		case LLTextureFetchDebugger::REFETCH_ALL_CACHE:			  			break; -		case LLTextureFetchDebugger::REFETCH_ALL_CACHE: -			updateButtons();  		case LLTextureFetchDebugger::REFETCH_ALL_HTTP: -			updateButtons();  			break;  		default:  			break;  		} + +		if(state != LLTextureFetchDebugger::IDLE) +		{ +			updateButtons(); +		}  	}  } @@ -182,21 +239,21 @@ void LLFloaterTextureFetchDebugger::onClickStart()  {  	disableButtons(); -	mDebugger->startDebug(); +	setStartStatus((S32)LLTextureFetchDebugger::START_DEBUG);	  	mButtonStateMap["start_btn"] = false; -	if(LLAppViewer::getTextureFetch()->canLoadFromCache()) -	{ -		mButtonStateMap["cacheread_btn"] = true; -		mButtonStateMap["http_btn"] = false; -		mButtonStateMap["refetchviscache_btn"] = true; -		mButtonStateMap["refetchvishttp_btn"] = false; -		mButtonStateMap["refetchallcache_btn"] = true; -		mButtonStateMap["refetchallhttp_btn"] = false; -		mButtonStateMap["cachewrite_btn"] = false; -	} -	else +	//if(LLAppViewer::getTextureFetch()->canLoadFromCache()) +	//{ +	//	mButtonStateMap["cacheread_btn"] = true; +	//	mButtonStateMap["http_btn"] = false; +	//	mButtonStateMap["refetchviscache_btn"] = true; +	//	mButtonStateMap["refetchvishttp_btn"] = false; +	//	mButtonStateMap["refetchallcache_btn"] = true; +	//	mButtonStateMap["refetchallhttp_btn"] = false; +	//	mButtonStateMap["cachewrite_btn"] = false; +	//} +	//else  	{  		mButtonStateMap["cacheread_btn"] = true;  		mButtonStateMap["http_btn"] = true; @@ -214,7 +271,9 @@ void LLFloaterTextureFetchDebugger::onClickClose()  	setVisible(FALSE);  	//stop everything -	mDebugger->stopDebug(); +	mDebugger->setStopDebug(); + +	delete this;  }  void LLFloaterTextureFetchDebugger::onClickClear() @@ -232,7 +291,7 @@ void LLFloaterTextureFetchDebugger::onClickClear()  	updateButtons();  	//stop everything -	mDebugger->stopDebug(); +	mDebugger->setStopDebug();  	mDebugger->clearHistory();  } @@ -240,63 +299,63 @@ void LLFloaterTextureFetchDebugger::onClickCacheRead()  {  	disableButtons(); -	mDebugger->debugCacheRead(); +	setStartStatus((S32)LLTextureFetchDebugger::READ_CACHE);  }  void LLFloaterTextureFetchDebugger::onClickCacheWrite()  {  	disableButtons(); -	mDebugger->debugCacheWrite(); +	setStartStatus((S32)LLTextureFetchDebugger::WRITE_CACHE);  }  void LLFloaterTextureFetchDebugger::onClickHTTPLoad()  {  	disableButtons(); -	mDebugger->debugHTTP(); +	setStartStatus((S32)LLTextureFetchDebugger::HTTP_FETCHING);  }  void LLFloaterTextureFetchDebugger::onClickDecode()  {  	disableButtons(); -	mDebugger->debugDecoder(); +	setStartStatus((S32)LLTextureFetchDebugger::DECODING);  }  void LLFloaterTextureFetchDebugger::onClickGLTexture()  {  	disableButtons(); -	mDebugger->debugGLTextureCreation(); +	setStartStatus((S32)LLTextureFetchDebugger::GL_TEX);	  }  void LLFloaterTextureFetchDebugger::onClickRefetchVisCache()  {  	disableButtons(); -	mDebugger->debugRefetchVisibleFromCache(); +	setStartStatus((S32)LLTextureFetchDebugger::REFETCH_VIS_CACHE);  }  void LLFloaterTextureFetchDebugger::onClickRefetchVisHTTP()  {  	disableButtons(); -	mDebugger->debugRefetchVisibleFromHTTP(); +	setStartStatus((S32)LLTextureFetchDebugger::REFETCH_VIS_HTTP);	  }  void LLFloaterTextureFetchDebugger::onClickRefetchAllCache()  {  	disableButtons(); -	mDebugger->debugRefetchAllFromCache(); +	setStartStatus((S32)LLTextureFetchDebugger::REFETCH_ALL_CACHE);  }  void LLFloaterTextureFetchDebugger::onClickRefetchAllHTTP()  {  	disableButtons(); -	mDebugger->debugRefetchAllFromHTTP(); +	setStartStatus((S32)LLTextureFetchDebugger::REFETCH_ALL_HTTP);	  }  void LLFloaterTextureFetchDebugger::draw() diff --git a/indra/newview/llfloatertexturefetchdebugger.h b/indra/newview/llfloatertexturefetchdebugger.h index da1bff19d5..096ad88e07 100644 --- a/indra/newview/llfloatertexturefetchdebugger.h +++ b/indra/newview/llfloatertexturefetchdebugger.h @@ -65,9 +65,12 @@ private:  	void updateButtons();  	void disableButtons(); +	void setStartStatus(S32 status); +	bool idleStart();  private:	  	LLTextureFetchDebugger* mDebugger;  	std::map<std::string, bool> mButtonStateMap; +	S32 mStartStatus;  };  #endif // LL_FLOATER_TEXTURE_FETCH_DEBUGGER__H diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 5e2141caf6..332b5e6f6a 100755 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -695,7 +695,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,  	  mMetricsStartTime(0)  {  	mCanUseNET = mUrl.empty() ; - +	  	calcWorkPriority();  	mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL;  // 	llinfos << "Create: " << mID << " mHost:" << host << " Discard=" << discard << llendl; @@ -953,7 +953,7 @@ bool LLTextureFetchWorker::doWork(S32 param)  																		  offset, size, responder);  				mCacheReadTimer.reset();  			} -			else if(!mUrl.empty() && mCanUseHTTP && mFetcher->canLoadFromNetwork()) +			else if(!mUrl.empty() && mCanUseHTTP)  			{  				if (!(mUrl.compare(0, 7, "http://") == 0))  				{ @@ -963,15 +963,11 @@ bool LLTextureFetchWorker::doWork(S32 param)  				setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);  				mState = SEND_HTTP_REQ;  			} -			else if(mFetcher->canLoadFromNetwork()) +			else  			{  				setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);  				mState = LOAD_FROM_NETWORK;  			} -			else -			{ -				return true; //failed -			}  		}  		if (mLoaded) @@ -1019,15 +1015,12 @@ bool LLTextureFetchWorker::doWork(S32 param)  				return true;  			}  			// need more data -			else if(mFetcher->canLoadFromNetwork()) +			else  			{  				LL_DEBUGS("Texture") << mID << ": Not in Cache" << LL_ENDL;  				mState = LOAD_FROM_NETWORK;  			} -			else -			{ -				return true; //failed -			} +			  			// fall through  			LLTextureFetch::sCacheHitRate.addValue(0.f);  		} @@ -2306,6 +2299,10 @@ S32 LLTextureFetch::update(F32 max_time_ms)  		commonUpdate();  	} +	if(mFetchDebugger) +	{ +		mFetchDebugger->tryToStopDebug(); //check if need to stop debugger. +	}  	return res;  } @@ -3192,7 +3189,8 @@ LLTextureFetchDebugger::LLTextureFetchDebugger(LLTextureFetch* fetcher, LLTextur  LLTextureFetchDebugger::~LLTextureFetchDebugger()  {  	mFetchingHistory.clear(); -	stopDebug(); +	mStopDebug = TRUE; +	tryToStopDebug();  }  void LLTextureFetchDebugger::init() @@ -3228,6 +3226,8 @@ void LLTextureFetchDebugger::init()  	mRefetchedAllPixels = 0;  	mFreezeHistory = FALSE; +	mStopDebug = FALSE; +	mClearHistory = FALSE;  }  void LLTextureFetchDebugger::startDebug() @@ -3235,6 +3235,7 @@ void LLTextureFetchDebugger::startDebug()  	//lock the fetcher  	mFetcher->lockFetcher(true);  	mFreezeHistory = TRUE; +	mFetcher->resetLoadSource();  	//clear the current fetching queue  	gTextureList.clearFetchingRequests(); @@ -3290,8 +3291,13 @@ void LLTextureFetchDebugger::startDebug()  	mNumFetchedTextures = fetched_textures.size();  } -void LLTextureFetchDebugger::stopDebug() +void LLTextureFetchDebugger::tryToStopDebug()  { +	if(!mStopDebug) +	{ +		return; +	} +  	//clear the current debug work  	S32 size = mFetchingHistory.size();  	switch(mState) @@ -3320,35 +3326,50 @@ void LLTextureFetchDebugger::stopDebug()  		break;  	case GL_TEX:  		break; +	case REFETCH_VIS_CACHE: +		break; +	case REFETCH_VIS_HTTP: +		break; +	case REFETCH_ALL_CACHE: +		mRefetchList.clear(); +		break; +	case REFETCH_ALL_HTTP: +		mRefetchList.clear(); +		break;  	default:  		break;  	} -	while(1) +	if(update())  	{ -		if(update()) +		//unlock the fetcher +		mFetcher->lockFetcher(false); +		mFetcher->resetLoadSource(); +		mFreezeHistory = FALSE;		 +		mStopDebug = FALSE; + +		if(mClearHistory)  		{ -			break; +			mFetchingHistory.clear(); +			init();	 +			mTotalFetchingTime = gDebugTimers[0].getElapsedTimeF32(); //reset  		}  	} - -	//unlock the fetcher -	mFetcher->lockFetcher(false); -	mFetcher->resetLoadSource(); -	mFreezeHistory = FALSE; -	mTotalFetchingTime = gDebugTimers[0].getElapsedTimeF32(); //reset -	mRefetchList.clear();  }  //called in the main thread and when the fetching queue is empty  void LLTextureFetchDebugger::clearHistory()  { -	mFetchingHistory.clear(); -	init(); +	mClearHistory = TRUE;	  }  void LLTextureFetchDebugger::addHistoryEntry(LLTextureFetchWorker* worker)  { +	if(worker->mRawImage.isNull() || worker->mFormattedImage.isNull()) +	{ +		return; +	} +  	if(mFreezeHistory)  	{  		if(mState == REFETCH_VIS_CACHE || mState == REFETCH_VIS_HTTP) @@ -3517,6 +3538,12 @@ void LLTextureFetchDebugger::debugHTTP()  S32 LLTextureFetchDebugger::fillCurlQueue()  { +	if(mStopDebug) //stop +	{ +		mNbCurlCompleted = mFetchingHistory.size(); +		return 0; +	} +  	if (mNbCurlRequests == 24)  		return mNbCurlRequests; @@ -3624,6 +3651,15 @@ void LLTextureFetchDebugger::makeRefetchList()  void LLTextureFetchDebugger::scanRefetchList()  { +	if(mStopDebug) +	{ +		return; +	} +	if(!mRefetchNonVis) +	{ +		return; +	} +  	for(std::map< LLPointer<LLViewerFetchedTexture>, std::vector<S32> >::iterator iter = mRefetchList.begin();  		iter != mRefetchList.end(); )  	{ @@ -3646,14 +3682,13 @@ void LLTextureFetchDebugger::debugRefetchVisibleFromCache()  	mState = REFETCH_VIS_CACHE;  	clearTextures(); -	mFetcher->setLoadSource(LLTextureFetch::FROM_CACHE_ONLY); - +	mFetcher->setLoadSource(LLTextureFetch::FROM_ALL); +	  	mTimer.reset();  	mFetcher->lockFetcher(false);  	mRefetchVisCacheTime = -1.f;  	mRefetchedVisData = 0;  	mRefetchedVisPixels = 0; -	mRefetchStartTime = gDebugTimers[0].getElapsedTimeF32();  }  void LLTextureFetchDebugger::debugRefetchVisibleFromHTTP() @@ -3661,16 +3696,14 @@ void LLTextureFetchDebugger::debugRefetchVisibleFromHTTP()  	llassert_always(mState == IDLE);  	mState = REFETCH_VIS_HTTP; -	clearCache();  	clearTextures(); -	mFetcher->setLoadSource(LLTextureFetch::FROM_NETWORK_ONLY); +	mFetcher->setLoadSource(LLTextureFetch::FROM_HTTP_ONLY);  	mTimer.reset();  	mFetcher->lockFetcher(false);  	mRefetchVisHTTPTime = -1.f;  	mRefetchedVisData = 0;  	mRefetchedVisPixels = 0; -	mRefetchStartTime = gDebugTimers[0].getElapsedTimeF32();  }  void LLTextureFetchDebugger::debugRefetchAllFromCache() @@ -3680,14 +3713,14 @@ void LLTextureFetchDebugger::debugRefetchAllFromCache()  	clearTextures();  	makeRefetchList(); -	mFetcher->setLoadSource(LLTextureFetch::FROM_CACHE_ONLY); +	mFetcher->setLoadSource(LLTextureFetch::FROM_ALL);  	mTimer.reset();  	mFetcher->lockFetcher(false);  	mRefetchAllCacheTime = -1.f;  	mRefetchedAllData = 0;  	mRefetchedAllPixels = 0; -	mRefetchStartTime = gDebugTimers[0].getElapsedTimeF32(); +	mRefetchNonVis = FALSE;  }  void LLTextureFetchDebugger::debugRefetchAllFromHTTP() @@ -3695,17 +3728,16 @@ void LLTextureFetchDebugger::debugRefetchAllFromHTTP()  	llassert_always(mState == IDLE);  	mState = REFETCH_ALL_HTTP; -	clearCache();  	clearTextures();  	makeRefetchList(); -	mFetcher->setLoadSource(LLTextureFetch::FROM_NETWORK_ONLY); +	mFetcher->setLoadSource(LLTextureFetch::FROM_HTTP_ONLY);  	mTimer.reset();  	mFetcher->lockFetcher(false);  	mRefetchAllHTTPTime = -1.f;  	mRefetchedAllData = 0;  	mRefetchedAllPixels = 0; -	mRefetchStartTime = gDebugTimers[0].getElapsedTimeF32(); +	mRefetchNonVis = TRUE;  }  bool LLTextureFetchDebugger::update() @@ -3751,7 +3783,7 @@ bool LLTextureFetchDebugger::update()  	case REFETCH_VIS_CACHE:  		if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)  		{ -			mRefetchVisCacheTime = gDebugTimers[0].getElapsedTimeF32() - mRefetchStartTime; +			mRefetchVisCacheTime = mTimer.getElapsedTimeF32() ;  			mState = IDLE;  			mFetcher->lockFetcher(true);  			mFetcher->resetLoadSource(); @@ -3760,7 +3792,7 @@ bool LLTextureFetchDebugger::update()  	case REFETCH_VIS_HTTP:  		if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)  		{ -			mRefetchVisHTTPTime = gDebugTimers[0].getElapsedTimeF32() - mRefetchStartTime; +			mRefetchVisHTTPTime = mTimer.getElapsedTimeF32() ;  			mState = IDLE;  			mFetcher->lockFetcher(true);  			mFetcher->resetLoadSource(); @@ -3770,22 +3802,31 @@ bool LLTextureFetchDebugger::update()  		scanRefetchList();  		if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)  		{ -			mRefetchAllCacheTime = gDebugTimers[0].getElapsedTimeF32() - mRefetchStartTime; -			mState = IDLE; +			if(!mRefetchNonVis) +			{ +				mRefetchNonVis = TRUE; //start to fetch non-vis +				scanRefetchList(); +				break; +			} + +			mRefetchAllCacheTime = mTimer.getElapsedTimeF32() ; +			mState = IDLE;   			mFetcher->lockFetcher(true);  			mFetcher->resetLoadSource();  			mRefetchList.clear(); +			mRefetchNonVis = FALSE;  		}  		break;  	case REFETCH_ALL_HTTP:  		scanRefetchList();  		if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)  		{ -			mRefetchAllHTTPTime = gDebugTimers[0].getElapsedTimeF32() - mRefetchStartTime; +			mRefetchAllHTTPTime = mTimer.getElapsedTimeF32() ;  			mState = IDLE;  			mFetcher->lockFetcher(true);  			mFetcher->resetLoadSource();  			mRefetchList.clear(); +			mRefetchNonVis = FALSE;  		}  		break;  	default: diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index ff78d34eda..436306398e 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -221,8 +221,7 @@ public:  	enum e_tex_source  	{  		FROM_ALL = 0, -		FROM_CACHE_ONLY, -		FROM_NETWORK_ONLY, +		FROM_HTTP_ONLY,  		INVALID_SOURCE  	};  private: @@ -240,8 +239,7 @@ public:  	void setLoadSource(e_tex_source source) {mFetchSource = source;}  	void resetLoadSource() {mFetchSource = mOriginFetchSource;} -	bool canLoadFromCache() { return mFetchSource != FROM_NETWORK_ONLY;} -	bool canLoadFromNetwork() { return mFetchSource != FROM_CACHE_ONLY;} +	bool canLoadFromCache() { return mFetchSource != FROM_HTTP_ONLY;}  };  //debug use @@ -257,6 +255,7 @@ public:  	enum e_debug_state  	{  		IDLE = 0, +		START_DEBUG,  		READ_CACHE,  		WRITE_CACHE,  		DECODING, @@ -347,13 +346,15 @@ private:  	U32 mRefetchedAllPixels;  	BOOL mFreezeHistory; +	BOOL mStopDebug; +	BOOL mClearHistory; +	BOOL mRefetchNonVis;  	std::string mHTTPUrl;  	S32 mNbCurlRequests;  	S32 mNbCurlCompleted;  	std::map< LLPointer<LLViewerFetchedTexture>, std::vector<S32> > mRefetchList; -	F32 mRefetchStartTime;  public:  	bool update(); //called in the main thread once per frame @@ -364,7 +365,8 @@ public:  	void setCurlGetRequest(LLCurlRequest* request) { mCurlGetRequest = request;}  	void startDebug(); -	void stopDebug(); //stop everything +	void setStopDebug() {mStopDebug = TRUE;} +	void tryToStopDebug(); //stop everything  	void debugCacheRead();  	void debugCacheWrite();	  	void debugHTTP(); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 684d1afa4f..511fc13973 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -409,7 +409,11 @@ void LLViewerTextureManager::cleanup()  void LLViewerTexture::initClass()  {  	LLImageGL::sDefaultGLTexture = LLViewerFetchedTexture::sDefaultImagep->getGLTexture() ; -	sTexelPixelRatio = gSavedSettings.getF32("TexelPixelRatio"); +	 +	if(gSavedSettings.getBOOL("TextureFetchDebuggerEnabled")) +	{ +		sTexelPixelRatio = gSavedSettings.getF32("TexelPixelRatio"); +	}  }  // static @@ -2168,7 +2172,10 @@ bool LLViewerFetchedTexture::updateFetch()  void LLViewerFetchedTexture::clearFetchedResults()  { -	llassert_always(!mNeedsCreateTexture && !mIsFetching); +	if(mNeedsCreateTexture || mIsFetching) +	{ +		return ; +	}  	cleanup();  	destroyGLTexture(); diff --git a/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml index ca2f9bfd94..6fbdd8a318 100644 --- a/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml +++ b/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml @@ -266,7 +266,7 @@       width="264">
      <radio_item
       height="16"
 -     label="Cache + Network"
 +     label="Cache + HTTP"
       layout="topleft"
       left="3"
       name="0"
 @@ -274,18 +274,10 @@       width="100" />
      <radio_item
       height="16"
 -     label="Cache Only"
 -     layout="topleft"
 -     left_delta="120"
 -     name="1"
 -     top_delta="0"
 -     width="200" />
 -    <radio_item
 -     height="16"
 -     label="Network Only"
 +     label="HTTP Only"
       layout="topleft"
       left_delta="100"
 -     name="2"
 +     name="1"
       top_delta="0"
       width="200" />
    </radio_group>
 | 
