I am spinning less than 10 MeshParts in a viewport that simulates a skybox, however, I recently noticed that updating their cframe every frame causes a huge performance issue.
This is the code (I tried using BulkMoveTo but it’s the same thing)
local Time = 0
Runtime:Connect(function(Step)
Time += Step
for i, Vortex in VortexSky do
Vortex.CFrame = VortexOrigins[i]*CFrame.Angles(0,Time*(i^1.5)/20,0)
end
end)
Moment the microprofiler detects the performance issue:
FastClusterUpdateGeometry prob isnt the actual cause of the lag it usually just means roblox had to rebuild some geometry bc something changed
id check if you have anything constantly changing parts meshes accessories viewportframes character transparency or cloning and deleting models especially anything running every frame
try disabling systems one by one till the spike stops id start with
character or accessory scripts
first person transparency stuff
viewportframes
ragdolls or death effects
anything cloning or deleting parts
scripts changing size material meshid textureid cframe etc
also check if a script keeps setting a property even when its already the same like setting transparency every frame for no reason
if you use alot of effects maybe reuse them instead of cloning and destroying them everytime
id also save a microprofiler dump and check what happens right before FastClusterUpdateGeometry bc thats probably what is triggering it
if you can reproduce it in a small test place that would help alot too especially if it still happens with only a few parts
This text will be hidden
happens to me too, i would say it is a roblox bug that is hard to solve
I guess updateInvalidated just something that optimizes some of their systems such as humanoids but i mean it just creates more issues for me, some new bug appeared few months ago
It seems like the cause is that I’m updating the cframe of objects in a viewport.
Here I am moving the same model with almost the same code I sent above (no extra code) into an empty viewport frame with no other objects or camera attached
I assume that it’s expensive to render viewports, but I read that this shouldn’t be happening unless I was updating something that is not a cframe.
It seems so because it doesn’t happen when it’s on workspace.