37927 Commits

Author SHA1 Message Date
skia-flutter-autoroll
25af2569df Roll Skia from b11804aaabbb to 3731c1f7cf29 (3 revisions) (flutter/engine#56027)
https://skia.googlesource.com/skia.git/+log/b11804aaabbb..3731c1f7cf29

2024-10-22 egdaniel@google.com [Graphite] Make sure not to use Protected Vertex/Index buffers.
2024-10-22 pkasting@chromium.org Add begin()/end() to SkString.
2024-10-22 bungeman@google.com [pdf] Change structure identifiers to match specification

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 brianosman@google.com,codefu@google.com,nicolettep@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
2024-10-22 16:14:18 +00:00
skia-flutter-autoroll
647ead52e9 Roll Skia from c89324dd8f6e to b11804aaabbb (1 revision) (flutter/engine#56025)
https://skia.googlesource.com/skia.git/+log/c89324dd8f6e..b11804aaabbb

2024-10-22 kjlubick@google.com Revert "partition_alloc: Fix condition about sanitizers."

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 brianosman@google.com,codefu@google.com,nicolettep@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
2024-10-22 14:48:23 +00:00
Brandon DeRosier
3b568c8d68 [Flutter GPU] Fix conditional when checking DeviceBuffer bounds. (flutter/engine#56017)
Resolves https://github.com/flutter/flutter/issues/157324

Fix a silly off-by-one that I didn't catch because none of the tests are using `DeviceBuffer` directly. 🤦
2024-10-22 10:58:38 +00:00
skia-flutter-autoroll
94fac8afbe Roll Dart SDK from 86ac62245577 to 8de85635d731 (3 revisions) (flutter/engine#56019)
https://dart.googlesource.com/sdk.git/+log/86ac62245577..8de85635d731

2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-50.0.dev
2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-49.0.dev
2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-48.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC codefu@google.com,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-22 09:07:38 +00:00
skia-flutter-autoroll
8f8170a5d3 Roll Skia from 64f4f1922946 to c89324dd8f6e (1 revision) (flutter/engine#56018)
https://skia.googlesource.com/skia.git/+log/64f4f1922946..c89324dd8f6e

2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4aa12e9e17f5 to 4bdcdf0deef5 (9 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 brianosman@google.com,codefu@google.com,nicolettep@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
2024-10-22 08:30:19 +00:00
skia-flutter-autoroll
b1f0dcf32f Roll Skia from 9c6cc020751d to 64f4f1922946 (3 revisions) (flutter/engine#56016)
https://skia.googlesource.com/skia.git/+log/9c6cc020751d..64f4f1922946

2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 6c65601e5d77 to fc1fbc4105b0 (5 revisions)
2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 0afe6a306dd2 to 145112eea713 (1 revision)
2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 6a645bf6ebd6 to 8e9623dbadf3 (19 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 brianosman@google.com,jonahwilliams@google.com,nicolettep@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
2024-10-22 07:11:20 +00:00
skia-flutter-autoroll
e14b930196 Roll Skia from a71df7d9bc63 to 9c6cc020751d (1 revision) (flutter/engine#56013)
https://skia.googlesource.com/skia.git/+log/a71df7d9bc63..9c6cc020751d

2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4220684adef5 to d8276cfd24b7 (6 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 brianosman@google.com,jonahwilliams@google.com,nicolettep@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
2024-10-22 05:53:23 +00:00
skia-flutter-autoroll
c17390e606 Roll Fuchsia Linux SDK from avSAUwQTf5xVGuZQU... to xPbin_33tT-_omeQT... (flutter/engine#56011)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

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
2024-10-22 04:21:23 +00:00
Alexander Aprelev
63d8f5cb72 Copy gen_snapshots using python's shutil.copy, avoid links (flutter/engine#55830)
Default implementation of copy does it via hardlink, which seems to be
causing issues with Gatekeeper on mac.

BUG=https://github.com/flutter/flutter/issues/154437
2024-10-22 04:48:02 +03:00
Brandon DeRosier
493177b5ed [Flutter GPU] Add missing MSAA stuff. (flutter/engine#55424)
Resolves https://github.com/flutter/flutter/issues/144264.
2024-10-22 01:16:25 +00:00
skia-flutter-autoroll
5a1b014639 Roll Skia from 3a081993e2a7 to a71df7d9bc63 (24 revisions) (flutter/engine#56005)
https://skia.googlesource.com/skia.git/+log/3a081993e2a7..a71df7d9bc63

2024-10-21 arthursonzogni@chromium.org partition_alloc: Fix condition about sanitizers.
2024-10-21 robertphillips@google.com [graphite] Address Native-Vulkan Precompilation thread races
2024-10-21 robertphillips@google.com [graphite] Add test for precompilation thread safety
2024-10-21 double1kai@gmail.com fix some bugs in type conversion on Loongarch
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1ea770ceed23 to 4220684adef5 (1 revision)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4b1e58d94333 to 4aa12e9e17f5 (6 revisions)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from e81b15c8854a to 6c65601e5d77 (2 revisions)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 7e8a128852ff to 6a645bf6ebd6 (12 revisions)
2024-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7acb8149138a to 1ea770ceed23 (9 revisions)
2024-10-19 lukasza@chromium.org [rust png] Enable and fix integer conversion warnings.
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b48b5be748a7 to 7acb8149138a (7 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2f644ed8a84e to 4b1e58d94333 (7 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 06128ba913e9 to b48b5be748a7 (2 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 4c14e8e4f022 to 7e8a128852ff (17 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 70e3e4feed08 to e81b15c8854a (1 revision)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 74b783dffb9b to 0afe6a306dd2 (1 revision)
2024-10-17 vigneshv@google.com crabbyavif: Add support for cropping
2024-10-17 michaelludwig@google.com [graphite] ShaderInfo::toSkSL() release asserts
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from bd3c30184daf to 06128ba913e9 (2 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0dbe85f31776 to 2f644ed8a84e (15 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 78ae0bf49048 to 70e3e4feed08 (3 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 65fa98d50f6d to 4c14e8e4f022 (10 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ad31dd1cb898 to bd3c30184daf (11 revisions)
2024-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from 6a07fae851d7 to a049ff55ff14

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 brianosman@google.com,jonahwilliams@google.com,nicolettep@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
2024-10-22 00:28:20 +00:00
Devon Carew
fed015acfb update the SoT location for package:http_parser (flutter/engine#55998)
This PR updates the SoT location for `package:http_parser`; it's moved
from dart-lang/http_parser to dart-lang/http (in pkgs/http_parser).

Issues:
- https://github.com/dart-lang/sdk/issues/56591

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-10-21 17:17:10 -07:00
zijiehe@
cd975cfa34 Reland: [fuchsia] Remove pm use in build_fuchsia_artifacts (flutter/engine#55932)
Redo: https://github.com/flutter/engine/pull/55832

See the diff of diffs,

```
diff <(curl -s '1cd59a0c06.diff') <(curl -s 'ccea3b80cc.diff')
```

Or

```
48c48
< index 5258466145387..83aebdaacd9b6 100755
---
> index 5258466145387..3f74d19640d0f 100755
141,142c141,142
< +  far_file = '%s_%s%s_runner-0.far' % (runner_type, mode, '_product' if product else '')
< +  CopyPath('%s/%s' % (source_root, far_file), '%s/%s' % (destination, far_file))
---
> +  far_file = '%s_%s%s_runner' % (runner_type, mode, '_product' if product else '')
> +  CopyPath('%s/%s-0.far' % (source_root, far_file), '%s/%s.far' % (destination, far_file))
```

This change restores the files' -0 suffix which was wrongly removed in the last iteration.

=== Description of the original change:

This change removes the in-house built pm-based build rules in favor of the high level fuchsia_component / fuchsia_package in the gn-sdk.

Also the use of pm in build_fuchsia_artifacts.py is removed as the placements of the binaries changed.
https://github.com/flutter/engine/pull/55445 was a previous attempt and it generates [a malformatted cipd](https://chrome-infra-packages.appspot.com/p/flutter/fuchsia/+/vU1Op26qgO5XYs9S8AqQMvBwgITD9hq3-2dIu2H5-iwC).

Bug: http://b/353729557, http://b/368608542

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-21 21:52:00 +00:00
skia-flutter-autoroll
910b7f6302 Roll Dart SDK from 10387c3fc6d4 to 86ac62245577 (1 revision) (flutter/engine#55995)
https://dart.googlesource.com/sdk.git/+log/10387c3fc6d4..86ac62245577

2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-47.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jonahwilliams@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-21 21:48:06 +00:00
Yegor
1e4d3fae97 Revert "[web:a11y] make header a proper <header> (#55747)" (flutter/engine#55993)
This reverts commit e478ea9bad00114661ee59d79d843cc66d395a24.

This broke a customer: https://github.com/flutter/engine/pull/55747#issuecomment-2426879072
2024-10-21 20:48:57 +00:00
Yegor
5d341acdc5 [web] implement selectable semantics (flutter/engine#55970)
Implement `SemanticsFlag.hasSelectedState` and `SemanticsFlag.isSelected` for web in terms of `aria-selected`.

Fixes https://github.com/flutter/flutter/issues/66673
2024-10-21 20:24:10 +00:00
Jonah Williams
9a7492dc88 [Impeller] Reland: one descriptor pool per frame. (flutter/engine#55960)
reverted https://github.com/flutter/engine/pull/55939 due to postsubmit failures.

It turns out the lifecycle is not exactly the same as the command pool. Instead, use a thread id map on the context to keep the right thread running and simplify shutdown. Leaving CI yaml edit for now to prove it works :)

Fixes https://github.com/flutter/flutter/issues/157115
2024-10-21 19:33:20 +00:00
Justin McCandless
cd1cd27685 Scribe (Android stylus handwriting text input) (flutter/engine#52943)
The engine API for Android's Scribe stylus handwriting input. Just bare bones handwriting itself, does not support special gestures, which will come in subsequent PR(s).
2024-10-21 11:55:02 -07:00
Devon Carew
b21f22cc50 re-land "update the repo references for package:file (#55906)" (flutter/engine#55935)
This is a re-land of the reverted PR, flutter/engine#55916 (it depended
on a dart roll that was reverted, and has subsequently been re-landed).

From the original PR:

> The SoT repository for `package:file` has changed from
google/file.dart to dart-lang/tools; this PR updates the DEPS file and
the hard-coded paths in the two pubspec.yaml files (see
https://github.com/dart-lang/tools/issues/674).
2024-10-21 10:39:02 -07:00
Zachary Anderson
ec3cff72ab Increase timeout for Linux mac_clangd (flutter/engine#55988)
This build does not come in under the default 30 minute timeout when the caches are cold and the bot_update steps take too long: https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20mac_clangd/2928/overview
2024-10-21 17:09:24 +00:00
Jason Simmons
9872e0ee2f Request another frame in ImageReaderSurfaceProducer.dequeueImage if more images are pending in the queue (flutter/engine#55944)
ImageReaderSurfaceProducer will request a frame when an image is enqueued. But there is no guarantee that each request will produce an additional frame.
Multiple requests happening within one vsync interval could be merged into one frame.  If no other frame is scheduled, then some images will remain in the queue and the image shown on screen will not be the latest image.

With this change, ImageReaderSurfaceProducer will continue requesting frames after consuming an image if the queue is not empty.

Fixes https://github.com/flutter/flutter/issues/156903
Fixes https://github.com/flutter/flutter/issues/155787
2024-10-21 15:31:14 +00:00
skia-flutter-autoroll
d55edb4c9a Roll Dart SDK from c8659684d34d to 10387c3fc6d4 (1 revision) (flutter/engine#55987)
https://dart.googlesource.com/sdk.git/+log/c8659684d34d..10387c3fc6d4

2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-46.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jonahwilliams@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-21 14:06:28 +00:00
Mouad Debbar
2af8c83f84 [web] Support woff2 fonts (flutter/engine#55908)
- Enable support for WOFF2 fonts.
- Add Brotli depndency (increases CK size by ~53KB compressed, including the Brotli dictionary).
- Use split WOFF2 fonts for Emoji.
- Remove the `useColorEmoji` runtime config flag.

Partially based off of https://github.com/flutter/engine/pull/41282
Fixes https://github.com/flutter/flutter/issues/119536
Contributes to https://github.com/flutter/flutter/issues/153974 and opens the door for moving more fonts to WOFF2.
2024-10-21 13:38:22 +00:00
skia-flutter-autoroll
49c05e315a Roll Fuchsia Linux SDK from PWz1ufnYNOGpgw-qg... to avSAUwQTf5xVGuZQU... (flutter/engine#55985)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

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
2024-10-21 03:06:12 +00:00
skia-flutter-autoroll
518ec7b770 Manual roll Dart SDK from a51df90298ca to c8659684d34d (4 revisions) (flutter/engine#55984)
Manual roll requested by asiva@google.com

https://dart.googlesource.com/sdk.git/+log/a51df90298ca..c8659684d34d

2024-10-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-45.0.dev
2024-10-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-44.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-43.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-42.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC
asiva@google.com,dart-vm-team@google.com,jonahwilliams@google.com on the
revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine:
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
2024-10-20 19:43:14 -07:00
Jim Graham
6b912e50de [Impeller] New impeller round rect class (flutter/engine#55946)
Impeller geometry class analogous to SkRRect - soon to be the standard round rectangle class throughout most of the engine that doesn't talk directly to Skia.

More unit tests are being written, but this PR will enable developers to look at the API of the new class and comment as well as test its effect on any goldens (there should be none).
2024-10-20 18:59:23 +00:00
skia-flutter-autoroll
19144672ff Roll Fuchsia Linux SDK from tNQZ8d5mRYpe3--lk... to PWz1ufnYNOGpgw-qg... (flutter/engine#55982)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

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
2024-10-20 01:53:33 +00:00
Jonah Williams
d56c8a7bb0 [Impeller] batch submit vulkan command buffers on newer hardware. (flutter/engine#55956)
Coming back to this from the previous attempt: https://github.com/flutter/engine/pull/50139 

* Even if its slower sometimes, its also way faster on more complex scenes
* The adreno bugs seem limited to older devices.

Conservatively, only enable batching for Mali and newer Adreno

On non vulkan backend we immediately submit.
2024-10-19 15:53:38 +00:00
Robert Ancell
15129c0bbc Move keymap from FlKeyboardViewDelegate to FlKeyboardManager (flutter/engine#55942)
Ideally the tests would mock gdk_keymap_lookup_key, but I wasn't able to get it working so I've added fl_keyboard_manager_set_lookup_key_handler for now.
2024-10-19 01:36:10 +00:00
Jonah Williams
73ec326b80 [UI] fix scene builder parameter naming. (flutter/engine#55969)
This is reponsible for the bdf golden breaking shader mask.
2024-10-18 17:45:23 -07:00
Chris Bracken
ec22d90ba3 iOS: Improve thread safety of first frame callback (flutter/engine#55966)
Previously, we dispatched a task to a background thread to wait for the first frame to be ready. In the background task, we then throw a task on the main thread that invokes that user-provided callback to notify them that the first frame is ready.

During ARC migration, we ensured that self was strongly-captured in the task that runs on the main thread, in order to prevent the possibility that the last remaining reference to the FlutterEngine instance be the one on the background thread.

However, with the previous code, it's possible that the callback is dispatched to the main thread, executes, and completes before the block on the background thread finishes. In that case, the last remaining FlutterEngine reference may *still* be the one on the background thread.

In order to prevent this scenario, we use `dispatch_group_notify` to ensure that the tasks are executed sequentially, and that the callback task is not dispatched to the main thread until the background task has completed. Further, we capture FlutterEngine strongly in the second task to ensure that *it* is the last remaining task.

Why do we need to capture self strongly in the task fired to the main queue? Imagine the following:
* We queue up the first task on the background thread.
* We queue up the callback task on the main thread to be executed only after the background task completes.
* The task on the background thread starts running.
* That task captures weakSelf strongly and checks it -- it's not nil, yay. 
* That task now makes the blocking first frame call. Time passes. While that time passes all other strong references to self go away. That second block only captured self weakly, so the background task now has the only remaining strong reference. Uh oh!
* We hit the end of the background task block and since we have the last remaining strong reference, we dealloc FlutterEngine... on the background thread.
* KABOOM.

No changes to tests since this is a fix to a race condition that doesn't affect app semantics, isn't testable as written, and adding shims to improve testability will likely make some already subtle/difficult-to-reason-about code even more complex and difficult to reason about.

Issue: https://github.com/flutter/flutter/issues/156177

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-19 00:07:15 +00:00
Chris Bracken
3031222ef2 iOS: Fix flaky tests (remove timeouts) (flutter/engine#55961)
When run repeatedly, some of the iOS unit tests can relatively easily
blow their test timeouts. Since we're testing behaviour and not
performance in these tests there's no need to enforce a particular
timeout.

The bots will fail if the tests timeout, regardless.
2024-10-18 16:22:11 -07:00
Jonah Williams
298fba8a45 [Impeller] allocate the impeller onscreen texture from the render target cache. (flutter/engine#55943)
Otherwise with backdrop filters we create and throw away a single fullscreen texture every frame. Very wasteful!

Does not impact iOS because it has the read from resolve option. Removed some unused parts of the inline_pass_context that were only used in the entity pass days.
2024-10-18 22:24:31 +00:00
skia-flutter-autoroll
74eadd80c5 Roll Fuchsia Linux SDK from 9F_NaKPd2twhbPwP7... to tNQZ8d5mRYpe3--lk... (flutter/engine#55963)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

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
2024-10-18 22:01:52 +00:00
gaaclarke
4ffade7c5b Started filtering out close line segments in rrect polylines. (flutter/engine#55929)
fixes https://github.com/flutter/flutter/issues/156422

tests: AiksTest.GradientOvalStrokeMaskBlurSigmaZero

This filtering needs to happen somewheres.  I opted for putting it inside of the AddLinearComponent instead of where it was affected me in the test: 45237cc63f/impeller/geometry/path_builder.cc (L180)

This seems preferable.  A tiny line segment should never matter.  The rub is that its only happening here.  We might want to do this in other places as well.  It's equally unimportant to have a tiny curve.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-18 21:54:04 +00:00
Chinmay Garde
cf27a7a314 [Impeller] libImpeller: Allow custom font registrations. (flutter/engine#55934)
Fixes https://github.com/flutter/flutter/issues/156361

cc @lyceel. A bit of miscommunication on the priority of this one. I
thought the default font factories were sufficient for the next release.
But it turns out that was not true on the board which is a custom
platform.

In any case, this should unblock custom font registrations. See the
`CanCreateParagraphsWithCustomFont` case for an example. If you don't
provide the family name alias for the custom font, the name will be read
from the font data. This example uses the custom "WhatTheFlutter" custom
font family in "wtf.otf".

<img width="1136" alt="Screenshot 2024-10-17 at 1 26 36 PM"
src="https://github.com/user-attachments/assets/dbbef2fd-f854-4330-8c82-fc8378489769">
2024-10-18 14:46:58 -07:00
Chris Bracken
1839704803 Re-reland "iOS: Migrate FlutterEngine to ARC" (flutter/engine#55962)
This reverts commit 0a9ed4763365f84be6f92f23abf13c778593715c.
This relands commit 530a9f896c3547fd5e27539e9049fae392d61e73.
That commit was a reland of a2ac734e10115547d8c8ef34610ea6172e3cc98b.

Migrates `FlutterEngine` from manual reference counting to ARC. Migrates properties from `retain` to strong and `assign` to `weak` (where referencing an Obj-C object).

This has the following change from the previous patch:
* startProfiler was updated to eliminate the self-capture in https://github.com/flutter/engine/pull/55957 which prevents the possibility of dealloc on the profiling thread.

No semantic changes, therefore no changes to tests.

Issue: https://github.com/flutter/flutter/issues/137801
Issue: https://github.com/flutter/flutter/issues/156177

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-18 21:10:22 +00:00
Chinmay Garde
961bddda02 [Impeller] libImpeller: Add a README. (flutter/engine#55940) 2024-10-18 20:26:15 +00:00
Chris Bracken
d41e5c15d8 iOS: Eliminate needless profiler metrics ivar (flutter/engine#55957)
iOS profiling is implemented in ProfileMetricsIOS, which has a default constructor, no member fields, and no superclass. i.e. it's roughly zero cost to create and holds no state. There's therefore no reason to make it an ivar on FlutterEngine.

Further, making it an ivar on FlutterEngine means that the profiling sampler lambda needs to capture self which, in the case where all other FlutterEngine references go out of scope during sampling, means that the last FlutterEngine reference exists on a profiling thread, and when the sampling lambda block completes, the engine is dealloc'ed.

The engine *must* be deallocated on the platform (main in Apple terminology) thread because FlutterEngine holds a reference to a PlatformViewsController, which owns a WeakPtrFactory. WeakPtrFactory's dtor asserts that it executes on the thread on which it was created, in this case, the platform thread. Further, the engine holds direct and indirect references to other UIKit objects such as `UITextInput` in FlutterTextInputPlugin, which must be dealloc'ed on the main thread.

Since there's no need for ProfileMetricsIOS to be tied to the engine, we now create it on the fly in the sampler.

No test changes because no semantic changes.

Uncovered by ARC migration.

Issue: https://github.com/flutter/flutter/issues/137801
Issue: https://github.com/flutter/flutter/issues/156177

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-18 19:51:04 +00:00
auto-submit[bot]
3089ce059c Reverts "[Impeller] one descriptor pool per frame. (#55939)" (flutter/engine#55959)
Reverts: flutter/engine#55939
Initiated by: jonahwilliams
Reason for reverting: failing on scenario test
Original PR Author: jonahwilliams

Reviewed By: {matanlurey}

This change reverts the following previous change:
Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes https://github.com/flutter/flutter/issues/157115
2024-10-18 19:23:46 +00:00
Chris Bracken
0a9ed47633 Revert "Reland "iOS: Migrate FlutterEngine to ARC" (#55937)" (flutter/engine#55954)
There are still a couple closures where on engine shutdown, the last
live reference to FlutterEngine may be on a thread other than the
platform thread.

Specifically, the profiling data capture callback can result in the last
live reference to a FlutterEngine being on a profiling thread, resulting
in an assertion failure in the destructor of the PlatformViewsController
held by FlutterEngine, because PlatformViewsController holds a
WeakPtrFactory whose destructor asserts that it be on the platform
thread.

See:

f0f29ce37f/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm (L511-L515)

Backtrace of such a crash:
```
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView removeFromSuperview]
PID: 46919, TID: 333147, Thread name: FlutterEngine.166.profiler, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libios_test_flutter.dylib           0x000000014b658aed -[FlutterTextInputPlugin dealloc] + 27
5   libobjc.A.dylib                     0x00007ff800055228 _ZN11objc_object17sidetable_releaseEbb + 204
6   libios_test_flutter.dylib           0x000000014b63df5a -[FlutterEngine .cxx_destruct] + 135
7   libobjc.A.dylib                     0x00007ff800035766 _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 83
8   libobjc.A.dylib                     0x00007ff80004ddfc objc_destructInstance + 61
9   CoreFoundation                      0x00007ff8004a286b -[NSObject(NSObject) __dealloc_zombie] + 159
10  libios_test_flutter.dylib           0x000000014b635fea -[FlutterEngine dealloc] + 334
11  libobjc.A.dylib                     0x00007ff800055228 _ZN11objc_object17sidetable_releaseEbb + 204
12  libios_test_flutter.dylib           0x000000014b63eda9 _ZNSt3_fl10__function6__funcIZ30-[FlutterEngine startProfiler]E3$_0NS_9allocatorIS2_EEFN7flutter13ProfileSampleEvEEclEv + 69
13  libios_test_flutter.dylib           0x000000014bcd8eaa _ZNSt3_fl10__function6__funcIZNK7flutter16SamplingProfiler16SampleRepeatedlyEN3fml9TimeDeltaEE3$_0NS_9allocatorIS6_EEFvvEEclEv + 40
14  libios_test_flutter.dylib           0x000000014b868786 _ZN3fml15MessageLoopImpl10FlushTasksENS_9FlushTypeE + 156
15  libios_test_flutter.dylib           0x000000014b86ecca _ZN3fml17MessageLoopDarwin11OnTimerFireEP16__CFRunLoopTimerPS0_ + 26
16  CoreFoundation                      0x00007ff8003ea4a5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
17  CoreFoundation                      0x00007ff8003ea032 __CFRunLoopDoTimer + 801
18  CoreFoundation                      0x00007ff8003e97b6 __CFRunLoopDoTimers + 243
19  CoreFoundation                      0x00007ff8003e4028 __CFRunLoopRun + 2108
20  CoreFoundation                      0x00007ff8003e3409 CFRunLoopRunSpecific + 557
21  libios_test_flutter.dylib           0x000000014b86ee07 _ZN3fml17MessageLoopDarwin3RunEv + 65
22  libios_test_flutter.dylib           0x000000014b8686a4 _ZN3fml15MessageLoopImpl5DoRunEv + 22
23  libios_test_flutter.dylib           0x000000014b86dce5 _ZNSt3_fl10__function6__funcIZN3fml6ThreadC1ERKNS_8functionIFvRKNS3_12ThreadConfigEEEES7_E3$_0NS_9allocatorISC_EEFvvEEclEv + 135
24  libios_test_flutter.dylib           0x000000014b86da87 _ZZN3fml12ThreadHandleC1EONSt3_fl8functionIFvvEEEEN3$_08__invokeEPv + 27
25  libsystem_pthread.dylib             0x000000010d6a818b _pthread_start + 99
26  libsystem_pthread.dylib             0x000000010d6a3ae3 thread_start + 15
2024-10-18 09:31:27.549111-0700 IosUnitTests[46919:333147] [reports] Main Thread Checker: UI API called on a background thread: -[UIView removeFromSuperview]
PID: 46919, TID: 333147, Thread name: FlutterEngine.166.profiler, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libios_test_flutter.dylib           0x000000014b658aed -[FlutterTextInputPlugin dealloc] + 27
5   libobjc.A.dylib                     0x00007ff800055228 _ZN11objc_object17sidetable_releaseEbb + 204
6   libios_test_flutter.dylib           0x000000014b63df5a -[FlutterEngine .cxx_destruct] + 135
7   libobjc.A.dylib                     0x00007ff800035766 _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 83
8   libobjc.A.dylib                     0x00007ff80004ddfc objc_destructInstance + 61
9   CoreFoundation                      0x00007ff8004a286b -[NSObject(NSObject) __dealloc_zombie] + 159
10  libios_test_flutter.dylib           0x000000014b635fea -[FlutterEngine dealloc] + 334
11  libobjc.A.dylib                     0x00007ff800055228 _ZN11objc_object17sidetable_releaseEbb + 204
12  libios_test_flutter.dylib           0x000000014b63eda9 _ZNSt3_fl10__function6__funcIZ30-[FlutterEngine startProfiler]E3$_0NS_9allocatorIS2_EEFN7flutter13ProfileSampleEvEEclEv + 69
13  libios_test_flutter.dylib           0x000000014bcd8eaa _ZNSt3_fl10__function6__funcIZNK7flutter16SamplingProfiler16SampleRepeatedlyEN3fml9TimeDeltaEE3$_0NS_9allocatorIS6_EEFvvEEclEv + 40
14  libios_test_flutter.dylib           0x000000014b868786 _ZN3fml15MessageLoopImpl10FlushTasksENS_9FlushTypeE + 156
15  libios_test_flutter.dylib           0x000000014b86ecca _ZN3fml17MessageLoopDarwin11OnTimerFireEP16__CFRunLoopTimerPS0_ + 26
16  CoreFoundation                      0x00007ff8003ea4a5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
17  CoreFoundation                      0x00007ff8003ea032 __CFRunLoopDoTimer + 801
18  CoreFoundation                      0x00007ff8003e97b6 __CFRunLoopDoTimers + 243
19  CoreFoundation                      0x00007ff8003e4028 __CFRunLoopRun + 2108
20  CoreFoundation                      0x00007ff8003e3409 CFRunLoopRunSpecific + 557
21  libios_test_flutter.dylib           0x000000014b86ee07 _ZN3fml17MessageLoopDarwin3RunEv + 65
22  libios_test_flutter.dylib           0x000000014b8686a4 _ZN3fml15MessageLoopImpl5DoRunEv + 22
23  libios_test_flutter.dylib           0x000000014b86dce5 _ZNSt3_fl10__function6__funcIZN3fml6ThreadC1ERKNS_8functionIFvRKNS3_12ThreadConfigEEEES7_E3$_0NS_9allocatorISC_EEFvvEEclEv + 135
24  libios_test_flutter.dylib           0x000000014b86da87 _ZZN3fml12ThreadHandleC1EONSt3_fl8functionIFvvEEEEN3$_08__invokeEPv + 27
25  libsystem_pthread.dylib             0x000000010d6a818b _pthread_start + 99
26  libsystem_pthread.dylib             0x000000010d6a3ae3 thread_start + 15
IosUnitTests(47009,0x10ec76240) malloc: enabling scribbling to detect mods to free blocks
IosUnitTests(47009) MallocStackLogging: could not tag MSL-related memory as no_footprint, so those pages will be included in process footprint - (null)
IosUnitTests(47009) MallocStackLogging: stack logs being written to /private/tmp/stack-logs.47009.1057b6000.IosUnitTests.0o4HgN.index
IosUnitTests(47009) MallocStackLogging: recording malloc and VM allocation stacks to disk using standard recorder
IosUnitTests(47009) MallocStackLogging: process 46919 no longer exists, stack logs deleted from /tmp/stack-logs.46919.10d1fc000.IosUnitTests.kFionm.index
```

This reverts commit 530a9f896c3547fd5e27539e9049fae392d61e73.

## Pre-launch Checklist

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I signed the [CLA].
- [X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-10-18 11:36:30 -07:00
skia-flutter-autoroll
cf61b19161 Roll Dart SDK from 993d3069f42e to a51df90298ca (7 revisions) (flutter/engine#55951)
https://dart.googlesource.com/sdk.git/+log/993d3069f42e..a51df90298ca

2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-41.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-40.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-39.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-38.0.dev
2024-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-37.0.dev
2024-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-36.0.dev
2024-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-35.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jonahwilliams@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-18 18:04:14 +00:00
Jonah Williams
e7f4870f84 [engine] add back opt out for merged threads. (flutter/engine#55952)
Add back opt out for merged threads for customer money.
2024-10-18 17:51:49 +00:00
Jonah Williams
e203f1d40b [Impeller] one descriptor pool per frame. (flutter/engine#55939)
Creating descriptor pools is expensive, no need to have more than one per frame.

The lifecycle of the descriptor pool is exactly the same as the cmd pool, which indicates that we can probably do some consolidation/refactoring in the future.

Fixes https://github.com/flutter/flutter/issues/157115
2024-10-18 17:50:08 +00:00
Jonah Williams
f0f29ce37f [Impeller] add mechanism for sharing bdf inputs. (flutter/engine#55701)
Introduces a mechanism to allow backdrop filters to 1) share backdrop inputs and 2) fuse filter applications for faster blurs.

This is a proposed solution to https://github.com/flutter/flutter/issues/131568

Implemented:
* Developer can specify a "backdrop id" which indicates that a backdrop layer should share the input texture and potentially cached filter for a layer.
* Removes second save layer for each backdrop filter
* Removes save layer trace event for backdrop filter
* Can fuse backdrop filters if there is more than one identical filter

TBD:
* Adjust heruristic to avoid applying bdf filter to entire screen

Suggestions: applying a bdf should be a distinct operation from a save layer in the DL builder/dispatcher. The saveLayer implmenentation in the impeller dispatcher is super convoluted because it needs to handle both.

### Video

Video starts with normal bdf then I hot reload to specify that the bdfs share inputs/filters. This is running on a pixel 8 pro

Change to the macrobenchmark app is just:
```dart
  Widget build(BuildContext context) {
    Widget addBlur(Widget child, bool shouldBlur) {
      if (shouldBlur) {
        return ClipRect(
          child: BackdropFilter(
            filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5),
            backdropId: 1, // Added ID
            child: child,
          ),
        );
      } else {
        return child;
      }
    }
```

https://github.com/user-attachments/assets/22707f97-5825-43f1-91b4-1a02a43437f5

Requires framework changes in https://github.com/jonahwilliams/flutter/pull/new/backdrop_id
2024-10-18 15:38:34 +00:00
Jason Simmons
c6cbbc775c On a merged UI/platform thread, immediately execute platform message handlers and then run microtasks (flutter/engine#55933)
Shell::OnPlatformViewDispatchPlatformMessage is called on the platform thread and must invoke the message handler on the UI thread.  If the platform and UI threads are merged, then the handler can be run immediately.  The shell can then post an empty task to the UI thread to make the UI message loop run the task observer that drains the microtask queue.

Fixes https://github.com/flutter/flutter/issues/156595
2024-10-18 14:01:28 +00:00
Jonah Williams
7a2227ddc8 [Impeller] simpler labels for render target textures and cmd buffers. (flutter/engine#55936)
Avoid Sprintf'ing labels for textures/cmd buffers/render passes. For the render target textures, defer combined label construction until we know the label will be used.
2024-10-18 04:01:50 +00:00
Jonah Williams
ccaa49bdb4 [Impeller] use render pass to transition attachments to eGeneral instead of barriers. (flutter/engine#55930)
From local testing:

1. This is slightly faster
2. This still renders correctly even on old phones (S10)
3. This is validation error clean.

---------------

The vk RenderPass has a built in mechanism to transition the attachments between layout states. Since we expect the images to be in eGeneral layout, we can configure the render pass to do an eUnderfined -> eGeneral  transition. eUnderfined means "we don't care what was here before". This is OK because we're about to clear the texture anyway.

Since the RenderPass is doing the transition, we don't need an explicit barrier. All we have to do is update our own state tracking mechanism that the image attachments should behave as if they were in eGeneral layout  - because they are once the render pass is started.
2024-10-18 03:58:23 +00:00
Robert Ancell
aca239fe59 Move redispatch_event from FlKeyboardViewDelegate to FlKeyboardManager (flutter/engine#55941)
Events can only be redispatched using gdk_event_put which is not
dependent on the view.

Ideally the tests would mock gdk_event_put, but I wasn't able to get it
working so I've added fl_keyboard_manager_set_redispatch_handler for
now.
2024-10-18 14:34:52 +13:00
Robert Ancell
a54730d091 Remove FlKeyResponder and use the two responder classes directly. (flutter/engine#55925)
We only ever have two classes and implementation, so reduce complexity
by removing the parent class and related code.
2024-10-18 13:19:47 +13:00