back

( Session )

Beyond Skia: Deep-Dive GPU Scheduling and Profiling with Impeller on Android 10+

#Advanced·Session·8:10 am - 8:50 am·fluttercon
session

With Flutter’s definitive transition to the Impeller rendering engine, the ecosystem has achieved a predictable, ahead-of-time (AOT) shader-compiled execution model. However, hitting a rock-solid, fluid 120fps on modern high-refresh-rate Android devices requires engineers to shift how they diagnose, isolate, and fix rendering bottlenecks. This session bypasses high-level UI paradigms to dissect exactly how Impeller interacts with the modern Vulkan graphics API on Android 10+ (API 29+). We will dive into how Impeller schedules GPU pipelines, uses modern tessellation to break vector paths into fast-rendering triangles, and manages explicit command buffers to prevent frame drops under heavy stress loads. we will intentionally thrash a real-time graphics canvas and step through deep-dive profiling. Attendees will learn how to parse advanced Flutter DevTools Timeline traces, interpret Android Systrace/Perfetto metrics, and engineer surgical UI optimizations—such as precise repaint boundary isolation and layer complexity reduction—to confidently ship enterprise-grade mobile experiences. Key Takeaways: - Demystifying the Engine: Understand the architectural differences between Skia’s JIT shader compilation and Impeller’s AOT pipeline mechanics on Vulkan. - Low-Level Profiling: Master advanced Flutter DevTools and Android Systrace to read frame-budget allocations (~4ms UI / ~4ms Raster thread). - Taming Custom Painters: Learn code patterns that maximize Impeller's pre-compiled rendering pathways, avoiding expensive canvas operations like saveLayer().