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.
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.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.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.