-
Notifications
You must be signed in to change notification settings - Fork 6k
Comparing changes
Open a pull request
base repository: flutter-team-archive/engine
base: 7c603de2dca7
head repository: flutter-team-archive/engine
compare: f21f2b232b8a
- 6 commits
- 8 files changed
- 6 contributors
Commits on Sep 27, 2024
-
[Impeller] hash even less stuff per frame. (#55092)
Follow up to #55060 Currently we have multiple stages of hashing while font rendering, which is relatively expensive for the actualy required workload. First, we hash the contents of all text frames to compute the unique set of glyphs per frame. Then we diff this hash set against the hashmap of glyphs within the atlas. Finally we hash and lookup the final rendered bounds for each glyph. We can simplify this to 2. hash lookups for glyphs not yet in the atlas and 1. hash lookup for glyphs that are in the atlas. This is done by combing the step where we uniquely compute glyphs per frame with the diff against the current atlas. When this lookup is performed, we also store the glyph position (if found) in the text_frame itself - which allows text contents to skip the last hash, as long as the glyph has already been rendered. ### Before  ### After  Using this handy dandy test app: ```dart import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { Widget build(context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Platform View'), ), body: SafeArea(child: Stack(children: [ SizedBox( width: 380, height: 380, child: LinearProgressIndicator(), ), Stack( children: List<Widget>.generate(1000, (index) { // The problem already happens with a small amount of widgets. // Using an excessive amount of widgets is just to make the problem more evident. return Text("Lots of Texts represent a Widget with complex components."); }), ), Align( alignment: Alignment.bottomCenter, child: TextButton( child: Text("Button"), onPressed: () { print("Tap ${DateTime.now()}"); }, ), ), ], ), ), ), ); } } ```
Jonah Williams authoredSep 27, 2024 Configuration menu - View commit details
-
Copy full SHA for d283bc8 - Browse repository at this point
Copy the full SHA d283bc8View commit details -
[web] Update builder json generator to reflect recent changes (#55307)
Recent [changes](#54584) affected our builder configs, but the script that generates those builder configs wasn't updated.
Configuration menu - View commit details
-
Copy full SHA for 3dfb462 - Browse repository at this point
Copy the full SHA 3dfb462View commit details -
Reverts "[Impeller] hash even less stuff per frame. (#55092)" (#55491)
Reverts: #55092 Initiated by: jonahwilliams Reason for reverting: framework golden failures. Original PR Author: jonahwilliams Reviewed By: {chinmaygarde, jtmcdole} This change reverts the following previous change: Follow up to #55060 Currently we have multiple stages of hashing while font rendering, which is relatively expensive for the actualy required workload. First, we hash the contents of all text frames to compute the unique set of glyphs per frame. Then we diff this hash set against the hashmap of glyphs within the atlas. Finally we hash and lookup the final rendered bounds for each glyph. We can simplify this to 2. hash lookups for glyphs not yet in the atlas and 1. hash lookup for glyphs that are in the atlas. This is done by combing the step where we uniquely compute glyphs per frame with the diff against the current atlas. When this lookup is performed, we also store the glyph position (if found) in the text_frame itself - which allows text contents to skip the last hash, as long as the glyph has already been rendered. ### Before  ### After  Using this handy dandy test app: ```dart import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { Widget build(context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Platform View'), ), body: SafeArea(child: Stack(children: [ SizedBox( width: 380, height: 380, child: LinearProgressIndicator(), ), Stack( children: List<Widget>.generate(1000, (index) { // The problem already happens with a small amount of widgets. // Using an excessive amount of widgets is just to make the problem more evident. return Text("Lots of Texts represent a Widget with complex components."); }), ), Align( alignment: Alignment.bottomCenter, child: TextButton( child: Text("Button"), onPressed: () { print("Tap ${DateTime.now()}"); }, ), ), ], ), ), ), ); } } ```
Configuration menu - View commit details
-
Copy full SHA for 852dd3a - Browse repository at this point
Copy the full SHA 852dd3aView commit details -
Listen for uncaught exceptions during loading of a web test suite in …
…Chrome (#55166) Without this the test runner will hang if the compiled test is invalid and unable to execute.
Configuration menu - View commit details
-
Copy full SHA for 4e1264f - Browse repository at this point
Copy the full SHA 4e1264fView commit details -
Roll Skia from e77818421e91 to 7efc11f2ea9e (6 revisions) (#55489)
https://skia.googlesource.com/skia.git/+log/e77818421e91..7efc11f2ea9e 2024-09-27 borenet@google.com [infra] Add jobs for Pixel9 2024-09-27 robertphillips@google.com [ganesh] Add GrGLCaps setting to control GL/ANGLE Protectedness handling 2024-09-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 64d149df26fd to 7bd80578336d (2 revisions) 2024-09-27 bungeman@google.com Suppress function UBSan on macOS 2024-09-27 drott@chromium.org [Fontations] Optimize generateMetrics() color glyph search 2024-09-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 966739ac8b4c to 0ec8a7f1b588 (8 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC bdero@google.com,brianosman@google.com,bungeman@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for 570643c - Browse repository at this point
Copy the full SHA 570643cView commit details -
[docs] Fix broken links in docs/ (#55350)
Fix broken links in docs/, specifically replaces ../ with https://github.com/flutter/flutter/blob/master/docs/ [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
Configuration menu - View commit details
-
Copy full SHA for f21f2b2 - Browse repository at this point
Copy the full SHA f21f2b2View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 7c603de2dca7...f21f2b232b8a