diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llappviewer.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lltexturefetch.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 37 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.h | 2 | 
4 files changed, 25 insertions, 22 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index fb1bded795..3b73343857 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1676,7 +1676,7 @@ bool LLAppViewer::initThreads()  	// Image decoding  	LLAppViewer::sImageDecodeThread = new LLImageDecodeThread(enable_threads && true);  	LLAppViewer::sTextureCache = new LLTextureCache(enable_threads && true); -	LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && false); +	LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && true);  	LLImage::initClass();  	if (LLFastTimer::sLog || LLFastTimer::sMetricLog) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index eeedf38543..5ce6884239 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -495,8 +495,8 @@ void LLTextureFetchWorker::setupPacketData()  U32 LLTextureFetchWorker::calcWorkPriority()  {  // 	llassert_always(mImagePriority >= 0 && mImagePriority <= LLViewerTexture::maxDecodePriority()); -	F32 priority_scale = (F32)LLWorkerThread::PRIORITY_LOWBITS / LLViewerFetchedTexture::maxDecodePriority(); -	mWorkPriority = (U32)(mImagePriority * priority_scale); +	static F32 PRIORITY_SCALE = (F32)LLWorkerThread::PRIORITY_LOWBITS / LLViewerFetchedTexture::maxDecodePriority(); +	mWorkPriority = (U32)(mImagePriority * PRIORITY_SCALE);  	return mWorkPriority;  } @@ -574,7 +574,7 @@ bool LLTextureFetchWorker::doWork(S32 param)  {  	LLMutexLock lock(&mWorkMutex); -	if ((mFetcher->isQuitting() || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED))) +	if ((mFetcher->isQuitting() || mImagePriority < 1.0f || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED)))  	{  		if (mState < WRITE_TO_CACHE)  		{ diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 1edaeec848..ad993bc056 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1513,16 +1513,20 @@ F32 LLViewerFetchedTexture::calcDecodePriority()  		{  			desired_discard -= 2;  		} -		else if (!isJustBound() && mCachedRawImageReady && !mBoostLevel) +		else if (!isJustBound() && mCachedRawImageReady)  		{ -			// We haven't rendered this in the last half second, and we have a cached raw image, leave the desired discard as-is -			desired_discard = cur_discard; -		} -		else if (mGLTexturep.notNull() && !mGLTexturep->getBoundRecently() && mBoostLevel == LLViewerTexture::BOOST_NONE) -		{ -			// We haven't rendered this in a while, de-prioritize it -			desired_discard += 2; +			if(mBoostLevel < BOOST_HIGH) +			{ +				// We haven't rendered this in a while, de-prioritize it +				desired_discard += 2; +			} +			//else +			//{ +			//	// We haven't rendered this in the last half second, and we have a cached raw image, leave the desired discard as-is +			//	desired_discard = cur_discard; +			//}  		} +  		S32 ddiscard = cur_discard - desired_discard;  		ddiscard = llclamp(ddiscard, 0, 4);  		priority = (ddiscard+1)*100000.f; @@ -1629,7 +1633,7 @@ bool LLViewerFetchedTexture::updateFetch()  	S32 desired_discard = getDesiredDiscardLevel();  	F32 decode_priority = getDecodePriority();  	decode_priority = llmax(decode_priority, 0.0f); -	 +  	if (mIsFetching)  	{  		// Sets mRawDiscardLevel, mRawImage, mAuxRawImage @@ -1772,10 +1776,10 @@ bool LLViewerFetchedTexture::updateFetch()  	{  		make_request = false;  	} -	else if (!isJustBound() && mCachedRawImageReady) -	{ -		make_request = false; -	} +	//else if (!isJustBound() && mCachedRawImageReady) +	//{ +	//	make_request = false; +	//}  	else  	{  		if (mIsFetching) @@ -1847,12 +1851,12 @@ BOOL LLViewerFetchedTexture::forceFetch()  	{  		return false ;  	} -	if(mDesiredSavedRawDiscardLevel < getDiscardLevel()) +	//if(mDesiredSavedRawDiscardLevel < getDiscardLevel())  	{  		//no need to force fetching. normal fetching flow will do the work.  		//return false ;  	} -	if (mNeedsCreateTexture) +	//if (mNeedsCreateTexture)  	{  		// We may be fetching still (e.g. waiting on write)  		// but don't check until we've processed the raw data we have @@ -1888,7 +1892,8 @@ BOOL LLViewerFetchedTexture::forceFetch()  		h = getHeight(0);  		c = getComponents();  	} -	fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), maxDecodePriority(), +	setDecodePriority(maxDecodePriority()) ; +	fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), getDecodePriority(),  																		  w, h, c, desired_discard, needsAux());  	if (fetch_request_created) diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 6aaaa4021b..79d9c4e7bb 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -384,8 +384,6 @@ public:  	void updateVirtualSize() ; -	// setDesiredDiscardLevel is only used by LLViewerTextureList -	void setDesiredDiscardLevel(S32 discard) { mDesiredDiscardLevel = discard; }  	S32  getDesiredDiscardLevel()			 { return mDesiredDiscardLevel; }  	void setMinDiscardLevel(S32 discard) 	{ mMinDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel,(S8)discard); }  | 
