Regression with RecomputeTangents on SkeletalMeshes in 5.6

Hi,

We’ve noticed a regression in 5.6 where the non-masked recompute tangents option doesn’t work anymore. This is called “Enabled with no mask” in 5.6 but “All” in 5.5. Under the hood this seems to map to ESkinVertexColorChannel::None in FSkelMeshRenderSection::RecomputeTangentsVertexMaskChannel which seems to be misinterpreted by the code in FGPUSkinCache::ProcessEntry as meaning the feature is disabled rather than just the masking being disabled.

Changing the logic from

if (RenderSection.RecomputeTangentsVertexMaskChannel < ESkinVertexColorChannel::None && LodData.MultiSizeIndexContainer.GetIndexBuffer()) { BufferBits |= EGPUSkinCacheBufferBits::IntermediateTangents; }to

if (LodData.MultiSizeIndexContainer.GetIndexBuffer()) { BufferBits |= EGPUSkinCacheBufferBits::IntermediateTangents; }makes the feature function as expected.

Thought we would pass this fix along incase Epic was not aware of it.

Thanks!

Steps to Reproduce
Create a USkeletalMesh and enable the “Enabled with no mask” feature on it. Observe that it has no effect.

Hi there, thanks for reaching out about this. I created Jira to propose the change to the development team: https://issues.unrealengine.com/issue/UE-305999. You can track the progress of the work there. If you have any more questions, please don’t hesitate to contact us.