Skip to content

Factory.rive renders at ~10 FPS on an Android TV with a Mali GPU, Factory.flutter at 60 FPS #667

Open

Description

@erdemdemirci

On a TCL Google TV (Android 14, MediaTek MT5896 with a Mali GPU, 32-bit armeabi-v7a userspace, 2.4 GB RAM, 1920x1080 UI) a single full-screen RiveWidget renders at about 10 FPS with Factory.rive. The same file with Factory.flutter renders at 60 FPS.

The scene is one 1920x1080 artboard with a few text runs, a list of 24 small nested artboards (gradient fill, stroke, feathered shadow, looping scale animation) and one ScriptedLayout. Profile build, frame times from FrameTiming:

Factory.rive, display resolution: 10.3 FPS, raster p50 80.9 ms
Factory.rive, RenderResolution.layout(scale: 0.75): 14.3 FPS, raster p50 57.7 ms
Factory.rive, RenderResolution.layout(scale: 0.5): 20.0 FPS, raster p50 33.5 ms
Factory.flutter, display resolution: 60 FPS, raster p50 6.9 ms

Removing all 24 cards only brings Factory.rive to about 11.6 FPS, so the cost seems to follow the pixel count rather than the content. Switching Impeller from Vulkan to OpenGL ES (ImpellerBackend=opengles) made no difference.

Versions: rive 0.14.11, rive_native 0.1.11, Flutter 3.47.7. The .riv was built with Rive CLI 1.7.0 with signed scripts.

Possibly related: #638

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions