SkImage references get held by both our Image and Picture objects. The GC has no idea about this, and so sometimes pictures look very small when they're actually holding a reference to a large chunk of memory. This patch helps make sure that the GC can more adequately catch the real size impact of Picture objects, and combined with an upstream patch in Dart allows for much more aggressive collection of unused image related memory.
Added a new `FlutterEngineAOTData` argument to `FlutterProjectArgs`. Embedders can instantiate and destroy this object via the new `FlutterEngineCreateAOTData` and `FlutterEngineCollectAOTData` methods provided.
If an embedder provides more than one source of AOT data to `FlutterEngineInitialize` or `FlutterEngineRun` (e.g. snapshots as well as `FlutterEngineAOTData`), the engine will error out.
Resolves: https://github.com/flutter/flutter/issues/50778
This reverts commit 74823c212d418597775d332d8c272673c83f6f63 and relands our reland https://github.com/flutter/engine/pull/17915.
Additionally, we fixed the cull rect logic in `OpacityLayer::Preroll` which is the root cause of https://github.com/flutter/flutter/issues/56298. We've always had that root problem before but it did not trigger performance issues because we were using the OpacityLayer's `paint_bounds`, instead of its child's `paint_bounds` for preparing the layer raster cache. A correct handling of the cull rect should allow us to cull at any level.
It also turns out that our ios32 (iPhone4s) performacne can regress a lot
without snapping. My theory is that although the picture has a
fractional top left corner, many drawing operations inside the picture
have integral coordinations. In older hardwares, keeping those
coordinates integral seems to be performance critical.
To avoid flutter/flutter#41654, the snapping
will still be disabled if the matrix has non-scale-translation
transformations.
This reverts commit c72ff4a and relands #17712.
Fixesflutter/flutter#53288 and flutter/flutter#41654.
Together with #17791, this reland addresses some of Jim's concerns in the original PR #17712.
The major part of this PR is still the same as the original PR, and the performance / golden image impacts should be the same.
* Bumped up the timeout for testAccessibilityFocusOnTextSemanticsProducesCorrectIosViews
* ran formatter
* made an alternative version of the assertion
* removed log statements, seems to mess with the buildbot's xcpretty
* Updates to use predefined keys.
It starts using:
* timeouts for paving.
* timeouts for ssh commands.
* timeouts for tests.
https://github.com/flutter/flutter/issues/54416
* Update key location and autogenerate public key.
* Use ssh-keygen instead of openssl.
* Fix typo on test name.