28674 Commits

Author SHA1 Message Date
skia-flutter-autoroll
e6dd7e805f Roll Skia from b851101c844a to 6fc00ce22452 (1 revision) (flutter/engine#55539)
https://skia.googlesource.com/skia.git/+log/b851101c844a..6fc00ce22452

2024-10-01 jvanverth@google.com Revert "[graphite] Expand BlurMaskFilter Precompilation ..."

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,scroggo@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-01 02:28:23 +00:00
skia-flutter-autoroll
674ac40d77 Roll Dart SDK from d9fb41a4b5ee to bff9c6ff642d (2 revisions) (flutter/engine#55538)
https://dart.googlesource.com/sdk.git/+log/d9fb41a4b5ee..bff9c6ff642d

2024-10-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-304.0.dev
2024-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-303.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 bdero@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-01 02:18:24 +00:00
skia-flutter-autoroll
18eef79b1b Roll Dart SDK from 79863e31de87 to d9fb41a4b5ee (1 revision) (flutter/engine#55533)
https://dart.googlesource.com/sdk.git/+log/79863e31de87..d9fb41a4b5ee

2024-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-302.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 bdero@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-09-30 21:56:49 +00:00
Matan Lurey
ed6acfd197 Introduce a GN rule that (explicitly) generates a dart test wrapper (flutter/engine#55475)
Closes https://github.com/flutter/flutter/issues/155769.

This is a variant of the approach in https://github.com/flutter/engine/pull/52241, based on feedback from @jakemac53 and @jonahwilliams (who originally sped up `dart test` significantly by using `frontend_server` under the scenes: https://github.com/dart-lang/test/pull/1399), in short:

```gn
# tools/engine_tool/BUILD.gn

import("//flutter/build/dart/internal/gen_dartcli_call.gni")

gen_dartcli_call("tests") {
  args = [ "test" ]
  cwd = "//flutter/tools/engine_tool"
}
```

This stanza, when built (`ninja -C ../out/host_debug flutter/tools/engine_tool:tests`) generates the following file:

```sh
# ../out/host_debug/gen/flutter/tools/engine_tool/tests

set -e

# Needed because if it is set, cd may print the path it changed to.
unset CDPATH

# Store the current working directory.
prev_cwd=$(pwd)

# Set a trap to restore the working directory.
trap 'cd "$prev_cwd"' EXIT

CD_PATH="/Users/matanl/Developer/engine/src/flutter/tools/engine_tool"
if [ -n "$CD_PATH" ]; then
  cd "$CD_PATH"
fi

/Users/matanl/Developer/engine/src/flutter/prebuilts/macos-arm64/dart-sdk/bin/dart "test"
```

In turn, when executed (`../out/host_debug/gen/flutter/tools/engine_tool/tests`) it just runs `dart test`:

```sh
flutter % ../out/host_debug/gen/flutter/tools/engine_tool/tests
Building package executable... 
Built test:test.
00:00 +0: test/test_command_test.dart: test command executes test                                                                                                                                                                                                          
00:00 +3: test/run_command_test.dart: run command invokes flutter run
...
00:00 +117: All tests passed!
```

There is no actual compilation performed by the tool (that is handled implicitly by `dart test`), and as a result neither a `depfile` is needed, nor generating a pre-compiled artifact like a snapshot or AOT elf/assembly. 

---

This work is incomplete, that is, we'd want to properly tag the executable so `et` can find it, and create a wrapper template (i.e. `dart_test`) that tightens things up a bit, but I wanted to show the work at this intermediate step to get feedback before moving forward.

/cc @jonahwilliams, @jtmcdole as well.
2024-09-30 21:39:36 +00:00
Matan Lurey
a38103ac0e Remove the need to use runZoned by replacing print statements (flutter/engine#55530) 2024-09-30 21:33:21 +00:00
skia-flutter-autoroll
bdd730c32c Roll Skia from 6c89706638ee to 534633fb4bd9 (2 revisions) (flutter/engine#55531)
https://skia.googlesource.com/skia.git/+log/6c89706638ee..534633fb4bd9

2024-09-30 lukasza@chromium.org [rust png] Support color transforms for (narrower) subframes.
2024-09-30 michaelludwig@google.com [graphite] Include intrinsic uniforms in the fragment shader

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,scroggo@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-09-30 20:26:20 +00:00
Chinmay Garde
55cdf532e5 [Impeller] Create a libImpeller dylib and expose symbols. (flutter/engine#55526) 2024-09-30 20:04:15 +00:00
gaaclarke
74788642ea Added metal validation for `impeller_unittests (flutter/engine#55527)
This turns on Metal validation for launching impeller_unittests from the tests panel.  This matches the default behavior of launching tests from XCode.  Without these assertions errors in Metal are completely silent.  In my case I just got a black screen until I tried running the tests through xcode.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-30 19:19:08 +00:00
skia-flutter-autoroll
05fc8c01db Roll Skia from dfeeb199b226 to 6c89706638ee (2 revisions) (flutter/engine#55528)
https://skia.googlesource.com/skia.git/+log/dfeeb199b226..6c89706638ee

2024-09-30 robertphillips@google.com [graphite] Expand BlurMaskFilter Precompilation ...
2024-09-30 jamesgk@google.com Avoid segfault in BigImageTest, rearrange skip rules

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,scroggo@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-09-30 19:02:05 +00:00
art-snake
405f673f7d fix use_of_uninitialized_value in message_loop_task_queues.cc (flutter/engine#55520)
This issue was found with memory sanitizer.

    Commit 988c4ffb83398bf8511122d73f0f85010e0edeea introduced a change that leads to use-after-free condition.

    In function MessageLoopTaskQueues::GetNextTaskToRun:

        1) Call is made to PeekNextTaskUnlocked(queue_id);. Returned value contains a reference to to an object of const DelayedTask& taken from an std::queue container as returned by primary_task_queue_.top().
        2) Variable TaskSource::TopTask top now contains a reference to this object.
        3) Function queue_entries_.at(top.task_queue_id)->task_source->PopTask(...) which in turn calls pop() method on std::queue.
        4) Object of type DelayedTask on top of the queue gets deleted.
        5) top.task.GetTaskSourceGrade() is called later with top.task refering to an already deleted object.

*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one issue.*

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-30 18:17:05 +00:00
Chris Bracken
219d952197 iOS: Migrate FlutterEngineGroup to ARC (flutter/engine#55503)
This migrates FlutterEngineGroup to automatic reference counting. It also migrates `enginesCreatedCount` from an ivar to property syntax.

I'll look at migrating engine from `NSMutableArray<NSValue*>` to a weak pointer array in a followup patch since it's orthogonal to ARC migration.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-30 17:56:52 +00:00
Jackson Gardner
b99e758ee1 Reland [skwasm] Scene builder optimizations for platform view placement (flutter/engine#55468)
This is an attempt to reland the overlay optimization for skwasm and fixing the golden diffs from the framework tests.

Original PR description:

This PR refactors the scene builder's logic in order to more aggressively merge flutter content and platform view content together. This essentially covers the case discussed in this flutter issue: https://github.com/flutter/flutter/issues/149863

This optimization ensures that each picture or platform view is applied to the lowest possible slice in the scene, which avoids the proliferation of redundant slices and overlays in the scene.
2024-09-30 17:42:58 +00:00
skia-flutter-autoroll
2482050afd Roll Dart SDK from c55ae50d619a to 79863e31de87 (1 revision) (flutter/engine#55525)
https://dart.googlesource.com/sdk.git/+log/c55ae50d619a..79863e31de87

2024-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-301.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 bdero@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-09-30 17:41:54 +00:00
skia-flutter-autoroll
b512a689d0 Roll Skia from 06721a724831 to dfeeb199b226 (2 revisions) (flutter/engine#55524)
https://skia.googlesource.com/skia.git/+log/06721a724831..dfeeb199b226

2024-09-30 michaelludwig@google.com Check for null child in SkWorkingFormatColorFilter
2024-09-30 fmalita@google.com Add bungeman to public API owners

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,scroggo@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-09-30 17:35:13 +00:00
Chris Bracken
6a4e814a68 iOS: Migrate FlutterHeadlessDartRunner to ARC (flutter/engine#55502)
This is a subclass of FlutterEngine, which is still manually reference counted, but that's not problematic since the headers have been migrated to ARC-safe syntax that preserves existing behaviour.

No test changes since this patch makes no semantic changes.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-30 16:47:07 +00:00
skia-flutter-autoroll
eed2aa5d8e Roll Dart SDK from c2728b947e46 to c55ae50d619a (21 revisions) (flutter/engine#55522)
https://dart.googlesource.com/sdk.git/+log/c2728b947e46..c55ae50d619a

2024-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-300.0.dev
2024-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-299.0.dev
2024-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-298.0.dev
2024-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-297.0.dev
2024-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-296.0.dev
2024-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-295.0.dev
2024-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-294.0.dev
2024-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-293.0.dev
2024-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-292.0.dev
2024-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-291.0.dev
2024-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-290.0.dev
2024-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-289.0.dev
2024-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-288.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-287.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-286.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-285.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-284.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-283.0.dev
2024-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-282.0.dev
2024-09-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-281.0.dev
2024-09-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-280.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 bdero@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-09-30 13:28:10 +00:00
skia-flutter-autoroll
42f10856aa Roll Skia from 333df70fbcdb to 5f4740b998b3 (1 revision) (flutter/engine#55518)
https://skia.googlesource.com/skia.git/+log/333df70fbcdb..5f4740b998b3

2024-09-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 3ba9cd40c151 to a97dae4c20c1 (4 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,scroggo@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-09-30 07:36:24 +00:00
skia-flutter-autoroll
f74abfe90b Roll Fuchsia Linux SDK from aD8sWPlmp-0Zh17vj... to A8lL1H_6clgBKJXHK... (flutter/engine#55517)
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 bdero@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-09-30 06:20:31 +00:00
skia-flutter-autoroll
f623607382 Roll Fuchsia Linux SDK from yX_hiCzoio2mYXAA8... to aD8sWPlmp-0Zh17vj... (flutter/engine#55512)
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 bdero@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-09-29 04:19:12 +00:00
Jonah Williams
c95afa281b Fix npe during skia dispatch of drawAtlas (flutter/engine#55497)
Colors are optionally provided, so make sure to null check the array.

Fixes https://github.com/flutter/flutter/issues/155783
2024-09-28 19:13:18 +00:00
Chris Bracken
3a116a3647 Improved description for ios_debug_sim_unopt_arm64 (flutter/engine#55498)
Make it explicit that it's an unopt engine for consistency with the
other unopt build descriptions.

Fixup to: https://github.com/flutter/engine/pull/55493
2024-09-28 11:42:08 -07:00
skia-flutter-autoroll
5f0829a87a Roll Fuchsia Linux SDK from hMFizUI--VpyjP3ht... to yX_hiCzoio2mYXAA8... (flutter/engine#55505)
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 bdero@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-09-28 03:02:22 +00:00
Harry Terkelsen
5c96bcbf1e Revert "Reland "[canvaskit] Further improve overlay optimization by splitting pictures"" (flutter/engine#55501)
Reverts flutter/engine#55464

The PR caused a large regression in a web benchmark.
2024-09-28 00:51:18 +00:00
Matan Lurey
2a0f911fef Migrate try/finally calls to addTearDown. (flutter/engine#55499)
I also removed other no-longer-enforced cruft. No behavioral changes.
2024-09-28 00:27:20 +00:00
Chris Bracken
faa6496380 iOS: Migrate FlutterAppDelegate to ARC (flutter/engine#55472)
Migrates the FlutterAppDelegate.mm translation unit to be compiled with the `-fobjc-arc` compiler flag.

No test changes since no this change includes no semantic changes, and thus covered by existing tests such as [`testReleasesWindowOnDealloc`](f6e580d09a/shell/platform/darwin/ios/framework/Source/FlutterAppDelegateTest.mm (L139-L153)).

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-27 22:44:53 +00:00
Jason Simmons
faa865b425 [Impeller] Apply some recent color filter fixes to BlendFilterContents::CreateForegroundAdvancedBlend (flutter/engine#55470)
Some recent changes affecting color filters (https://github.com/flutter/engine/pull/55411, https://github.com/flutter/engine/pull/55448) need to be done for both Porter-Duff and advanced blend modes
2024-09-27 21:42:49 +00:00
gaaclarke
9e2746c137 updated Color docstring to address equality (flutter/engine#55496)
issue: https://github.com/flutter/flutter/issues/155803

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-27 21:41:08 +00:00
Chris Bracken
1287ae153e Make arm64 iOS simulator local engine build unopt (flutter/engine#55493)
Most iOS embedder developers rely on two simulator builds:
* ios_debug_sim_unopt (for simulators on x64 hosts)
* ios_debug_sim_unopt_arm64 (for simulators on arm64 hosts)

We specify these two builds, for example, in our iOS unit test Xcode project `testing/ios/IosUnitTests/Tests/FlutterEngineConfig.xcconfig`.

Currently `local_engine.json` specifies two simulator builds:
* ios_debug_sim_unopt (for simulators on x64 hosts)
* ios_debug_sim_arm64 (for simulators on arm64 hosts)

While the x64 build specifies the `--unoptimized` flag, the arm64 build does not, which is problematic for those wanting to use both `et` and run the iOS unit tests.

This adds the `--unoptimized` flag for consistency with prevailing practice among iOS embedder developers.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-27 21:41:05 +00:00
Zuckjet
7fb25cdc23 [docs] Fix broken links in docs/ (flutter/engine#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
2024-09-27 18:28:12 +00:00
skia-flutter-autoroll
e41b0f8c87 Roll Skia from e77818421e91 to 7efc11f2ea9e (6 revisions) (flutter/engine#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
2024-09-27 17:31:57 +00:00
Jason Simmons
96d24ff033 Listen for uncaught exceptions during loading of a web test suite in Chrome (flutter/engine#55166)
Without this the test runner will hang if the compiled test is invalid and unable to execute.
2024-09-27 17:18:18 +00:00
auto-submit[bot]
fdbad460a5 Reverts "[Impeller] hash even less stuff per frame. (#55092)" (flutter/engine#55491)
Reverts: flutter/engine#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 https://github.com/flutter/engine/pull/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

![flutter_03](https://github.com/user-attachments/assets/be9c4459-f0c8-426c-b152-38861acb207f)

### After

![flutter_04](https://github.com/user-attachments/assets/1aa7cbd1-6af7-4020-8966-7e3baaef102b)

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()}");
              },
            ),
          ),
        ],
        ),
        ),
      ),
    );
  }
}
```
2024-09-27 17:09:28 +00:00
Mouad Debbar
f6e580d09a [web] Update builder json generator to reflect recent changes (flutter/engine#55307)
Recent [changes](https://github.com/flutter/engine/pull/54584) affected our builder configs, but the script that generates those builder configs wasn't updated.
2024-09-27 16:05:17 +00:00
Jonah Williams
e9a089f2fe [Impeller] hash even less stuff per frame. (flutter/engine#55092)
Follow up to https://github.com/flutter/engine/pull/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

![flutter_03](https://github.com/user-attachments/assets/be9c4459-f0c8-426c-b152-38861acb207f)

### After

![flutter_04](https://github.com/user-attachments/assets/1aa7cbd1-6af7-4020-8966-7e3baaef102b)

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()}");
              },
            ),
          ),
        ],
        ),
        ),
      ),
    );
  }
}
```
2024-09-27 15:34:07 +00:00
skia-flutter-autoroll
e7514c6a22 Roll Skia from 9ebb7c3640a1 to e77818421e91 (4 revisions) (flutter/engine#55479)
https://skia.googlesource.com/skia.git/+log/9ebb7c3640a1..e77818421e91

2024-09-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from c13e7159cdd1 to 3ba9cd40c151 (4 revisions)
2024-09-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 3eee2be83d3f to cef41cc71c85 (6 revisions)
2024-09-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8d76160610aa to 64d149df26fd (12 revisions)
2024-09-26 bungeman@google.com Allow multiple equivalent "clang version"s

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
2024-09-27 06:56:22 +00:00
Jonah Williams
741bf6c4df [ci] make opengles impeller scenario app non-bringup (flutter/engine#55474)
This is passing consistently now.
2024-09-27 03:24:34 +00:00
Jonah Williams
2062c05950 [Impeller] dont use blend shader for simple drawAtlas calls. (flutter/engine#55420)
When making a drawAtlas call with no colors, use the faster shader that does not apply blending.

Now that we're switched to experimental canvas, we can remove the copying of the display list data. The draw can directly refer to pointers from the display list structure, as the draw is processed during DL dispatching.
2024-09-27 01:27:18 +00:00
Valentin Hăloiu
18b9cd0233 Add format field to EGL surface backing store (flutter/engine#54499)
Trying to use the `GL_BGRA8_EXT` format for the EGL surface backing store on *desktop* OpenGL platforms would fail at: 82d8bc5844/shell/platform/embedder/embedder.cc (L869)

This seems to be a known issue and both the Linux and Windows embedders have some logic to pick a different format depending on the OpenGL context information:

bc8c82d157/shell/platform/windows/compositor_opengl.cc (L23-L34)

bc8c82d157/shell/platform/linux/fl_framebuffer.cc (L81-L104)

This pull-request gets rid of the hard-coded `GL_BGRA8_EXT` format and makes it configurable by adding a `format` field to the `FlutterOpenGLSurface` struct.

_Disclaimer_: This has only been tested on desktop Linux (Wayland) using the `GR_GL_RGBA8` format which seemed to work as expected.

This change is related to the recently introduced EGL surface backing store: https://github.com/flutter/flutter/issues/58363

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-27 00:23:13 +00:00
Jonah Williams
2b580e43db [Impeller] avoid reading font while parsing sktextblob. (flutter/engine#55442)
Use a faster approximation for finding out axis alignment that skips opening the font file, which is slow!

![image](https://github.com/user-attachments/assets/ae840597-b63b-4e46-b857-ac5f09e09ca8)
2024-09-26 23:21:17 +00:00
Harry Terkelsen
1e086b6311 Reland "[canvaskit] Further improve overlay optimization by splitting pictures" (flutter/engine#55464)
This enhances the overlay optimization by delaying combining pictures to get tighter bounds for the pictures that make up the scene, enabling more sophisticated optimization since we can determine if they intersect with platform views on a per-picture basis.

Fixes https://github.com/flutter/flutter/issues/149863

On a Macbook in Chrome in an example app with an infinite scrolling grid of platform views, this brings the ratio of dropped frames from 93% to 55% (roughly 4 fps to 30 fps).

This is a reland of https://github.com/flutter/engine/pull/54878 with a fix for scenes with pictures and shader masks that are eventually entirely clipped out.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-26 21:25:59 +00:00
Jonah Williams
b9d92a4d0c [Impeller] remove entity pass and re-combine canvas implementations. (flutter/engine#55019)
Shouldn't land until experimental canvas bakes a while

Major milestone along the route to making display list the impeller API. Removes the secondary compositor in entity pass. After this point, we can begin ripping out the DL->Aiks conversions and making entities more efficient.

Fixes https://github.com/flutter/flutter/issues/132417
Fixes https://github.com/flutter/flutter/issues/126386
Fixes https://github.com/flutter/flutter/issues/155114

Part of https://github.com/flutter/flutter/issues/142054
2024-09-26 21:20:23 +00:00
Matan Lurey
e778886f44 Remove and inline dependencies on build_root for a constant. (flutter/engine#55441)
Removes imports unused after https://github.com/flutter/engine/pull/55404, inlines a constant unused elsewhere.
2024-09-26 18:32:16 +00:00
auto-submit[bot]
248b86a64b Reverts "Reverts "Add SurfaceProducer#onSurfaceAvailable, deprecate onSurfaceCreated. (#55418)" (#55450)" (flutter/engine#55463)
Reverts: flutter/engine#55450
Initiated by: matanlurey
Reason for reverting: Fixed forward in https://github.com/flutter/packages/pull/7712.
Original PR Author: auto-submit[bot]

Reviewed By: {fluttergithubbot}

This change reverts the following previous change:
Reverts: flutter/engine#55418
Initiated by: bdero
Reason for reverting: [Engine->Framework roll breakage](https://github.com/flutter/flutter/issues/155727#issuecomment-2375489803)
Original PR Author: matanlurey

Reviewed By: {jonahwilliams}

This change reverts the following previous change:
Closes https://github.com/flutter/flutter/issues/155131.

Not only did I rename the method, but I also changed the contract slightly - now `onSurfaceAvailable` is _only_ invoked _after_ `onSurfaceDestroyed` has been called. The cost is a single `boolean`, and it honestly makes the API make a lot more sense than someone having to track this themselves.

/cc @johnmccutchan (OOO), and @flutter/android-reviewers.
2024-09-26 17:34:17 +00:00
Chris Bracken
d03ba742e2 cipd: add mobileprovision CIPD package (flutter/engine#55449)
Adds instructions for creating updated CIPD packages containing a new provisioning profile that goes with an updated signing certificate, for use on Chromium CI bots.

These are part of a broader set of steps required to renew our development signing certificate annually, as described in [cl/678826297](http://cl/678826297) (Google-internal).

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-26 17:21:06 +00:00
gaaclarke
015281d470 fixes color filter + advanced blends (flutter/engine#55448)
fixes https://github.com/flutter/flutter/issues/155691

I'm also renaming the test I just introduced, it was named wrong, talking about "image filter", not "color filter".

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-26 16:20:06 +00:00
skia-flutter-autoroll
81d35bf59e Roll Skia from 5c9f28d05afe to b2c5f640cb44 (1 revision) (flutter/engine#55461)
https://skia.googlesource.com/skia.git/+log/5c9f28d05afe..b2c5f640cb44

2024-09-26 kjlubick@google.com [canvaskit] Add OffscreenCanvas to some type definitions

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
2024-09-26 15:10:21 +00:00
skia-flutter-autoroll
c39e836e21 Roll Fuchsia Linux SDK from T0BbBnkQd0GfMnGQc... to hMFizUI--VpyjP3ht... (flutter/engine#55458)
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 bdero@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-09-26 09:16:06 +00:00
skia-flutter-autoroll
eae2fd256b Roll Skia from e5ce4ecbcf7b to d804bdf62b5e (1 revision) (flutter/engine#55455)
https://skia.googlesource.com/skia.git/+log/e5ce4ecbcf7b..d804bdf62b5e

2024-09-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 67cb227058fa to c13e7159cdd1 (7 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
2024-09-26 06:37:17 +00:00
auto-submit[bot]
2d9833b103 Reverts "Reland "[canvaskit] Further improve overlay optimization by splitting pictures" (#55402)" (flutter/engine#55456)
Reverts: flutter/engine#55402
Initiated by: chingjun
Reason for reverting: caused internal tests to fail.

See b/369740500 for more details.
Original PR Author: harryterkelsen

Reviewed By: {yjbanov}

This change reverts the following previous change:
This enhances the overlay optimization by delaying combining pictures to get tighter bounds for the pictures that make up the scene, enabling more sophisticated optimization since we can determine if they intersect with platform views on a per-picture basis.

Fixes https://github.com/flutter/flutter/issues/149863

On a Macbook in Chrome in an example app with an infinite scrolling grid of platform views, this brings the ratio of dropped frames from 93% to 55% (roughly 4 fps to 30 fps).

This is a reland of https://github.com/flutter/engine/pull/54878 with a fix for scenes with pictures that are eventually entirely clipped out.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-26 06:19:47 +00:00
Jonah Williams
33f2dcb7eb [iOS] remove clear color hack. (flutter/engine#54451)
Fixes https://github.com/flutter/flutter/issues/125640

This doesn't actually do anything, instead it forces opaque to false. If developers want opaque to be false, they can just set it directly.
2024-09-26 04:54:11 +00:00