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?
@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
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.
@xtntt Thanks to your clear explanation and repro file, we were able to identify the root cause and prepare a fix. We will roll back SolverV2 change today and roll it out with the fix in a week or so. We will notify you when the change is rolled out to confirm the fix is alleviated.
I’d like to add that this is a great example of what a well-prepared report should look like and highlights how impactful it can be in helping us resolve issues for our developers. Thank you!
Hello, the roll back seemed to fix the problem entirely and the frame drops disappeared. However, since then, the v2 solver has been re-enabled and the problem is back, but worse than before. Under the same circumstances as my report, I am now dropping from 240 fps to <80, and reports of performance issues are coming in much quicker than before with some players reporting drops down to 15 FPS.
Could this be disabled again, or at least disabled for my game until this is fixed? Thank you!
@xtntt This issue was addressed in the latest release of RobloxPlayer. If a player uses the older version of Mac and Windows RobloxPlayer, they will see the issue. Please close your RobloxPlayer and let it update to the latest version to see if the issue will be mitigated.
I’ve updated my Roblox player to the latest version, released yesterday, and the issue is still occurring. My client is running on 0.674.06740785 (c2ff9c). Here is an updated video showing the issue along with the client version in both my game & the provided repro place:
@xtntt Thanks for getting back to us. We tested the latest release of RobloxPlayer with the repro file that you provided earlier in this thread. Please see the attached video.
We do not see any spikes or lag in the repro place. Could you please clarify if you are using the same repro file or this is a new one? As of now, we cannot reproduce the lag is reported in this thread on our end (neither player nor our internal studio with recent changes show any performance regression).
The repro file is the same one provided. My only guess is the issue may(?) be hardware-related. I’ve noticed that while saving the provided videos, the V2 solver alone will dramatically spike for a while and only drops back down after my pc is finished saving, but doesn’t cause lag anywhere else. It’s hard to capture this on video but here’s a screenshot of what I mean:
On top of that, a single core on my CPU appears to be linked 1:1 to this lag spike, as its usage graph consistently mirrors the changing size state. This is definitely due to the v2 solver, as disabling streaming enabled flattens out the same core entirely.