Hello, I have a very simple scene that I am trying to get to reach 60 FPS on low-spec Intel UHD machines.
Actually it already reaches that at lower resolution (eg. 1920x1080). But for the resolution I am testing at (2560x1440 screen), it gets about 45-50 FPS.
This is the inspector readings:
I have optimized as much as I could:
- All textures except 1 are KTX2 compressed (about 4 2048x2048 textures plus 1 512x512)
- Almost all meshes are instances with uvOffsets, resulting in only 8 draw calls
- Meshes have alwaysSelectAsActiveMesh set to true resulting in 0 time spent in “Meshes selection”
The Absolute FPS is about 400, but the actual framerate is only 47.
It looks like a lot of time is spent in Inter-frame, but I don’t know how I can lower that.
I’m not doing much of anything per-frame in JavaScript as it a static scene.
However, if I remove the ground or do other things that reduce drawing required such as reduce window size, then the fps is fine and Inter-frame value goes down. It seems like it is fill-rate limited?
For comparison, here is the same scene in on my main dev machine with steady 60 fps.
I’m wondering what else I can do.
EDIT: I solved it! Turns out it was the semi-transparent HTML ui components that I was overlaying on top of the Babylon Canvas LOL! Will leave this post here in-case someone sees this and it helps.
EDIT2: Replied with additional optimizations that worked in my case.