From a2313b026cafd6b9f5af80b71801140e687b8caf Mon Sep 17 00:00:00 2001 From: Player Dagostino Date: Tue, 2 Aug 2011 20:21:02 +0200 Subject: [PATCH] Apply fix from SNOW-792 for textures rebaking over and over. --- indra/newview/lltexturefetch.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 83de34ecd..0567911fb 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1382,6 +1382,12 @@ bool LLTextureFetchWorker::doWork(S32 param) setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); return false ; } + else + { + // UDP is not an option, we are dead + resetFormattedData(); + return true; // failed + } } else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE) { @@ -1404,7 +1410,9 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mHTTPFailCount >= max_attempts) { - if (cur_size > 0) + // Make max_attempts attempt at decoding what data we have, + // then bail forever on this image + if (cur_size > 0 && (mHTTPFailCount < (max_attempts+1)) ) { // Use available data mLoadedDiscard = mFormattedImage->getDiscardLevel(); @@ -1413,9 +1421,21 @@ bool LLTextureFetchWorker::doWork(S32 param) } else { - resetFormattedData(); - mState = DONE; - return true; // failed + //roll back to try UDP + if(mCanUseNET) + { + mState = INIT ; + mCanUseHTTP = false ; + setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); + return false ; + } + else + { + // UDP is not an option, we are dead + resetFormattedData(); + mState = DONE; + return true; // failed + } } } else