Skeletal Mesh BLAS updates

We have a number of Skeletal Meshes used throughout the level. They don’t move or tick unless the player interacts with them. However, I’ve noticed that their BLAS gets updated every frame even if the animation and skin cache aren’t updated. This adds over 1ms to our update time.

The only exception is if the skeletal mesh is set to `bRenderStatic`, which of course puts the mesh in ref pose. But we want to have it retain the pose that was set. Exporting the posed mesh as a static mesh isn’t an option either since we want them to ragdoll and respond to player interaction.

Are there plans to change the behavior to update the BLAS only when the skin cache is updated? If not, can you suggest what code changes should be done at our end. From a cursory look, it looked like an involved effort and I want do avoid future code conflicts with engine integration.

Thanks!

[Attachment Removed]

Steps to Reproduce
Place a skeletal mesh asset in a level and observer Updated BL AS (per frame) stat using `STAT D3d12RayTracing`

[Image Removed]

[Attachment Removed]

Hi,

you can try changing the following CVars to control the update behavior for BLAS:

r.RayTracing.DynamicGeometry.ForceBuild.MinUpdatesSinceLastBuild

r.RayTracing.DynamicGeometry.ForceBuild.MaxPrimitivesPerFrame

In my test scene, setting MinUpdatesSinceLastBuildto 0and MaxPrimitivesPerFrame to 100reduced the Updated BL AS stat to 0. You can find a bit more info on these in [this [Content removed]

If this is not what you are looking for, please let me know and I can pass your request to a subject matter expert at Epic.

Thanks,

Sam

[Attachment Removed]

Hi Sam, thanks for getting back. Those settings are good to know, however they basically control how to balance between rebuild and refit (update) of the BLAS. I was more so looking for a way to avoid both of those altogether (preferably on a per component basis) unless required.

[Attachment Removed]

Hi,

>> a way to avoid both of those altogether (preferably on a per component basis) unless required

I see, as far as I know there is currently no easy way to achieve this with just CVars, but I will assign this case to Epic for investigation.

Thanks,

Sam

[Attachment Removed]

Hi,

Apologies for the delay, this does look like a situation where the BLAS shouldn’t be updated every frame. I’ve created the following issue for tracking which should be made public soon Unreal Engine Issues and Bug Tracker (UE\-358780)

Also, Epic will be on holiday break starting next week (Dec 22, 2025) and ending Jan 5, 2026 and there will be no responses from Epic on public or private tickets, though you may receive replies from the community on public tickets.

We wish you happy holidays!

[Attachment Removed]

Thank you Alex. Wishing you a great vacation as well.

Posting here to to keep the ticket alive through the down time.

[Attachment Removed]

Hello,

An issue has been created for tracking this fix (https://issues.unrealengine.com/issue/UE-358780) - is there a reason to keep the ticket open?

[Attachment Removed]

Apologies, I missed that. It can be closed.

[Attachment Removed]