当前位置:网站首页>Flutter nouvelle génération de rendu graphique Impeller
Flutter nouvelle génération de rendu graphique Impeller
2022-04-23 05:34:00 【Ça fait longtemps qu'il n'y a pas eu de souvenirs silencieux.】
Pour l'instant Flutter Le développement de la communauté est déjà considérable,Statistiques officielles au cours de l'année écoulée,Sur les données Flutter A largement dépassé les autres cadres multiplateforme,Devenir l'outil de développement multiplateforme mobile le plus populaire,Jusqu'à 2022 Année 2 Mois,C'est proche. 50 10 000 applications utilisées Flutter.À l'étranger&Beaucoup de grandes usines en Chine,Développeur personnel,La communauté est engagée,Mais parce quefullterLa dynamique naturelle est faible,Taille du sac et quelques classes de porte - avionsappLe fardeau historique de,L'orientation actuelle du développement national est principalementTo BAffaires ouflutterExploration du développement hybride de plug - ins.
Depuis le plus récentFlutterLe rythme de mise à jour de,Décélération globale,Stratégie de stabilisation, d'amélioration de la qualité et d'amélioration des capacités.Par exemple,flutter 2.0En gros, ouiwebLe complément des capacités,Y compris quelques améliorations d'expérience,Support multi - moteurs, etc.FlutterDe2022L'objectif annuel est d'améliorer la vie mensuelle des utilisateurs,Rendre l'écologie de leur communauté plus prospère,Pour faire face aux chocs d'autres plates - formes transversales.
2022 RoadMapIntroduction
Le temps est venu.2022Année,flutterLa dernière carte stratégique est autour du Bureau,web,Développement et expérience interactive,enginePrise en charge de la capacité de polissage Multi - fenêtres isopoint,L'une des plus grandes préoccupations de l'auteur estflutterPour résoudre le rendujankUne nouvelle façon de penser au problème--Refactor Shader,C'est le thème d'aujourd'hui.À propos de shader compilerJankQuestions,Après de nombreuses tentatives officielles, il n'y a toujours pas de solution définitive,Donc, dans2022 Au milieu de l'année, il a été clairement proposé de repenser la façon dont les ombres sont utilisées. , Plan outrepasser l'arrière - plan de rendu d'image .
Dans l'article précédent, nous avons examiné FlutterMoteur de dessinSkiaAnalyse effectuée, Aujourd'hui, regardons le futur nouveau rendu Impeller, Le rendu est encore embryonnaire ,Seulement réalisémetalArrière - plan,SoutieniOSEtMacSystème,flutterPlan2022AnnéeiOSAmiral Flutter Migration vers le nouveau schéma , Puis migrer la solution vers d'autres plateformes en fonction de l'expérience . Le rendu est équivalent à skia Degpu Le module a été réécrit , Remplacement futur ou non flutterEn basskia, On ne sait toujours pas s'il existe , L'auteur préfère l'intégration skia- Oui., Après tout, la compatibilité multiplateforme elle - même est coûteuse ,Difficile..
Flutter jank
Flutter Beaucoup de choses ont été résolues au cours de l'année écoulée JankQuestions,Mais...compile shaderRésultatJank Le problème n'a pas été complètement résolu .Le problème vient deFlutterUtilisé au rez - de - chausséeskiaComme2DBibliothèque de rendu graphique,Etskia Un ensemble de SkSL(Skia shading language),SkSL De GLSL Variante.Pendant la phase de rasterisation, La première fois que vous utilisez un Shader Skia Est généré à partir des commandes de dessin et des paramètres du périphérique SkSL,Et ensuite, SkSL Convertir en arrière - plan spécifique (GLSL、GLSL ES Ou Metal SL)Shader, Et compilé comme Shader sur l'appareil .Etcompile shader Ça peut prendre des centaines de millisecondes. , Ce qui fait des dizaines de cadres jank.flutter Après de nombreuses tentatives de résolution ,Oui.slklAprès le préchauffage,benchmarkL'effet est évident, Mais il n'y a toujours pas de solution définitive. .

