Description

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

Steps to Reproduce

Create a USkeletalMesh and enable the "Enabled with no mask" feature on it. Observe that it has no effect.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-305999 in the post.

0
Login to Vote

Unresolved
ComponentUE - Graphics Features
Affects Versions5.6
Target Fix5.7
CreatedJul 21, 2025
UpdatedAug 12, 2025
View Jira Issue