StreamingSolverV2 adding an extra ~8ms per frame

After receiving sudden lag spike reports, I’ve found that two frame calls, “SetManager” and “StreamingSolverV2” are the sole cause. This tanks my FPS from 130 to around 60. This issue appears to be conditional; the frame time is about 0.003ms for both groups with occasional 5ms spikes, until enabling some local effects, that’s where the issue begins to occur every frame with not one exception. I haven’t narrowed down exactly what triggers it yet, but the only things that begin to update every frame when the effects are active are running CFrame math on anchored parts, changing the color of certain parts, tweening ambient lighting, and playing sounds, all of which are local and non-replicated. There are no newly modified instances on the server.

This appears to occasionally happen while players fire guns in my game which also only creates and updates a few local parts on their client on top of it happening randomly for a frame every so often with no seeming cause. Perhaps something updating in the distance or their characters moving around.

In studio, I still see the original StreamingSolver. This stays at ~0.02ms and never increases under the same conditions.

I’ll try to figure out what exactly causes this and possibly create a repro file if it isn’t fixed before then, but could this v2 feature be disabled in my game for the time being?

A private message is associated with this bug report

1 Like

@xtntt Thanks for reporting this issue. Could you clarify the steps to reproduce it? We need to know the in-game paths/actions that lead to the point where the lag begins.

Apologies for the vague initial report, I needed more time than I’d like to admit to pinpoint what exactly was causing the issue.

The frame time spikes when a tween resizes any persistent part welded to another. This only occurs, or becomes an issue, if enough other persistent parts are scattered around the world and will not occur in studio.

The issue clears up right after the tween finishes and will only occur while resizing; repositioning or other property changes seem to have no effect.

I’ve set up a repro place with ~27k persistent parts to demonstrate, but it will still occur with fewer

Video

bug report.rbxl (1.1 MB)

I believe I am experiencing this same issue but on a larger scale. Yesterday I pushed an update to my experience to change a model that contains dynamically created structures to be Persistent. When a bunch of players loaded in their structures, the client experienced massive frame spikes and second-long freezes when these structures would unload. Changing this from Persistent → Default would resolve the issue.

Unfortunately I did not export the MicroProfiler, but I have some of it on video.

I was unable to create a repro file.


1 Like