SH-3018 WIP - removed audit texture, other unused diagnostic code
parent
e2edb5b751
commit
7b3f721e7a
|
|
@ -43,7 +43,6 @@
|
|||
const F32 MIN_TEXTURE_LIFETIME = 10.f;
|
||||
|
||||
//statics
|
||||
LLGLuint LLImageGL::sCurrentBoundTextures[MAX_GL_TEXTURE_UNITS] = { 0 };
|
||||
|
||||
U32 LLImageGL::sUniqueCount = 0;
|
||||
U32 LLImageGL::sBindCount = 0;
|
||||
|
|
@ -65,19 +64,10 @@ std::set<LLImageGL*> LLImageGL::sImageList;
|
|||
//****************************************************************************************************
|
||||
//-----------------------
|
||||
//debug use
|
||||
BOOL gAuditTexture = FALSE ;
|
||||
#define MAX_TEXTURE_LOG_SIZE 22 //2048 * 2048
|
||||
std::vector<S32> LLImageGL::sTextureLoadedCounter(MAX_TEXTURE_LOG_SIZE + 1) ;
|
||||
std::vector<S32> LLImageGL::sTextureBoundCounter(MAX_TEXTURE_LOG_SIZE + 1) ;
|
||||
std::vector<S32> LLImageGL::sTextureCurBoundCounter(MAX_TEXTURE_LOG_SIZE + 1) ;
|
||||
S32 LLImageGL::sCurTexSizeBar = -1 ;
|
||||
S32 LLImageGL::sCurTexPickSize = -1 ;
|
||||
LLPointer<LLImageGL> LLImageGL::sHighlightTexturep = NULL;
|
||||
S32 LLImageGL::sMaxCatagories = 1 ;
|
||||
S32 LLImageGL::sMaxCategories = 1 ;
|
||||
|
||||
std::vector<S32> LLImageGL::sTextureMemByCategory;
|
||||
std::vector<S32> LLImageGL::sTextureMemByCategoryBound ;
|
||||
std::vector<S32> LLImageGL::sTextureCurMemByCategoryBound ;
|
||||
//------------------------
|
||||
//****************************************************************************************************
|
||||
//End for texture auditing use only
|
||||
|
|
@ -175,49 +165,11 @@ BOOL is_little_endian()
|
|||
//static
|
||||
void LLImageGL::initClass(S32 num_catagories)
|
||||
{
|
||||
sMaxCatagories = num_catagories ;
|
||||
|
||||
sTextureMemByCategory.resize(sMaxCatagories);
|
||||
sTextureMemByCategoryBound.resize(sMaxCatagories) ;
|
||||
sTextureCurMemByCategoryBound.resize(sMaxCatagories) ;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLImageGL::cleanupClass()
|
||||
{
|
||||
sTextureMemByCategory.clear() ;
|
||||
sTextureMemByCategoryBound.clear() ;
|
||||
sTextureCurMemByCategoryBound.clear() ;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLImageGL::setHighlightTexture(S32 category)
|
||||
{
|
||||
const S32 dim = 128;
|
||||
sHighlightTexturep = new LLImageGL() ;
|
||||
LLPointer<LLImageRaw> image_raw = new LLImageRaw(dim,dim,3);
|
||||
U8* data = image_raw->getData();
|
||||
for (S32 i = 0; i<dim; i++)
|
||||
{
|
||||
for (S32 j = 0; j<dim; j++)
|
||||
{
|
||||
const S32 border = 2;
|
||||
if (i<border || j<border || i>=(dim-border) || j>=(dim-border))
|
||||
{
|
||||
*data++ = 0xff;
|
||||
*data++ = 0xff;
|
||||
*data++ = 0xff;
|
||||
}
|
||||
else
|
||||
{
|
||||
*data++ = 0xff;
|
||||
*data++ = 0xff;
|
||||
*data++ = 0x00;
|
||||
}
|
||||
}
|
||||
}
|
||||
sHighlightTexturep->createGLTexture(0, image_raw, 0, TRUE, category);
|
||||
image_raw = NULL;
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -285,31 +237,11 @@ void LLImageGL::updateStats(F32 current_time)
|
|||
sLastFrameTime = current_time;
|
||||
sBoundTextureMemoryInBytes = sCurBoundTextureMemory;
|
||||
sCurBoundTextureMemory = 0;
|
||||
|
||||
if(gAuditTexture)
|
||||
{
|
||||
for(U32 i = 0 ; i < sTextureCurBoundCounter.size() ; i++)
|
||||
{
|
||||
sTextureBoundCounter[i] = sTextureCurBoundCounter[i] ;
|
||||
sTextureCurBoundCounter[i] = 0 ;
|
||||
}
|
||||
for(U32 i = 0 ; i < sTextureCurMemByCategoryBound.size() ; i++)
|
||||
{
|
||||
sTextureMemByCategoryBound[i] = sTextureCurMemByCategoryBound[i] ;
|
||||
sTextureCurMemByCategoryBound[i] = 0 ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
S32 LLImageGL::updateBoundTexMem(const S32 mem, const S32 ncomponents, S32 category)
|
||||
{
|
||||
if(gAuditTexture && ncomponents > 0 && category > -1)
|
||||
{
|
||||
sTextureCurBoundCounter[getTextureCounterIndex(mem / ncomponents)]++ ;
|
||||
sTextureCurMemByCategoryBound[category] += mem ;
|
||||
}
|
||||
|
||||
LLImageGL::sCurBoundTextureMemory += mem ;
|
||||
return LLImageGL::sCurBoundTextureMemory;
|
||||
}
|
||||
|
|
@ -1284,7 +1216,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S
|
|||
return TRUE ;
|
||||
}
|
||||
|
||||
setCategory(category) ;
|
||||
setCategory(category);
|
||||
const U8* rawdata = imageraw->getData();
|
||||
return createGLTexture(discard_level, rawdata, FALSE, usename);
|
||||
}
|
||||
|
|
@ -1362,11 +1294,6 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
|
|||
{
|
||||
sGlobalTextureMemoryInBytes -= mTextureMemory;
|
||||
|
||||
if(gAuditTexture)
|
||||
{
|
||||
decTextureCounter(mTextureMemory, mComponents, mCategory) ;
|
||||
}
|
||||
|
||||
LLImageGL::deleteTextures(1, &old_name);
|
||||
|
||||
stop_glerror();
|
||||
|
|
@ -1376,10 +1303,6 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
|
|||
sGlobalTextureMemoryInBytes += mTextureMemory;
|
||||
mTexelsInGLTexture = getWidth() * getHeight() ;
|
||||
|
||||
if(gAuditTexture)
|
||||
{
|
||||
incTextureCounter(mTextureMemory, mComponents, mCategory) ;
|
||||
}
|
||||
// mark this as bound at this point, so we don't throw it out immediately
|
||||
mLastBindTime = sLastFrameTime;
|
||||
return TRUE;
|
||||
|
|
@ -1536,10 +1459,6 @@ void LLImageGL::destroyGLTexture()
|
|||
{
|
||||
if(mTextureMemory)
|
||||
{
|
||||
if(gAuditTexture)
|
||||
{
|
||||
decTextureCounter(mTextureMemory, mComponents, mCategory) ;
|
||||
}
|
||||
sGlobalTextureMemoryInBytes -= mTextureMemory;
|
||||
mTextureMemory = 0;
|
||||
}
|
||||
|
|
@ -1969,70 +1888,6 @@ BOOL LLImageGL::getMask(const LLVector2 &tc)
|
|||
return res;
|
||||
}
|
||||
|
||||
void LLImageGL::setCategory(S32 category)
|
||||
{
|
||||
#if 0 //turn this off temporarily because it is not in use now.
|
||||
if(!gAuditTexture)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
if(mCategory != category)
|
||||
{
|
||||
if(mCategory > -1)
|
||||
{
|
||||
sTextureMemByCategory[mCategory] -= mTextureMemory ;
|
||||
}
|
||||
if(category > -1 && category < sMaxCatagories)
|
||||
{
|
||||
sTextureMemByCategory[category] += mTextureMemory ;
|
||||
mCategory = category;
|
||||
}
|
||||
else
|
||||
{
|
||||
mCategory = -1 ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
//for debug use
|
||||
//val is a "power of two" number
|
||||
S32 LLImageGL::getTextureCounterIndex(U32 val)
|
||||
{
|
||||
//index range is [0, MAX_TEXTURE_LOG_SIZE].
|
||||
if(val < 2)
|
||||
{
|
||||
return 0 ;
|
||||
}
|
||||
else if(val >= (1 << MAX_TEXTURE_LOG_SIZE))
|
||||
{
|
||||
return MAX_TEXTURE_LOG_SIZE ;
|
||||
}
|
||||
else
|
||||
{
|
||||
S32 ret = 0 ;
|
||||
while(val >>= 1)
|
||||
{
|
||||
++ret;
|
||||
}
|
||||
return ret ;
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLImageGL::incTextureCounter(U32 val, S32 ncomponents, S32 category)
|
||||
{
|
||||
sTextureLoadedCounter[getTextureCounterIndex(val)]++ ;
|
||||
sTextureMemByCategory[category] += (S32)val * ncomponents ;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLImageGL::decTextureCounter(U32 val, S32 ncomponents, S32 category)
|
||||
{
|
||||
sTextureLoadedCounter[getTextureCounterIndex(val)]-- ;
|
||||
sTextureMemByCategory[category] += (S32)val * ncomponents ;
|
||||
}
|
||||
|
||||
void LLImageGL::setCurTexSizebar(S32 index, BOOL set_pick_size)
|
||||
{
|
||||
sCurTexSizeBar = index ;
|
||||
|
|
|
|||
|
|
@ -102,8 +102,8 @@ public:
|
|||
static void setManualImage(U32 target, S32 miplevel, S32 intformat, S32 width, S32 height, U32 pixformat, U32 pixtype, const void *pixels);
|
||||
|
||||
BOOL createGLTexture() ;
|
||||
BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0, BOOL to_create = TRUE,
|
||||
S32 category = sMaxCatagories - 1);
|
||||
BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0, BOOL to_create = TRUE,
|
||||
S32 category = sMaxCategories-1);
|
||||
BOOL createGLTexture(S32 discard_level, const U8* data, BOOL data_hasmips = FALSE, S32 usename = 0);
|
||||
void setImage(const LLImageRaw* imageraw);
|
||||
void setImage(const U8* data_in, BOOL data_hasmips = FALSE);
|
||||
|
|
@ -234,8 +234,6 @@ public:
|
|||
static S32 sCount;
|
||||
|
||||
static F32 sLastFrameTime;
|
||||
|
||||
static LLGLuint sCurrentBoundTextures[MAX_GL_TEXTURE_UNITS]; // Currently bound texture ID
|
||||
|
||||
// Global memory statistics
|
||||
static S32 sGlobalTextureMemoryInBytes; // Tracks main memory texmem
|
||||
|
|
@ -257,9 +255,10 @@ public:
|
|||
public:
|
||||
static void initClass(S32 num_catagories) ;
|
||||
static void cleanupClass() ;
|
||||
private:
|
||||
static S32 sMaxCatagories ;
|
||||
|
||||
private:
|
||||
static S32 sMaxCategories;
|
||||
|
||||
//the flag to allow to call readBackRaw(...).
|
||||
//can be removed if we do not use that function at all.
|
||||
static BOOL sAllowReadBackRaw ;
|
||||
|
|
@ -269,39 +268,22 @@ private:
|
|||
//****************************************************************************************************
|
||||
private:
|
||||
S32 mCategory ;
|
||||
public:
|
||||
void setCategory(S32 category) ;
|
||||
S32 getCategory()const {return mCategory ;}
|
||||
|
||||
public:
|
||||
void setCategory(S32 category) {mCategory = category;}
|
||||
S32 getCategory()const {return mCategory;}
|
||||
|
||||
//for debug use: show texture size distribution
|
||||
//----------------------------------------
|
||||
static LLPointer<LLImageGL> sHighlightTexturep; //default texture to replace normal textures
|
||||
static std::vector<S32> sTextureLoadedCounter ;
|
||||
static std::vector<S32> sTextureBoundCounter ;
|
||||
static std::vector<S32> sTextureCurBoundCounter ;
|
||||
static S32 sCurTexSizeBar ;
|
||||
static S32 sCurTexPickSize ;
|
||||
|
||||
static void setHighlightTexture(S32 category) ;
|
||||
static S32 getTextureCounterIndex(U32 val) ;
|
||||
static void incTextureCounter(U32 val, S32 ncomponents, S32 category) ;
|
||||
static void decTextureCounter(U32 val, S32 ncomponents, S32 category) ;
|
||||
static void setCurTexSizebar(S32 index, BOOL set_pick_size = TRUE) ;
|
||||
static void resetCurTexSizebar();
|
||||
//----------------------------------------
|
||||
|
||||
//for debug use: show texture category distribution
|
||||
//----------------------------------------
|
||||
|
||||
static std::vector<S32> sTextureMemByCategory;
|
||||
static std::vector<S32> sTextureMemByCategoryBound ;
|
||||
static std::vector<S32> sTextureCurMemByCategoryBound ;
|
||||
//----------------------------------------
|
||||
//****************************************************************************************************
|
||||
//End of definitions for texture auditing use only
|
||||
//****************************************************************************************************
|
||||
|
||||
};
|
||||
|
||||
extern BOOL gAuditTexture;
|
||||
#endif // LL_LLIMAGEGL_H
|
||||
|
|
|
|||
|
|
@ -246,14 +246,6 @@ bool LLTexUnit::bind(LLTexture* texture, bool for_rendering, bool forceBind)
|
|||
}
|
||||
|
||||
//in audit, replace the selected texture by the default one.
|
||||
if(gAuditTexture && for_rendering && LLImageGL::sCurTexPickSize > 0)
|
||||
{
|
||||
if(texture->getWidth() * texture->getHeight() == LLImageGL::sCurTexPickSize)
|
||||
{
|
||||
gl_tex->updateBindStats(gl_tex->mTextureMemory);
|
||||
return bind(LLImageGL::sHighlightTexturep.get());
|
||||
}
|
||||
}
|
||||
if ((mCurrTexture != gl_tex->getTexName()) || forceBind)
|
||||
{
|
||||
activate();
|
||||
|
|
|
|||
|
|
@ -335,17 +335,6 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AuditTexture</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enable texture auditting.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AutoAcceptNewInventory</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -560,7 +560,6 @@ static void settings_modify()
|
|||
LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //square lod factor to get exponential range of [1,4]
|
||||
gDebugGL = gSavedSettings.getBOOL("RenderDebugGL") || gDebugSession;
|
||||
gDebugPipeline = gSavedSettings.getBOOL("RenderDebugPipeline");
|
||||
gAuditTexture = gSavedSettings.getBOOL("AuditTexture");
|
||||
}
|
||||
|
||||
class LLFastTimerLogThread : public LLThread
|
||||
|
|
|
|||
|
|
@ -87,7 +87,6 @@ std::string gLastRunVersion;
|
|||
|
||||
extern BOOL gResizeScreenTexture;
|
||||
extern BOOL gDebugGL;
|
||||
extern BOOL gAuditTexture;
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Listeners
|
||||
|
||||
|
|
@ -401,12 +400,6 @@ static bool handleRenderUseImpostorsChanged(const LLSD& newvalue)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool handleAuditTextureChanged(const LLSD& newvalue)
|
||||
{
|
||||
gAuditTexture = newvalue.asBoolean();
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool handleRenderDebugGLChanged(const LLSD& newvalue)
|
||||
{
|
||||
gDebugGL = newvalue.asBoolean() || gDebugSession;
|
||||
|
|
@ -608,7 +601,6 @@ void settings_setup_listeners()
|
|||
gSavedSettings.getControl("RenderDeferredSSAO")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
|
||||
gSavedSettings.getControl("RenderPerformanceTest")->getSignal()->connect(boost::bind(&handleRenderPerfTestChanged, _2));
|
||||
gSavedSettings.getControl("TextureMemory")->getSignal()->connect(boost::bind(&handleVideoMemoryChanged, _2));
|
||||
gSavedSettings.getControl("AuditTexture")->getSignal()->connect(boost::bind(&handleAuditTextureChanged, _2));
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&handleChatFontSizeChanged, _2));
|
||||
gSavedSettings.getControl("ChatPersistTime")->getSignal()->connect(boost::bind(&handleChatPersistTimeChanged, _2));
|
||||
gSavedSettings.getControl("ConsoleMaxLines")->getSignal()->connect(boost::bind(&handleConsoleMaxLinesChanged, _2));
|
||||
|
|
|
|||
|
|
@ -383,11 +383,6 @@ void LLViewerTextureManager::cleanup()
|
|||
void LLViewerTexture::initClass()
|
||||
{
|
||||
LLImageGL::sDefaultGLTexture = LLViewerFetchedTexture::sDefaultImagep->getGLTexture() ;
|
||||
|
||||
if(gAuditTexture)
|
||||
{
|
||||
LLImageGL::setHighlightTexture(LLViewerTexture::OTHER) ;
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -655,10 +650,6 @@ void LLViewerTexture::setBoostLevel(S32 level)
|
|||
{
|
||||
setNoDelete() ;
|
||||
}
|
||||
if(gAuditTexture)
|
||||
{
|
||||
setCategory(mBoostLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2572,49 +2572,6 @@ BOOL LLVOAvatarSelf::needsRenderBeam()
|
|||
// static
|
||||
void LLVOAvatarSelf::deleteScratchTextures()
|
||||
{
|
||||
if(gAuditTexture)
|
||||
{
|
||||
S32 total_tex_size = sScratchTexBytes ;
|
||||
S32 tex_size = SCRATCH_TEX_WIDTH * SCRATCH_TEX_HEIGHT ;
|
||||
|
||||
if( sScratchTexNames.checkData( GL_LUMINANCE ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 1, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= tex_size ;
|
||||
}
|
||||
if( sScratchTexNames.checkData( GL_ALPHA ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 1, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= tex_size ;
|
||||
}
|
||||
if( sScratchTexNames.checkData( GL_COLOR_INDEX ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 1, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= tex_size ;
|
||||
}
|
||||
if( sScratchTexNames.checkData( LLRender::sGLCoreProfile ? GL_RG : GL_LUMINANCE_ALPHA ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 2, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= 2 * tex_size ;
|
||||
}
|
||||
if( sScratchTexNames.checkData( GL_RGB ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 3, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= 3 * tex_size ;
|
||||
}
|
||||
if( sScratchTexNames.checkData( GL_RGBA ) )
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 4, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= 4 * tex_size ;
|
||||
}
|
||||
//others
|
||||
while(total_tex_size > 0)
|
||||
{
|
||||
LLImageGL::decTextureCounter(tex_size, 4, LLViewerTexture::AVATAR_SCRATCH_TEX) ;
|
||||
total_tex_size -= 4 * tex_size ;
|
||||
}
|
||||
}
|
||||
|
||||
for( LLGLuint* namep = sScratchTexNames.getFirstData();
|
||||
namep;
|
||||
namep = sScratchTexNames.getNextData() )
|
||||
|
|
|
|||
|
|
@ -2576,16 +2576,6 @@
|
|||
function="ToggleControl"
|
||||
parameter="TextureLoadFullRes" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Audit Textures"
|
||||
name="Audit Textures">
|
||||
<menu_item_check.on_check
|
||||
function="CheckControl"
|
||||
parameter="AuditTexture" />
|
||||
<menu_item_check.on_click
|
||||
function="ToggleControl"
|
||||
parameter="AuditTexture" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Texture Atlas (experimental)"
|
||||
name="Texture Atlas">
|
||||
|
|
|
|||
Loading…
Reference in New Issue