Optimzation #2: remove unnecessary uses of dynamic_cast introduced by animesh

-> a dynamic_cast with no nullptr check is functionally the same as a static_cast
  -> if the ancestry check is necessary then a virtual getJointType() will still be much faster in such a hot function
meow-7.2.2
Kitty Barnett 2019-02-07 19:47:58 +01:00
parent 35af81a7fd
commit c7bf7c88cb
2 changed files with 25 additions and 6 deletions

View File

@ -121,7 +121,11 @@ void LLAvatarJoint::setSkeletonComponents( U32 comp, BOOL recursive )
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
// Dynamic cast is pointless if the result isn't actually checked (and if we know it won't fail we can just static cast)
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
joint->setSkeletonComponents(comp, recursive);
}
}
@ -147,7 +151,10 @@ void LLAvatarJoint::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pix
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
joint->updateFaceSizes(num_vertices, num_indices, pixel_area);
}
}
@ -157,7 +164,10 @@ void LLAvatarJoint::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind,
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
joint->updateFaceData(face, pixel_area, damp_wind, terse_update);
}
}
@ -167,7 +177,10 @@ void LLAvatarJoint::updateJointGeometry()
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
joint->updateJointGeometry();
}
}
@ -214,7 +227,10 @@ void LLAvatarJoint::dump()
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
joint->dump();
}
}

View File

@ -144,7 +144,10 @@ U32 LLViewerJoint::render( F32 pixelArea, BOOL first_pass, BOOL is_dummy )
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
// [SL:KB] - Patch: Viewer-OptimizationAnimesh | Checked: Catznip-6.0
LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter);
// [/SL:KB]
F32 jointLOD = joint->getLOD();
if (pixelArea >= jointLOD || sDisableLOD)
{