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/llviewerparcelmgr.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 37 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.h | 2 | 
5 files changed, 27 insertions, 24 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 067369d54d..4a61096ad8 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/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 95d9dd5f6d..10a95443f1 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1331,8 +1331,8 @@ void LLViewerParcelMgr::setHoverParcel(const LLVector3d& pos)  	// only request parcel info if position has changed outside of the  	// last parcel grid step -	U32 west_parcel_step = floor ( pos.mdV[VX] / PARCEL_GRID_STEP_METERS ); -	U32 south_parcel_step = floor ( pos.mdV[VY] / PARCEL_GRID_STEP_METERS ); +	U32 west_parcel_step = (U32) floor( pos.mdV[VX] / PARCEL_GRID_STEP_METERS ); +	U32 south_parcel_step = (U32) floor( pos.mdV[VY] / PARCEL_GRID_STEP_METERS );  	if ((west_parcel_step == last_west) && (south_parcel_step == last_south))  	{ 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); }  | 
