Licensee noticed a regression in 5.6 where the non-masked recompute tangents option doesn't work anymore. The option 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.
Steps to Reproduce
Create a USkeletalMesh and enable the "Enabled with no mask" feature on it. Observe that it has no effect.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-305999 in the post.
0 |
Component | UE - Graphics Features |
---|---|
Affects Versions | 5.6 |
Target Fix | 5.7 |
Created | Jul 21, 2025 |
---|---|
Updated | Aug 12, 2025 |