Nov 7, 2025

Avalonia Partnering with Google's Flutter Team to Bring Impeller Rendering to .NET

Avalonia Partnering with Google's Flutter Team to Bring Impeller Rendering to .NET

Nikita Tsukanov

Teal Flower
Teal Flower

We’re excited to share an important milestone in Avalonia’s rendering journey. Our team is partnering with Google’s Flutter engineers to bring Impeller, their next-generation GPU-first renderer, to .NET developers. This technical collaboration aims to push the boundaries of performance across platforms and demonstrate how open-source communities can achieve more by working together.

How It Began

The idea developed naturally within the open-source community. After we published our exploration of alternatives to SkiaSharp, Chinmay Garde, the creator of Impeller and a senior engineer on Flutter at Google, reached out. What began as an exchange of ideas quickly evolved into an active engineering collaboration, with both teams working to make Impeller a practical rendering option for Avalonia and the wider .NET ecosystem.

Impeller was created to solve real-world performance challenges Flutter encountered with Skia, particularly shader compilation “jank”. It prepares a static set of pipeline state objects before startup, removing stutter and ensuring consistently smooth frame times. Flutter now uses Impeller as its default renderer for iOS and Android, with web support already in progress. Bringing this technology to .NET opens the door to major performance gains, especially for mobile and embedded workloads.

Open Source at Its Best

From the outset, the Flutter team made it clear that Impeller was designed to benefit the broader developer community, not just Flutter itself. Their openness and willingness to share their expertise has been remarkable. For us, this is what open source should look like: two projects with different audiences finding shared ground to advance technical excellence together.

At Avalonia, we have always believed that progress in open source comes from building bridges, not walls. Working with Chinmay and the Flutter team reinforces that belief. Both communities share a deep commitment to transparency, collaboration, and technical quality in advancing the state of cross-platform UI.

Our Impeller backend work will be developed entirely in public. Every patch, discussion, and experiment will be open for others to study or build upon. The goal is not only to make Avalonia faster but also to make Impeller more flexible and accessible for all .NET developers and framework authors.

Why Impeller

Impeller delivers smooth, consistent performance, higher average frame rates, and reduced VRAM use. It is unapologetically GPU-first, making it ideal for modern hardware where predictable performance and power efficiency are essential.

Built for Modern Hardware

Impeller’s architecture is optimised for tiling GPUs commonly found in mobile devices, tablets, and embedded systems. This is where we expect the greatest performance improvements compared with SkiaSharp. Flutter has already proven the approach, using Impeller as its default renderer on iOS and Android, with web support on the way. For embedded scenarios, where the target hardware is known in advance, Impeller offers a compelling alternative.

Performance in Practice

Our early tests confirm Impeller’s efficiency, particularly in power consumption, which is crucial for mobile and embedded devices.

Avalonia’s early power tests:

Animating 20,000 elements on an integrated GPU, chosen to represent a worst-case scenario, produced the following results:

  • Impeller: 28 FPS at 222/724 MHz, 45 percent RC6, 0.48 W iGPU power draw

  • Vello: 28 FPS at 1012/1631 MHz, 24 percent RC6, 4.93 W iGPU power draw

Both achieved identical frame rates, but Vello required roughly twelve times more power. For battery-powered devices, that difference is significant.

Flutter’s production data shows similar advantages. In Android benchmarks, Impeller delivers measurable gains across key workloads:

  • SVG and Path Rendering – faster vector rendering using a stencil-then-cover technique.

  • Gaussian Blurs – improved throughput through architectural optimisation and Vulkan fixes.

  • Complex Clipping – frame times reduced from 450 ms with Skia to 11 ms with Impeller.

  • Startup Consistency – no shader compilation stutter and instant first-frame rendering.

  • Memory Efficiency – around 100 MB less memory use while maintaining higher performance.

These are proven results from production Flutter applications used by millions of people, showing the potential benefits of adopting Impeller in Avalonia.

Progress and Next Steps

