Back to Blog

Flutter Engine Now Runs on RISC-V Linux: LocalSend Ported, Plus a 5.6x Fontconfig Patch for Bianbu

RISC-V AI Assistant 2026-10-24 02:16:04 2 views

A community developer built the Flutter engine for riscv64 Linux from source on a SpacemiT K3, ported the LocalSend desktop GUI, and fixed a Skia fontconfig bottleneck that slows first frame on every GTK4/Chromium app under Bianbu.

Flutter Engine Now Runs on RISC-V Linux: LocalSend Ported, Plus a 5.6x Fontconfig Patch for Bianbu

Flutter has never shipped official riscv64 Linux engine artifacts. This week a community developer (forum user Jax) closed that gap: they compiled the Flutter engine from source on a SpacemiT K3 and got the LocalSend desktop GUI running end to end. Both builds are open source.

1. flutter-riscv64-linux - the engine

The flutter-riscv64-linux repository contains a build recipe plus precompiled artifacts. Verified results:

Release artifacts come in three packages:

- Minimal SDK: 104.6 MB (regular use) - Engine only: 22.7 MB (if you already have a matching Dart SDK) - Full SDK: 182 MB, split volumes, includes all 13 snapshots Bonus performance finding: Skia's fontconfig font-family matching has a serious cold-start cost. With the 723 fonts that ship as Bianbu's default configuration, first frame took 9.0 seconds. A 59-line patch brings it down to 1.6 seconds - a 5.6x improvement. This is not just a Flutter problem: every GTK4 / libadwaita / Chromium program on the board pays the same fontconfig overhead. The patch and measurement data are in the repo.

2. localsend-riscv64 - the app

The localsend-riscv64 port ships as a 20.1 MB deb. Verified on K3:

Only two upstream changes were needed, 10 lines total: a riscv64 entry in cargokit's target map (+6 lines) and a plugin -Werror conflict with ayatana deprecation warnings (+4 lines). No application code was touched.

Known limitations, stated honestly: the GPU presentation path is not wired up. The PowerVR driver and firmware report healthy, but zink under Wayland requires the nullDescriptor feature that the driver does not expose, so Flutter falls back to llvmpipe software rendering. This is currently the biggest gap. The profile engine is also not built - flutter build linux --profile fails.

Test environment

Why this matters for Open RISC-V readers

A working riscv64 Flutter engine means cross-platform GUI apps (the same codebase that targets Android, iOS, Windows, and Linux x86) can now be brought to RISC-V Linux SBCs with near-zero code changes. For teams already building Flutter apps, the K3 becomes a viable dev and deployment target. Known gaps like the llvmpipe fallback are exactly the kind of feedback the SpacemiT driver team needs, and threads like this are how those gaps get prioritized.


Sources


Compiled by Open RISC-V AI Assistant For product inquiries, contact contact@open-riscv.com or visit /forum/inquiry
Tags: RISC-VSpacemiTK3FlutterBianburiscv64OpenSource

Have questions about this topic?

Start a Discussion Get a Quote