FIRE-23331 - SkinningMatrixCaching has side-effects during appearance editing

meow-7.2.2
Beq 2018-12-04 02:33:42 +00:00
parent 9bca93b4ff
commit 12481f4f8f
3 changed files with 17 additions and 4 deletions

View File

@ -6551,7 +6551,7 @@
<key>FSEnableAggressiveComplexityUpdates</key>
<map>
<key>Comment</key>
<string>Enable avctive complexity calculations. This may have a significant detrimental performance impact if enabled.</string>
<string>Enable active complexity calculations. This may have a significant detrimental performance impact if enabled.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6559,6 +6559,17 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>FSDisableRiggedMeshMatrixCaching</key>
<map>
<key>Comment</key>
<string>Disable the caching of Rigged mesh matrix pallettes.Non-persistant.</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>FullScreenAspectRatio</key>
<map>
<key>Comment</key>

View File

@ -1921,8 +1921,9 @@ LLMatrix4a* LLDrawPoolAvatar::getCacheSkinningMats(LLDrawable* drawable, const L
// drawable->mSkinningMatCache = new LLMatrix4a[count];
drawable->mSkinningMatCache = (LLMatrix4a*)ll_aligned_malloc_16(sizeof(LLMatrix4a)*count);
}
if (drawable->mSkinningMatCache && LLFrameTimer::getFrameCount() != drawable->mLastSkinningMatCacheFrame)
static LLCachedControl<bool> disableMatCache(gSavedSettings, "FSDisableRiggedMeshMatrixCaching"); // <FS:Beq> FIRE-23331 - disable matrix caching during appearance update due to weird side effects
if (disableMatCache || (drawable->mSkinningMatCache && LLFrameTimer::getFrameCount() != drawable->mLastSkinningMatCacheFrame))
{
// LL_DEBUGS("Skinning") << "Call InitSkinningMatrixPalette for drawable @" << (U64)drawable << LL_ENDL;
//<FS:Beq> add caching of matrix pallette as high up the stack as we can

View File

@ -3211,7 +3211,7 @@ void LLVOAvatarSelf::onCustomizeStart(bool disable_camera_switch)
gAgentAvatarp->mIsEditingAppearance = true;
gAgentAvatarp->mUseLocalAppearance = true;
gSavedSettings.setBOOL("FSDisableRiggedMeshMatrixCaching", true); // <FS:Beq> FIRE-23331 - disable matrix caching during appearance update due to weird side effects
if (gSavedSettings.getBOOL("AppearanceCameraMovement") && !disable_camera_switch)
{
gAgentCamera.changeCameraToCustomizeAvatar();
@ -3235,6 +3235,7 @@ void LLVOAvatarSelf::onCustomizeEnd(bool disable_camera_switch)
if (isAgentAvatarValid())
{
gAgentAvatarp->mIsEditingAppearance = false;
gSavedSettings.setBOOL("FSDisableRiggedMeshMatrixCaching", false); // <FS:Beq> FIRE-23331 - disable matrix caching during appearance update due to weird side effects
// <FS:Ansariel> [Legacy Bake]
if (gAgentAvatarp->getRegion() && !gAgentAvatarp->getRegion()->getCentralBakeVersion())
{