summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2013-02-14 12:15:59 -0600
committerDave Parks <davep@lindenlab.com>2013-02-14 12:15:59 -0600
commitbc60d34f68948542d863229617c22ba0ae6a186a (patch)
tree5b74eff7950be0642343954ee7913c06a0d25187 /indra
parentf7c57fe1715368f23b716c5591afe6cb7feb34bf (diff)
MAINT-2368 Pull in Firestorm fix for textures unloading behind you.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl26
-rw-r--r--indra/newview/llviewertexture.cpp8
2 files changed, 20 insertions, 14 deletions
diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
index 43ed41a205..35f8a6ce61 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
@@ -30,18 +30,24 @@ uniform mat4 matrixPalette[32];
mat4 getObjectSkinnedTransform()
{
- int i;
- vec4 w = fract(weight4);
- vec4 index = floor(weight4);
-
- float scale = 1.0/(w.x+w.y+w.z+w.w);
- w *= scale;
+ float w0 = fract(weight4.x);
+ float w1 = fract(weight4.y);
+ float w2 = fract(weight4.z);
+ float w3 = fract(weight4.w);
+
+ int i0 = int(floor(weight4.x));
+ int i1 = int(floor(weight4.y));
+ int i2 = int(floor(weight4.z));
+ int i3 = int(floor(weight4.w));
+
+ //float scale = 1.0/(w.x+w.y+w.z+w.w);
+ //w *= scale;
- mat4 mat = matrixPalette[int(index.x)]*w.x;
- mat += matrixPalette[int(index.y)]*w.y;
- mat += matrixPalette[int(index.z)]*w.z;
- mat += matrixPalette[int(index.w)]*w.w;
+ mat4 mat = matrixPalette[i0]*w0;
+ mat += matrixPalette[i1]*w1;
+ mat += matrixPalette[i2]*w2;
+ mat += matrixPalette[i3]*w3;
return mat;
}
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 634ff1392e..9a8beb6234 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1446,10 +1446,10 @@ void LLViewerFetchedTexture::dump()
// ONLY called from LLViewerFetchedTextureList
void LLViewerFetchedTexture::destroyTexture()
{
- //if(LLImageGL::sGlobalTextureMemoryInBytes < sMaxDesiredTextureMemInBytes)//not ready to release unused memory.
- //{
- // return ;
- //}
+ if(LLImageGL::sGlobalTextureMemoryInBytes < sMaxDesiredTextureMemInBytes * 0.95f)//not ready to release unused memory.
+ {
+ return ;
+ }
if (mNeedsCreateTexture)//return if in the process of generating a new texture.
{
return ;