Description

NaniteBuilder uses an int8 type for ExternalEdges and counts adjacency with a int32. The bug stems for the cast to int8 when adding the adjacency count into the ExternalEdges array.

The precision loss leads to bug where an adjacency count that is a multiple of 256 overflows to exactly 0 in the cast, leading to ExternalEdges having 0 added to the array, but the number of edges increment uses the uncast adjacency count, which is above zero.

Later, the ExternalEdges array for the cluster is checked in ClusterDAG.cpp for truthiness, which results in nothing being added to the DAGs ExternalEdges. Since no edges were processed, the ExternalEdgeOffset isn't incremented and is no longer equal to the length of the DAGs ExternalEdges.

 

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Features - Nanite
Affects Versions5.4.2
Target Fix5.5
CreatedJul 10, 2024
UpdatedJul 15, 2024
View Jira Issue