@@ -1691,6 +1691,7 @@ void LLViewerFetchedTexture::processTextureStats()
1691
1691
if (mDesiredDiscardLevel > mMinDesiredDiscardLevel )// need to load more
1692
1692
{
1693
1693
mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , mMinDesiredDiscardLevel );
1694
+ mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , (S32)mLoadedCallbackDesiredDiscardLevel );
1694
1695
mFullyLoaded = false ;
1695
1696
}
1696
1697
// setDebugText("fully loaded");
@@ -1740,6 +1741,7 @@ void LLViewerFetchedTexture::processTextureStats()
1740
1741
log ((F32)mFullHeight / mKnownDrawHeight ) / log_2);
1741
1742
mDesiredDiscardLevel = llclamp (mDesiredDiscardLevel , (S8)0 , (S8)getMaxDiscardLevel ());
1742
1743
mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , mMinDesiredDiscardLevel );
1744
+ mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , (S32)mLoadedCallbackDesiredDiscardLevel );
1743
1745
}
1744
1746
mKnownDrawSizeChanged = false ;
1745
1747
@@ -2464,6 +2466,7 @@ bool LLViewerFetchedTexture::doLoadedCallbacks()
2464
2466
if (mIsRawImageValid )
2465
2467
{
2466
2468
// If we have an existing raw image, we have a baseline for the raw and auxiliary quality levels.
2469
+ current_raw_discard = mRawDiscardLevel ;
2467
2470
best_raw_discard = llmin (best_raw_discard, mRawDiscardLevel );
2468
2471
best_aux_discard = llmin (best_aux_discard, mRawDiscardLevel ); // We always decode the aux when we decode the base raw
2469
2472
current_aux_discard = llmin (current_aux_discard, best_aux_discard);
@@ -2922,10 +2925,12 @@ void LLViewerLODTexture::processTextureStats()
2922
2925
{
2923
2926
// If the image has not been significantly visible in a while, we don't want it
2924
2927
mDesiredDiscardLevel = llmin (mMinDesiredDiscardLevel , (S8)(MAX_DISCARD_LEVEL + 1 ));
2928
+ mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , (S32)mLoadedCallbackDesiredDiscardLevel );
2925
2929
}
2926
2930
else if (!mFullWidth || !mFullHeight )
2927
2931
{
2928
2932
mDesiredDiscardLevel = getMaxDiscardLevel ();
2933
+ mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , (S32)mLoadedCallbackDesiredDiscardLevel );
2929
2934
}
2930
2935
else
2931
2936
{
@@ -2995,6 +3000,7 @@ void LLViewerLODTexture::processTextureStats()
2995
3000
// stop requesting more
2996
3001
mDesiredDiscardLevel = current_discard;
2997
3002
}
3003
+ mDesiredDiscardLevel = llmin (mDesiredDiscardLevel , (S32)mLoadedCallbackDesiredDiscardLevel );
2998
3004
}
2999
3005
3000
3006
if (mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0 )
0 commit comments