When assets load, especially when users join, framerate is significantly impacted. Similarly, when joining worlds and assets are still loading, framerates are pretty terrible until most if not all assets have loaded.
To Reproduce
Spawn items, join worlds, or have someone join in a session
Expected behavior
Asset loading should be completely asynchronous, some overhead is expected but it should, where possible, not be a detriment to user experience.
Screenshots
No response
Resonite Version Number
2023.10.13.743
What Platforms does this occur on?
Windows, Linux
What headset if any do you use?
No response
Log Files
I don't really think log file is relevant to this, it's trivially reproducible, and there's no isolated event that could really point to it like a crash
This is actually a tricky issue for a few reasons:
We cannot make the loading completely asynchronous right now - uploading assets to the GPU needs to sync with the render thread - this is a limitation of Unity and DX11. This could only be resolved by a rendering engine switch. For now we are using time slicing to reduce the impact per frame, but it's a balance of how much we drop framerate and how long does the loading take
Most of the asset loading actually is asynchronous and heavily multi-threaded - but this is cause of some of the performance issues actually! This is because of the current runtime and GC, asset loading allocates a lot of memory and that forces GC to invoke and pause the whole process. This can get better once we switch to a more modern runtime and GC
There are potentially some things that can be done to improve this, like adding memory pooling and generally benchmarking the process more.
Describe the bug?
When assets load, especially when users join, framerate is significantly impacted. Similarly, when joining worlds and assets are still loading, framerates are pretty terrible until most if not all assets have loaded.
To Reproduce
Spawn items, join worlds, or have someone join in a session
Expected behavior
Asset loading should be completely asynchronous, some overhead is expected but it should, where possible, not be a detriment to user experience.
Screenshots
No response
Resonite Version Number
2023.10.13.743
What Platforms does this occur on?
Windows, Linux
What headset if any do you use?
No response
Log Files
I don't really think log file is relevant to this, it's trivially reproducible, and there's no isolated event that could really point to it like a crash
Additional Context
No response
Reporters
zangooseoo