Description
There is a significant FPS drop in Roblox Studio when:
- a Package contains a BillboardGui with scalar size, and
- the BillboardGui is visible and dynamically resizes (ie. as the camera moves towards/away the BillboardGui Adornee)
Repro Steps
From a new place file:
- Insert a Model with a Part within it.
- Insert a BillboardGui into the Model. Set its Size to any scalar amount, such as
{1, 0}, {1, 0}
orUDim2.new(1, 0, 1, 0)
- Set the PrimaryPart of the Model to the Part
- Convert the Model into a package - there should be a PackageLink inside it now.
- Move the camera such that the BillboardGui should dynamically resize (forward/back, orbit, etc)
- (Optional) To exacerbate the problem, duplicate the BillboardGui about 8-12 times, OR add GuiObjects to the BillboardGui with a scalar Size.
Example place: PackageBillboardGuiBug.rbxl (20.2 KB) – Read the “REPRO STEPS” ModuleScript in the Workpace.
System Specs
- CPU: Intel(R) Core™ i7-7700 CPU @ 3.60GHz
- Memory: 16.0 GB
- GPU: NVIDIA GeForce GTX 1060 3GB
- All drivers are up-to-date.
Screenshot
What is shown: Roblox Studio open with the MicroProfiler running (Ctrl+F6). The “LegacyLock” label is added to the bottom-right graph.
What I did: Following the repro steps above, this screenshot was taken immediately after pausing the MicroProfiler (Ctrl+P). (I moved the camera forwards/away from the Model with the BillboardGuis in it using the W and S keys.)
Misc Details
- I believe this issue has been happening for a while – at least three months, although I reckon this has been happening as early as the release of packages v1. I remember working with packages with this kind of performance issue for a long while now.
- My guess is the problem is related to the PackageLink diff-ing the BillboardGui (and any GuiObject within it) whose AbsoluteSize changes as the camera moves toward/away from it. Because these properties are changing, it could be the case that the PackageLink may be doing a lot of unnecessary work.
Let me know if more details are needed or if you’re having trouble reproducing the problem.