• RuntimesGodot
  • [godot]Poor performance with many SpineSprites in 4.1.2

Hello
I went to update my executable for the game I'm working on, and noticed on the new builds I had poor performance with many SpineSprites. What was previously a 60 FPS, smooth experience using build 4.1 from 7/24/2023, became very choppy when switching to the new version (4.1.2).

I tried to do some testing to pin down the issue but was unable to do so. If you run the batch-test scene in the example projects, you will get the same issue. The scene starts smooth, then starts to drop FPS.

smooth version - 4.1

choppy - 4.1.2

(i added a label that prints FPS to the example project to take these screenshots)

Related Discussions
...
19 giorni dopo

tested this on another machine and still getting the same issue, so I don't think it's a performance issue with my devices

The joy of Godot "performance improvements". Our rendering code has not changed in between those versions, so it's pretty certain the Godot rendering path got a wonky "upgrade". I've just updated the build to Godot 4.1.3. You can see the build here:

EsotericSoftware/spine-runtimesactions/runs/6878947037

Once it's finished you can download the new 4.1.3 binaries for testing from here:
https://esotericsoftware.com/spine-godot#Installation

Is this being looked into? My project requires quite the number of spinesprites.

There's nothing on our end we can do. Our code remains the same and uses the most efficient code path to render Spine skeletons.

It's a regression in Godot, so you have to ask them what's up. Please give the 4.1.3 binaries a try, there are now available here:

https://esotericsoftware.com/spine-godot#Installation

thanks Mario, getting 20 fps instead of 8 now, so still pretty bad (but better at least). I'll build the 4.2 beta later today and see if that's addressed whatever's going on here.

I'm currently bisecting our runtime to figure out when the change was introduced. The original 100x fold improvement in performance was in commit EsotericSoftware/spine-runtimes2751d76

I introduced the regression, it's not Godot's fault. This makes me look very dumb, because I am 🙂
EsotericSoftware/spine-runtimesfb11c02

I've just fixed it and am building new binaries. Wait for this build to finish:
EsotericSoftware/spine-runtimesactions/runs/6907742739

Then fetch the new binaries from
https://esotericsoftware.com/spine-godot