processPendingCollisionAssemblies causing really low FPS

Reproduction Steps

Got on a complex vehicle with many parts that I had NetworkOwnership over, and then I proceeded to drive it / pilot it.

This issue was found in Glacier when driving / piloting a vehicle. The best way to reproduce what I did would be to create a private server and use the F2 console (Cmdr) to spawn yourself a vehicle, such as: vehicle "Leopard 2A6_VTurret3" (you can also use goto joke_sector to teleport to a flat piece of terrain)

I have since been unable to reproduce the issue in private servers or different places, but I could reproduce it any time I rejoined on the main server and tried to drive the tank.

Expected Behavior

I expect processPendingCollisionAssemblies to not take 48ms per frame.

Actual Behavior

https://media.discordapp.net/attachments/976536323815010364/1017104889865842828/unknown.png
https://media.discordapp.net/attachments/976536323815010364/1017105154845179965/unknown.png
https://media.discordapp.net/attachments/976536323815010364/1017105174386454658/unknown.png

Issue Area: Engine
Issue Type: Performance
Impact: High
Frequency: Constantly

1 Like

Thanks for the report.

processPendingAssemblies increases in time depending on the amount of Assemblies changing their collision state or size in a given frame. From your screenshot, there’s only 1 “geometryChangedAssembly” being processed, so the amount of time its taking is surprising. It suggests that the assembly is very large (and owned by the client), and you’re potentially welding/unwelding it to the rest of your world every frame.
Regardless, it should never take this long, so something is up and we’ll take a look.

As far as I’m aware, I’m unable to use the developer console on the game since I’m not a developer on it, so we’ll need to figure something out. I will DM you to work through this.

4 Likes