New to 4.25 was the ability to specify per instance custom float data.
It appears to work great for Instanced mesh, but for Hierarchical Instanced Static Mesh the indices are not stable. As the camera moves around the custom data moves to different instances.
I have submitted a bug report but I have not heard anything.
I found this link showing someone reporting the same problem but no answers yet:
This is the PR where support for Custom Data was added:
I have spent some hours looking into the problem and I suspect that the problem is that the Custom Data values are looked up in the shader (MaterialTemplate.ush) directly, not via the InstanceReorderTable (which is not GPU visible anyway). I’m not sure of the best way to fix this as I don’t really understand how the HISM system works with the Tree rebuilding and instance reordering.
Seems either I need to expose the InstanceReorderTable to GPU or the CustomData should be stored in InstanceReorderTable order, and rebuilt everytime the tree changes or the data changes.