Non-Nanite meshes not being correctly cleared from all levels of VSMs on actor destruction when r.Shadow.Virtual.NonNanite.IncludeInCoarsePages=0

In our project we are using the r.Shadow.Virtual.NonNanite.IncludeInCoarsePages=0 setting to optimize VSM performance. However, we have observed that when this is set, there are errors in how the VSM is invalidated when actors are destroyed with non-Nanite meshes. The currently visible VSM clipmap is correctly updated (with the shadow disappearing when the actor is destroyed), but other clipmap levels are not being correctly invalidated - this means that as the player moves around, they can see the incorrect shadow pop back into existence.

I’ve provided an example project showing this issue.

[Attachment Removed]

Steps to Reproduce

  1. Open attached repro project (VSMRepro.zip) in Unreal Editor 5.6.1
  2. Open level VSMReproMap (should be default level on Editor load)
  3. Begin Play In Editor
  4. Use WASD to walk forwards towards the two sticks leaning against a wall
  5. Press X to cause both actors to be destroyed
  6. Walk backwards, and observe that the VSM shadows for the destroyed non-Nanite mesh are still present

See attached video NonNaniteVSMError.mp4 for example of this behaviour.

[Attachment Removed]

Hello,

Thank you for the bug report! The issue still exists in latest, so I’ve created the following issue for tracking which should be visible publicly soon https://issues.unrealengine.com/issue/UE\-384626

[Attachment Removed]

My apologies, I didn’t set the ticket to be publicly visible. I’ve fixed the issue and it should be visible now.

[Attachment Removed]

Hi Alex,

Sorry, it looks like that ticket is not visible to me - did you link the right ticket, or is it set to internal only?

[Attachment Removed]