Impeller
ImpellerOui.flutter Rendu sur mesure ,Pour l'instant=Seulement réalisémetalArrière - plan. Il dépend flutter fml Et display list,Et a réalisédisplay list dispatcher Interface, Remplacement facile skia.ImpellerObjectifs fondamentaux:
Amélioration des performances
Compiler tous les shaders hors ligne au moment de la compilation , Et pré - construit à partir des ombres pipeline state objects. Et prend en charge la distribution d'une seule charge de travail de cadre sur plusieurs threads .
Facile à transplanter
Bien que la Bibliothèque de dessin sous - jacente soit largement utilisée API(Par exemple:MetalEtVulkan)Caractéristiques de,Mais sans compter sur,Non lié
impellerDivisé enCompiler、Renderer,Entity、Aiks Et la Bibliothèque de base GeometyEtBaseAttendez quelques modules..impeller compiler Les modules résolvent la compilation des ombres JankLa clé de,ContientCompiler Et Reflector.Compilation hors ligne Démarrer la première phase de l'ombre ,Utilisationimpellerc compiler Prends ça.//impeller/entity/shaders/ Toutes les sources d'ombres dans le Répertoire ( Comprend l'ombrage Vertex et l'ombrage clip ) Compiler comme langue intermédiaire Shader SPIR-V.Deuxième étape,Oui.SPIR-V Convertir en langage d'ombrage spécifique sous - jacent (Par exemple:Metal SL), Puis compilé comme shader library.Utilisation simultanéeimpellerc reflectorTraitementSPIR-VGénérer C++ shader binding, Pour la création rapide à l'exécution pipeline state objecs(PSO), Pour éviter les ombres de compilation jankQuestions, Autres détails et principes . Les lecteurs peuvent également consulter le site Web de #85737 En savoir plus .
版权声明
本文为[Ça fait longtemps qu'il n'y a pas eu de souvenirs silencieux.]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230534055708.html
边栏推荐
- JSON.
- Use of ES6 array
- Radar equipment (greedy)
- Parsing of string class intern() method
- QSS, qdateedit, qcalendarwidget custom settings
- 双击.jar包无法运行解决方法
- Several examples of pointer transfer, parameter transfer, value transfer, etc
- refused connection
- Common interview questions - 4 (MySQL)
- Create a tabbar component under the components folder, which is public
猜你喜欢

Frequently asked interview questions - 2 (computer network)

Understand the relationship between promise async await

Branch and loop statements

selenium預先加載cookie的必要性

SQL语句简单优化

open3d材质设置参数分析
![[triangle Yang Hui triangle printing odd even cycle JS for break cycle]](/img/9a/6cdc00e6056a1a47d2fbb8b9a8e975.png)
[triangle Yang Hui triangle printing odd even cycle JS for break cycle]

Excel 2016 cannot open the file for the first time. Sometimes it is blank and sometimes it is very slow. You have to open it for the second time

Hongji micro classroom | cyclone RPA's "flexible digital employee" actuator

Interview Basics
随机推荐
相机成像+单应性变换+相机标定+立体校正
3d slicer中拉直体的生成
SQL Server检索SQL和用户信息的需求
deep learning object detection
Reading notes of modern methods of C language programming
QT compressed folder
Deep learning object detection
Ehcache Memcache redis three caches
7-10 longest symmetric substring (25 points) (violence problem solution) C language
Three methods of list rendering
The QT debug version runs normally and the release version runs crash
STL function library
五一劳动节期间什么理财产品会有收益?
Use pagoda + Xdebug + vscode to debug code remotely
Markdown syntax support test
Error handling mechanism of the strongest egg framework in history
Processus d'exécution du programme exécutable
Multi process model in egg -- egg document Porter
If the route reports an error after deployment according to the framework project
CORS and proxy (づ  ̄ 3  ̄) in egg ~ the process of stepping on the pit and filling the pit ~ tot~