From a5c5a6598c530f968bf5ed45a03d8ddd23abef9c Mon Sep 17 00:00:00 2001 From: Steve Bennetts Date: Thu, 3 Dec 2009 12:07:18 -0800 Subject: Un-threaded LLTextureFetch to address potential performance and edge case crash issues. Changed an assert to an llerrs with extra info Added "HTTP Textures" to "Develop" menu --- indra/newview/llappviewer.cpp | 2 +- indra/newview/lltexturefetch.cpp | 8 ++++++-- indra/newview/skins/default/xui/en/menu_viewer.xml | 11 +++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 84843138bf..ddc818172d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1668,7 +1668,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 && true); + LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), sImageDecodeThread, enable_threads && false); LLImage::initClass(); if (LLFastTimer::sLog || LLFastTimer::sMetricLog) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 9bb2a4ad0a..ef49d7f057 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -736,7 +736,8 @@ bool LLTextureFetchWorker::doWork(S32 param) } else { - llwarns << "Region not found for host: " << mHost << llendl; + // This will happen if not logged in or if a region deoes not have HTTP Texture enabled + //llwarns << "Region not found for host: " << mHost << llendl; } } if (!mUrl.empty()) @@ -943,11 +944,14 @@ bool LLTextureFetchWorker::doWork(S32 param) { llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl; } + if (mLoadedDiscard < 0) + { + llerrs << "Decode entered with invalid mLoadedDiscard. ID = " << mID << llendl; + } setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it mRawImage = NULL; mAuxImage = NULL; llassert_always(mFormattedImage.notNull()); - llassert_always(mLoadedDiscard >= 0); S32 discard = mHaveAllData ? 0 : mLoadedDiscard; U32 image_priority = LLWorkerThread::PRIORITY_NORMAL | mWorkPriority; mDecoded = FALSE; diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index ae8a1599a9..37136af680 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3268,6 +3268,17 @@ + + + +