From 6184ad34e44968e27c987e16247b5d4663eb06fa Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Mon, 16 Sep 2013 12:23:46 -0700 Subject: MAINT-3107 speculative changes to try to ameliorate rigged crasher on Intel HD with crappy default driver --- .../app_settings/shaders/class1/avatar/avatarSkinV.glsl | 8 +++++--- .../app_settings/shaders/class1/avatar/objectSkinV.glsl | 15 +++++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'indra/newview/app_settings/shaders') diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl index bc63d07d72..3df4d333ce 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl @@ -31,10 +31,12 @@ uniform vec4 matrixPalette[45]; mat4 getSkinnedTransform() { mat4 ret; - int i = int(floor(weight.x)); + float x = fract(weight.x); - - ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); + int i = int(floor(weight.x)); + i = min(i, 15); + i = max(i, 0); + ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); ret[1] = mix(matrixPalette[i+15],matrixPalette[i+16], x); ret[2] = mix(matrixPalette[i+30],matrixPalette[i+31], x); ret[3] = vec4(0,0,0,1); diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl index efd0d03965..12996cf0d6 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl @@ -34,14 +34,17 @@ mat4 getObjectSkinnedTransform() vec4 w = fract(weight4); vec4 index = floor(weight4); - + + index = min(index, vec4(31.0)); + index = max(index, vec4( 0.0)); + 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[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; return mat; } -- cgit v1.2.3 From 437efd9b866074d2385a70183af34ec1414ad59a Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Thu, 17 Oct 2013 14:44:15 -0700 Subject: MAINT-3330 fix regression on mac caused by shader change for 3107 by rolling back to prev version of shader --- indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'indra/newview/app_settings/shaders') diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl index 3df4d333ce..c98e7d1cd3 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl @@ -31,11 +31,9 @@ uniform vec4 matrixPalette[45]; mat4 getSkinnedTransform() { mat4 ret; - - float x = fract(weight.x); int i = int(floor(weight.x)); - i = min(i, 15); - i = max(i, 0); + float x = fract(weight.x); + ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); ret[1] = mix(matrixPalette[i+15],matrixPalette[i+16], x); ret[2] = mix(matrixPalette[i+30],matrixPalette[i+31], x); -- cgit v1.2.3