Our collaboration with the Flutter team is advancing rapidly. We already have an early Avalonia backend running on Impeller and have established infrastructure to build and test Impeller on Windows, macOS, and Linux. Active discussions are taking place on GitHub as we work through implementation challenges such as texture rendering APIs, OpenGL context management, and render target persistence.

To reach production readiness, several Impeller enhancements are needed, including persistent render targets, extended typography and path APIs, Vulkan render-to-texture support, and access to Impeller’s effects pipeline.

As our Chief of Research notes:

“This kind of work requires experimentation to validate API design for both Avalonia’s needs and Impeller’s architecture. We are building an experimental backend to inform proper API design discussions.”

This is a significant technical effort, but both teams are committed to seeing through successfully. Chinmay and the Flutter team have been generous with guidance, helping us understand where Impeller can evolve to serve multiple frameworks effectively.

What About Vello?

Our exploration of Vello as a SkiaSharp alternative continues, but it is currently a lower priority. Early testing highlighted several challenges, particularly around power efficiency, that make Impeller a better near-term focus for mobile and embedded use. Vello remains valuable in its own right, and we will revisit it as the ecosystem matures.

Looking Forward

Impeller integration remains experimental, but the early results are promising. We are committed to extending Impeller’s capabilities in ways that benefit both Avalonia and Flutter developers, and to making it a serious rendering option for .NET.

This is an exciting time for Avalonia and for .NET developers who care about performance. We will continue to share progress updates, technical insights, and opportunities for the community to test and contribute. Collaboration drives open source forward, and this project shows what is possible when communities build together.

You can follow development and contribute directly on GitHub at github.com/AvaloniaUI/NImpeller

We’re excited to share an important milestone in Avalonia’s rendering journey. Our team is partnering with Google’s Flutter engineers to bring Impeller, their next-generation GPU-first renderer, to .NET developers. This technical collaboration aims to push the boundaries of performance across platforms and demonstrate how open-source communities can achieve more by working together.

How It Began

The idea developed naturally within the open-source community. After we published our exploration of alternatives to SkiaSharp, Chinmay Garde, the creator of Impeller and a senior engineer on Flutter at Google, reached out. What began as an exchange of ideas quickly evolved into an active engineering collaboration, with both teams working to make Impeller a practical rendering option for Avalonia and the wider .NET ecosystem.

Impeller was created to solve real-world performance challenges Flutter encountered with Skia, particularly shader compilation “jank”. It prepares a static set of pipeline state objects before startup, removing stutter and ensuring consistently smooth frame times. Flutter now uses Impeller as its default renderer for iOS and Android, with web support already in progress. Bringing this technology to .NET opens the door to major performance gains, especially for mobile and embedded workloads.

Open Source at Its Best

From the outset, the Flutter team made it clear that Impeller was designed to benefit the broader developer community, not just Flutter itself. Their openness and willingness to share their expertise has been remarkable. For us, this is what open source should look like: two projects with different audiences finding shared ground to advance technical excellence together.

At Avalonia, we have always believed that progress in open source comes from building bridges, not walls. Working with Chinmay and the Flutter team reinforces that belief. Both communities share a deep commitment to transparency, collaboration, and technical quality in advancing the state of cross-platform UI.

Our Impeller backend work will be developed entirely in public. Every patch, discussion, and experiment will be open for others to study or build upon. The goal is not only to make Avalonia faster but also to make Impeller more flexible and accessible for all .NET developers and framework authors.

Why Impeller

Impeller delivers smooth, consistent performance, higher average frame rates, and reduced VRAM use. It is unapologetically GPU-first, making it ideal for modern hardware where predictable performance and power efficiency are essential.

Built for Modern Hardware

Impeller’s architecture is optimised for tiling GPUs commonly found in mobile devices, tablets, and embedded systems. This is where we expect the greatest performance improvements compared with SkiaSharp. Flutter has already proven the approach, using Impeller as its default renderer on iOS and Android, with web support on the way. For embedded scenarios, where the target hardware is known in advance, Impeller offers a compelling alternative.

Performance in Practice

Our early tests confirm Impeller’s efficiency, particularly in power consumption, which is crucial for mobile and embedded devices.

Avalonia’s early power tests:

Animating 20,000 elements on an integrated GPU, chosen to represent a worst-case scenario, produced the following results:

  • Impeller: 28 FPS at 222/724 MHz, 45 percent RC6, 0.48 W iGPU power draw

  • Vello: 28 FPS at 1012/1631 MHz, 24 percent RC6, 4.93 W iGPU power draw

Both achieved identical frame rates, but Vello required roughly twelve times more power. For battery-powered devices, that difference is significant.

Flutter’s production data shows similar advantages. In Android benchmarks, Impeller delivers measurable gains across key workloads:

  • SVG and Path Rendering – faster vector rendering using a stencil-then-cover technique.

  • Gaussian Blurs – improved throughput through architectural optimisation and Vulkan fixes.

  • Complex Clipping – frame times reduced from 450 ms with Skia to 11 ms with Impeller.

  • Startup Consistency – no shader compilation stutter and instant first-frame rendering.

  • Memory Efficiency – around 100 MB less memory use while maintaining higher performance.

These are proven results from production Flutter applications used by millions of people, showing the potential benefits of adopting Impeller in Avalonia.

Progress and Next Steps

Our collaboration with the Flutter team is advancing rapidly. We already have an early Avalonia backend running on Impeller and have established infrastructure to build and test Impeller on Windows, macOS, and Linux. Active discussions are taking place on GitHub as we work through implementation challenges such as texture rendering APIs, OpenGL context management, and render target persistence.

To reach production readiness, several Impeller enhancements are needed, including persistent render targets, extended typography and path APIs, Vulkan render-to-texture support, and access to Impeller’s effects pipeline.

As our Chief of Research notes:

“This kind of work requires experimentation to validate API design for both Avalonia’s needs and Impeller’s architecture. We are building an experimental backend to inform proper API design discussions.”

This is a significant technical effort, but both teams are committed to seeing through successfully. Chinmay and the Flutter team have been generous with guidance, helping us understand where Impeller can evolve to serve multiple frameworks effectively.

What About Vello?

Our exploration of Vello as a SkiaSharp alternative continues, but it is currently a lower priority. Early testing highlighted several challenges, particularly around power efficiency, that make Impeller a better near-term focus for mobile and embedded use. Vello remains valuable in its own right, and we will revisit it as the ecosystem matures.

Looking Forward

Impeller integration remains experimental, but the early results are promising. We are committed to extending Impeller’s capabilities in ways that benefit both Avalonia and Flutter developers, and to making it a serious rendering option for .NET.

This is an exciting time for Avalonia and for .NET developers who care about performance. We will continue to share progress updates, technical insights, and opportunities for the community to test and contribute. Collaboration drives open source forward, and this project shows what is possible when communities build together.

You can follow development and contribute directly on GitHub at github.com/AvaloniaUI/NImpeller

We’re excited to share an important milestone in Avalonia’s rendering journey. Our team is partnering with Google’s Flutter engineers to bring Impeller, their next-generation GPU-first renderer, to .NET developers. This technical collaboration aims to push the boundaries of performance across platforms and demonstrate how open-source communities can achieve more by working together.

How It Began

The idea developed naturally within the open-source community. After we published our exploration of alternatives to SkiaSharp, Chinmay Garde, the creator of Impeller and a senior engineer on Flutter at Google, reached out. What began as an exchange of ideas quickly evolved into an active engineering collaboration, with both teams working to make Impeller a practical rendering option for Avalonia and the wider .NET ecosystem.

Impeller was created to solve real-world performance challenges Flutter encountered with Skia, particularly shader compilation “jank”. It prepares a static set of pipeline state objects before startup, removing stutter and ensuring consistently smooth frame times. Flutter now uses Impeller as its default renderer for iOS and Android, with web support already in progress. Bringing this technology to .NET opens the door to major performance gains, especially for mobile and embedded workloads.

Open Source at Its Best

From the outset, the Flutter team made it clear that Impeller was designed to benefit the broader developer community, not just Flutter itself. Their openness and willingness to share their expertise has been remarkable. For us, this is what open source should look like: two projects with different audiences finding shared ground to advance technical excellence together.

