Repository navigation
High sustained CPU usage (~70%) when rendering a Rive scene in Flutter #666
Description
Submission checklist
- I have confirmed the issue is present in the latest version of the
riveFlutter package - I have searched the documentation and forums and could not find an answer
- I have searched existing issues and this is not a duplicate
Description
Description
I am experiencing sustained CPU usage of approximately 70% while displaying a Rive garden scene in a Flutter app.
CPU usage remains around 70% after the scene has finished loading, rather than only spiking during initialization. This was observed on a physical iPhone in Release mode, not in Debug mode or on a simulator.
Test environment
- Device: iPhone 12 (physical device)
- Operating system: iOS 26.5
- Build mode: Release
- Flutter: 3.47.0 (stable)
- Dart: 3.13.0
- rive: 0.14.11
- rive_native: 0.1.11
- Rive renderer: Factory.rive
Scene setup
- A main garden scene contains up to six flower plots.
- Flower artboards are dynamically bound to the main scene.
- Flower Rive files are loaded on demand.
- Decoded flower files are reused within the garden controller, rather than decoded every frame.
Steps to reproduce
- Launch the app on an iPhone 12 in Release mode.
- Open the home screen containing the Rive garden scene.
- Wait for the scene and required flower assets to finish loading.
- Keep the garden screen visible and observe CPU usage.
Actual behavior
CPU usage remains around 70% while the garden scene is displayed.
Expected behavior
I would expect CPU usage to settle after loading, depending on the animations that remain active.
Questions
Could you help determine whether this sustained CPU usage is related to:
- The animations or state machines in the Rive assets
- Dynamically bound flower artboards
- The rendering configuration
- Our Flutter integration
Please let me know which profiling data, Rive assets, or minimal reproduction code would be most useful for investigating this issue.
Reproduction steps / code
- Run the Flutter app on a physical iPhone 12 running iOS 26.5 in Release mode.
- Open the garden screen, which renders a main Rive scene with dynamically bound flower artboards using Factory.rive.
- Wait for the Rive files to finish loading.
- Keep the garden screen visible and monitor the app's CPU usage.
- CPU usage remains around 70%, rather than only increasing during initial loading.
This has been observed in our application. I have not yet isolated and verified the issue in a minimal standalone reproduction.
Upload your reproduction files / stack trace
No response
Source .riv / .rev file
No response
Screenshots / video
No response
Rive Flutter package version
0.14.11
Flutter version
3.47.0 (stable)
Device
iPhone 12
OS version
iOS 26.5
Additional context
The issue was observed in Release mode on a physical device.
We use Factory.rive with rive 0.14.11 and rive_native 0.1.11. Flower files are loaded on demand and reused within the garden controller, rather than decoded every frame.
We have not yet isolated the cause or confirmed whether the same behavior occurs with Factory.flutter. Suggestions for profiling or narrowing down the issue would be appreciated.
Activity
673636634 commentedon Oct 23, 2026
catalog-garden.riv.zip
673636634 commentedon Oct 26, 2026
Thanks for reviewing the file and marking this as a known issue. Is there a recommended workaround to reduce CPU usage while keeping the animations running? Also, is a fix planned for an upcoming release?
HayesGordon commentedon Oct 26, 2026
@673636634 apologies, that was an automation issue to mark it as a known issue.
This seems more like an issue with how the file is authored than a runtime issue. I've not looked at the file to understand how complex it is. Something you should keep in mind is that if you're continuously animating something, then the state machine will never settle and it will continue to advance + draw. 70% is really high though.
Unfortunately, I can't investigate the file for you. The open source repository is only here to handle reproducible issues and not to resolve per-file level setup. We have a community support channel that might be able to assist.
I would also STRONGLY encourage you to try out the new Rive CLI: https://rive.app/agents
With this you can profile your file and try to identify what could be setup incorrectly with the file or what can be improved.
Some things worth looking into on your side:
If you can narrow it down to a minimal file that shows unexpected CPU usage for what it's animating, we're happy to dig into that as a bug for the Flutter runtime.