Introducing Impeller - Flutter's new rendering engine
Вставка
- Опубліковано 21 лип 2024
- Flutter’s new rendering engine was developed with the goal of eliminating shader compilation jank and providing predictable performance. This talk will discuss the design of Impeller and how it fits into the broader architecture for Flutter. This includes a tour of Impeller’s sub frameworks, and a demonstration of how lower level APIs are used in Flutter applications. The session will also discuss how Impeller enables new experiences, like 3D support.
Speakers: Leigha Jarett, Brandon DeRosier
Watch more:
Watch all Flutter Sessions → goo.gle/IO23_flutter
Watch all the Technical Sessions from Google I/O 2023 → goo.gle/IO23_sessions
Watch more Mobile Sessions → goo.gle/IO23_mobile
Watch more Web Sessions → goo.gle/IO23_web
All Google I/O 2023 Sessions → goo.gle/IO23_all
Subscribe to Flutter! → goo.gle/FlutterYT
#GoogleIO - Наука та технологія
Have a burning question? Leave it in the comments below for a chance to get it answered by the Flutter team. 👇👇🏻👇🏿👇🏽 👇🏾👇🏼
We really need a machine reading zone MRZ to read from mrz scanner it will be great for desktop apps. Please update us. Thank you
Why isn't there an option to manually provide duration to periodic local notifications?
Does impeller affects performance of normal applications? Or does it works only with shader objects and specific widgets?
It will be possible to use in the future Scene with ARCore ? Would be very interesting having this 3D render system in AR
Please Make Flutter Web Competitive and Fast.
The Flutter team is just stocked full of amazing human beings ❤️ It's so inspiring to watch these talks! Impeller looks amazing 🤩
Great intro video - clear , concise, easy digest - thank you
Amazing work guys. Pretty new to flutter, and this looks awesome. Great solutions.
Amazing news guys, keep up the good work!
1:06 that was a very smooth jumpcut
The presentation was great. I know completely understand how Flutter works, and it was also a great explanation of multiple GPU related concepts. Thanks!
Just impressive, congratulations!!
Awesome Job
We were using Skia and this new clipping feature seems interesting, may have great performance gains
If you are experiencing a blank page or issues with rendering content when using the Impeller rendering engine in the InAppWebView how to fix it?
It was the steam deck in the background for me ❤
Impellerc fails on arm64 devices. Impellerc keeps me from being able to compile my flutter projects (on my raspberry pi) for over 4 months now due to the impellerc update. Please fix 116703 [flutter_tools] ShaderCompilerException running impellerc on arm64 platforms. Thanks
10:44 Great!
How about the web platform?
Waiting for Android release.
Thank You 🙏🏻
This is amazing 🚀
With impeller do i still need to run the "--cache-sksl" to generate the shaders? Or can I drop that flow entirely?
There's no need to capture and bundle a shader cache when using Impeller. Since Impeller doesn't dynamically generate shaders at runtime, there's no shader compilation jank!
I thought all ui rendering frameworks already did rendering similar to game engines?
Or is it only impeller that does it that way?
Amazing
Is impeller coming to desktop and web? This seems like a given, but I haven't seen it mentioned anywhere. If not, does the promise of greater rendering control extend to non mobile platforms as well?
The plan is for Impeller to eventually target all platforms that Flutter supports. Next up is Android. Impeller will enable us to deliver more control over rendering everywhere. :)
@@bdero_google Any rough ETA on the arrival of impeller on Android? More specifically, can we expect it to arrive to production before the end of this year?
Is audio strange to anyone else? I keep turning it up… while it’s loud, it’s still tough to hear the ups and downs of the spoken words. Idk, I’m not a sound person.
❤ these videos though. Keep ‘em coming!
The same issue - sound is not ok: girl’s mic is bad.
Can Impeller also be used outside of Flutter in a standalone project?
Flutter's completely open source, so you could certainly use the code in another project (subject to its OSS license). Impeller is designed to work specifically with Flutter, though, so you'd likely need to do some work to adapt your standalone project to implement the same interfaces.
@@andrewbrogdon558 Will Impeller be platform-agnostic or possibly replace Skia for browsers in the future?
@@edenassos Parts of impeller are common across platforms, but some have to be platform-specific because different devices use different low-level graphics APIs (Vulkan vs Metal vs DirectX, that kind of thing). Impeller is also designed specifically for Flutter, so I don't know that you'd see browser vendors swapping it in for their existing rendering libraries.
@@andrewbrogdon558 Interesting. Thank you for the information. I'm wondering if there is/was discussion internally at Google about overhauling Chrome's Skia with this.(A modified version for Chrome) Perhaps you could do the honors. 😅😅😂😂
Building Impeller as a standalone library is possible, but at the time of writing quite experimental.
We've been slowly iterating on a cmake build for doing so; the GH repo is "impeller-cmake-example" under the "bdero" profile.
Рефлексия когда будет реализована? параллельная компиляция одного проекта когда будет реализована? Когда google купит FlutterFlow? когда будет хот релоад для web?
in which flutter version SceneBox is available?
found in package flutter_scene
I tried typing SceneBox but I cant get an intellisense of it. I only saw Scene widget.
found in package flutter_scene
Are all widgets compatible with Impeller out of the box?
I tried lottie animations with Impeller a couple of months ago and it didn't go well :/
Yes, all widgets should work with Impeller enabled out of the box. If you run into any performance or fidelity issues, definitely send us an issue on the flutter/flutter repository! We've been working on stamping out fidelity and performance issues as we come across them.
In particular, we've landed some major performance improvements around path rendering over the past couple of weeks, and have a bunch more planned in the pipeline. So be sure to give Impeller a try on the master channel as well.
@@bdero_google sure will 💙
08:06
Wow I didn't know Flutter directly transpiles to the GPU, and not constrained by the UI toolkits of each platform.
I always thought Flutter have to compile to Kotlin or SwiftUI first and then build it from there, but no, Flutter directly uses its own engine and talks directly to the GPU to render pixels on the screen. That's neat
Extraordinary
Looks cool. Just wondering when the impeller engine will be supported on Android as well.
We're hard at work getting Android ready! There's no set date yet, but we'll be asking devs to try it out on the master channel in the coming months.
Flutterrr ❤❤❤
Is impellor available for android now?
no
Is Impeller an improvement on all aspects over Skia or is Skia still better in some specific cases?
Impeller is built with modern graphics APIs in mind (e.g. Vulkan, Metal, etc.) and gives more access to low level features (one could do 3D rendering with it) whereas Skia is focused on 2D rendering and was built around OpenGL for the most part, where you can somewhat compile shaders on the fly in non-blocking fashion. Compiling shaders on Metal (iOS/MacOS) however is a blocking operation, hence the jank with Skia and its Metal backend.
@@jonathanvannier9797 If I understand correctly, Impeller has no drawbacks and it will eventually become Flutter's default render engine.
@@cekroz That's pretty much the stated goal in this video, a rendering engine tailored for flutter will always be superior to what is originally a rendering engine primarly used for Android material apps.
Hi @@jonathanvannier9797, so... Impeller was born out of issues with iOS more than with Android, right?
+1 for having the steam deck
😍
💙💙💙💙
Amazing work! However, there is poor audio quality in the recording of Brandon
I think the next time I do one of these, I'm definitely going to record in-studio like Leigha did. I was completely blown away by the studio recording when I saw it. :)
😍😍
Source code to that 3D dash game? Github repo?
The GH repo for the 3D demo is "flutter-scene-example" under the "bdero" profile.
The demo is difficult to run at the moment as it requires a custom build of Flutter Engine with a special flag to enable the feature. I'm working on replacing the underlying Dart API with a more suitable longterm design. Stay tuned for updates!
@@bdero_google Thanks,that's exciting!
@@bdero_google hi any rough estimate when we can get to try this? like weeks or months ?
Will impeller make it easier to deploy to other embedded architectures?
flutter is future
There is no method as SceneBox()
i don’t like flutter syntax, can you add alternative coding style, instead of child, and deep nesting.
You get used to it
It's not flutter syntax. It's dart programming.
MSAA is cheap? 😂 That’s not true, because multisample requires a lot of computations.
MSAA is low overhead on TBDR GPUs.
namig is getting out of hand here. "aiks is just skia spelled backwards."
Haha seems like video sponsored by acer
Does Google require you to have pronouns?
The English language requires you to have pronouns... We've both used them.