At Avalonia, we have always believed that progress in open source comes from building bridges, not walls. Working with Chinmay and the Flutter team reinforces that belief. Both communities share a deep commitment to transparency, collaboration, and technical quality in advancing the state of cross-platform UI.

Our Impeller backend work will be developed entirely in public. Every patch, discussion, and experiment will be open for others to study or build upon. The goal is not only to make Avalonia faster but also to make Impeller more flexible and accessible for all .NET developers and framework authors.

Why Impeller

Impeller delivers smooth, consistent performance, higher average frame rates, and reduced VRAM use. It is unapologetically GPU-first, making it ideal for modern hardware where predictable performance and power efficiency are essential.

Built for Modern Hardware

Impeller’s architecture is optimised for tiling GPUs commonly found in mobile devices, tablets, and embedded systems. This is where we expect the greatest performance improvements compared with SkiaSharp. Flutter has already proven the approach, using Impeller as its default renderer on iOS and Android, with web support on the way. For embedded scenarios, where the target hardware is known in advance, Impeller offers a compelling alternative.

Performance in Practice

Our early tests confirm Impeller’s efficiency, particularly in power consumption, which is crucial for mobile and embedded devices.

Avalonia’s early power tests:

Animating 20,000 elements on an integrated GPU, chosen to represent a worst-case scenario, produced the following results:

  • Impeller: 28 FPS at 222/724 MHz, 45 percent RC6, 0.48 W iGPU power draw

  • Vello: 28 FPS at 1012/1631 MHz, 24 percent RC6, 4.93 W iGPU power draw

Both achieved identical frame rates, but Vello required roughly twelve times more power. For battery-powered devices, that difference is significant.

Flutter’s production data shows similar advantages. In Android benchmarks, Impeller delivers measurable gains across key workloads:

  • SVG and Path Rendering – faster vector rendering using a stencil-then-cover technique.

  • Gaussian Blurs – improved throughput through architectural optimisation and Vulkan fixes.

  • Complex Clipping – frame times reduced from 450 ms with Skia to 11 ms with Impeller.

  • Startup Consistency – no shader compilation stutter and instant first-frame rendering.

  • Memory Efficiency – around 100 MB less memory use while maintaining higher performance.

These are proven results from production Flutter applications used by millions of people, showing the potential benefits of adopting Impeller in Avalonia.

Progress and Next Steps

Our collaboration with the Flutter team is advancing rapidly. We already have an early Avalonia backend running on Impeller and have established infrastructure to build and test Impeller on Windows, macOS, and Linux. Active discussions are taking place on GitHub as we work through implementation challenges such as texture rendering APIs, OpenGL context management, and render target persistence.

To reach production readiness, several Impeller enhancements are needed, including persistent render targets, extended typography and path APIs, Vulkan render-to-texture support, and access to Impeller’s effects pipeline.

As our Chief of Research notes:

“This kind of work requires experimentation to validate API design for both Avalonia’s needs and Impeller’s architecture. We are building an experimental backend to inform proper API design discussions.”

This is a significant technical effort, but both teams are committed to seeing through successfully. Chinmay and the Flutter team have been generous with guidance, helping us understand where Impeller can evolve to serve multiple frameworks effectively.

What About Vello?

Our exploration of Vello as a SkiaSharp alternative continues, but it is currently a lower priority. Early testing highlighted several challenges, particularly around power efficiency, that make Impeller a better near-term focus for mobile and embedded use. Vello remains valuable in its own right, and we will revisit it as the ecosystem matures.

Looking Forward

Impeller integration remains experimental, but the early results are promising. We are committed to extending Impeller’s capabilities in ways that benefit both Avalonia and Flutter developers, and to making it a serious rendering option for .NET.

This is an exciting time for Avalonia and for .NET developers who care about performance. We will continue to share progress updates, technical insights, and opportunities for the community to test and contribute. Collaboration drives open source forward, and this project shows what is possible when communities build together.

You can follow development and contribute directly on GitHub at github.com/AvaloniaUI/NImpeller

Continue Reading

The latest News articles