UpdateGeometryWithSkinning taking loads of frame time; With skinned mesh rigs


I’ve recently started getting immense lag from this one bar, and it seems to come from skinned meshes on some rigs i have.

They are the only things in the game with bones so i am pretty sure they are the culprit.

Very sorry if this is something on my part, but i’ve asked around and some people seem to be having the same issue.

7 Likes

I’ve received reports on frame lag after staying in game for many hours, with this being up there on the micro profiler alongside what appears to be infinitely connected render steps in Roblox’s settings UI (?) causing the worst frame time and 2gb of GUI usage. I don’t use any sort of skinned meshes in my game so I assume this comes from layered clothing.

Frame time for this action was about 8ms per frame, every frame, on my player’s insanely overspeced PC

Yeah i’m still getting this issue too, it started happening without any updates so i’m assuming it’s something wrong with roblox and not my game. Hoping they fix this soon because it’s killing the fps of my players

I’m also experiencing this, but I don’t know if it is recent as I just noticed it. I am updating the size of a Tool’s MeshPart on RenderStepped/PreRender.

While the Size is being updated, frame time increases from ~6ms to ~12.5ms. Once the property change is completed, the frame time returns to normal. The UpdateGeometryWithSkinning operation itself takes ~5 ms! A hiccup like that would be noticeable even if it were done once (not in PreRender).

I also found it strange that this is appearing under the UpdateInvalidatedFastClusters category, as the description for that tag says:

Prepares geometry, typically “FastClusters” used to render Humanoids. Sub-markers specify the number of parts, vertices, and size of vertices.

Reduce the use of ‘Humanoids’ under objects that are not Humanoids. This should not be used to shorten draw calls as FastClusters consume much more memory.

After testing, this tag/lag spike does not occur when I parent the MeshPart to the workspace and change its Size. It only happens when I change the Size property of the MeshPart when a Character holds it.

Does your game do anything similar?

2 Likes

I have found a temp fix + reproduction steps!

For engineers:

Problem:

UpdateGeometryWithSkinning taking loads of frame time; With skinned mesh rigs. This causes FPS to dramatically drop. In my own test case, my FPS dropped from 144 to 70 FPS through just modifying the LayeredClothing parameter (see reproduction steps).

Platform/Source:

  • Issue discovered on PC (Windows 10)
  • Issue occurs both in Roblox Studio and Roblox games
  • Issue discovered on 5/27 on my game, but have shown up sooner for others (see OP). I disabled layered clothing in my game, but turned it on today to test something. This is when I encountered the issue.
  • It is unknown if this affects mobile/xbox, but it likely does since it’s physics related

Reproduction Steps:

  1. Go to UpdateGeometryWithSkinning Bug - Roblox
  2. Open place in Roblox Studio
  3. [optional] ServerStorage > ZombieIdle7, upload
  4. ServerStorage > Idle > AnimationId = [YOUR ID], set it to the uploaded ZombieIdle7 or your own R15 animation ID.
  5. Hit play in studio. (Optionally, publish and play in-game OR hit play from the link directly in step 1).
  6. Note the FPS drop from SHIFT + F5 and also the microprofiler performance showing UpdateGeometryWithSkinning with large consumptions.
  7. Go back to studio
  8. StarterPlayer > LoadCharacterLayeredClothing = Disabled
  9. Hit play in studio. (Optionally, publish and play in-game)
  10. Note that the FPS DOESN’T drop.

For developers:

Problem

In all seriousness, I am running into the exact problem. Here is the higher resolution image. My game goes from a 144 FPS drop to a 70 FPS drop, with the microprofiler reporting huge CPU consumptions from UpdateGeometryWithSkinning.

Temporary Fix(es)

Disabling LoadCharacterLayeredClothing will restore your game’s client FPS.
Unfortunately, this isn’t a fix-all solution as some games require layered clothing, but is does work.

The date occurred isn’t known, since my game has had LayeredClothing disabled a month+ now. I’ve never noticed this issue before.

Many games do not seem to have been affected. For example, Isle - Roblox runs at 144 FPS despite having layered clothing.

Potential Cause

There is some interaction between LayeredClothing and ControllerManager/Animations on my end. This isn’t true for everyone since @JonnyBonkers mentions resizing MeshParts triggering the same bug. It seems like the problem is humanoid related in general, although my NPCs don’t use Humanoids anymore.

4 Likes

Found some relevant posts. Seems like this has been an issue for years.

2 Likes