From d94d9e35ff9f36a63386d9cd2d893895f005d6d7 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Sat, 7 Aug 2010 01:54:04 -0700 Subject: Applied patch by Robin Cornelius for SNOW-792: When using http textures, the viewer re-bakes the avatar's textures over and over --- linden/indra/newview/lltexturefetch.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index 820eaf7..c9d8369 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp @@ -920,12 +920,18 @@ bool LLTextureFetchWorker::doWork(S32 param) //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(); + return true; // failed + } } else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE) { @@ -948,7 +954,8 @@ 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(); @@ -957,8 +964,20 @@ bool LLTextureFetchWorker::doWork(S32 param) } else { - resetFormattedData(); - 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(); + return true; // failed + } } } else -- cgit v1.1