26728 Commits

Author SHA1 Message Date
skia-flutter-autoroll
6f2a94ded6 Roll Skia from 9e20a146c024 to 0fe107da5a4e (33 revisions) (flutter/engine#52129)
Roll Skia from 9e20a146c024 to 0fe107da5a4e (33 revisions)

https://skia.googlesource.com/skia.git/+log/9e20a146c024..0fe107da5a4e

2024-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 04aa78e8dbcb to ec0c320a8ca1 (2 revisions)
2024-04-15 brianosman@google.com Simplify special path type tracking
2024-04-15 jvanverth@google.com Revert "Add GN variable to disable iOS signing"
2024-04-15 kjlubick@google.com fix guard for skunicode
2024-04-15 robertphillips@google.com [graphite] Calve off PrecompileCombinations into its own helper
2024-04-15 kjlubick@google.com Expose the getClientICUData() to ParagraphBuilder
2024-04-15 bungeman@google.com Add job to test with checked-in FreeType
2024-04-15 kjlubick@google.com Fix up mac-related modules
2024-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from f184d1bfa242 to 80e2cdd73b81
2024-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from bae2b98850ac to f184d1bfa242 (7 revisions)
2024-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 0e14373fbbeb to f20a53466bc2 (10 revisions)
2024-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5171f7f9892a to 04aa78e8dbcb (1 revision)
2024-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 46248e60c4fa to 5171f7f9892a (1 revision)
2024-04-13 jcgregorio@google.com Revert "Temporarily remove iOS bots from CQ."
2024-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7922b393e32b to 46248e60c4fa (2 revisions)
2024-04-13 michaelludwig@google.com [graphite] Add Image::Copy to handle both blit and draw copies
2024-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll ANGLE from e41286e1092c to 5e790bfb16e8 (6 revisions)
2024-04-12 jvanverth@google.com [graphite] Move DrawAtlasMgr to PathAtlas.
2024-04-12 michaelludwig@google.com [graphite] Add CopyAsDraw helper to Image_Base
2024-04-12 michaelludwig@google.com [graphite] Add Device::isScratchDevice() helper
2024-04-12 michaelludwig@google.com [graphite] Add validation asserts to Device/Recorder flushing
2024-04-12 michaelludwig@google.com Reland "[graphite] Start with kDiscard load op in DrawContext; use clear op for floating-point textures"
2024-04-12 michaelludwig@google.com [graphite] Remove unique ID from Image[_YUVA] ctor, rename MakeView
2024-04-12 jvanverth@google.com Add GN variable to disable iOS signing
2024-04-12 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from a79a81394ea6 to 0e14373fbbeb (26 revisions)
2024-04-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f8fa42b1fbea to 7922b393e32b (10 revisions)
2024-04-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from cf3b51b7e14e to c150177839d1
2024-04-12 ccameron@chromium.org SkICC: Improve tonemapping precision
2024-04-12 fmalita@google.com [skottie wasm] Fix inline font decoding
2024-04-12 lehoangquyen@chromium.org Reland x2 "Graphite/Dawn: Eliminate Device::Tick() usages."
2024-04-12 kjlubick@google.com Remove SKCMS_REPLACE_IN_GOOGLE3_COMPATIBLE_WITH
2024-04-12 brianosman@google.com Another NaN guard in SkConic support code
2024-04-12 brianosman@google.com Guard against wild conics while stroking

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,chinmaygarde@google.com,michaelludwig@google.com,rmistry@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

...
2024-04-15 18:03:48 +00:00
Jonah Williams
a06a893374 [Impeller] Use Wang's formula for quad/cubic subdivision. (flutter/engine#52079)
Use a faster method to compute the number of subdivisions of quadradic and cubic curves. Unlike the adaptive subdivison we use this may give us more line segments around straight-ish parts of a curve ... but who cares! the rasterizer can handle it. This is enough to lop off about 2ms from the animated tessellation benchmark (5.5 to 3.5 on a Pixel 7), and there are some additional savings we can book by removing some of the incidental allocations. This part will be done in a follow up (https://github.com/flutter/engine/pull/52078).

### Before

![image](https://github.com/flutter/engine/assets/8975114/8dc45012-3999-4598-ac3b-713e09d5a31f)

### After

![image](https://github.com/flutter/engine/assets/8975114/8a90636f-9698-46e6-bd3f-2f47c8abdbba)

From looking at the proproptions I think this is in the 3x-5x faster range.

Code originally taken from https://github.com/google/skia/blob/main/src/gpu/tessellate/WangsFormula.h
2024-04-15 18:02:07 +00:00
Jonah Williams
fa75cef630 [Impeller] organize shaders a bit, make filter shaders use same vertex source. (flutter/engine#52113)
yuv_to_rgb_filter.vert, srgb_to_linear_filter.vert, linear_to_srgb_filter.vert, color_matrix_color_filter.vert were all indentical, so I replaced them with a single shader called ... filter.vert!
2024-04-15 18:02:05 +00:00
skia-flutter-autoroll
45e3c70690 Roll Dart SDK from ac31be3c8546 to 3c2376cb9850 (1 revision) (flutter/engine#52095)
https://dart.googlesource.com/sdk.git/+log/ac31be3c8546..3c2376cb9850

2024-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-56.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 chinmaygarde@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-04-15 17:58:07 +00:00
Jenn Magder
31f79201a8 Migrate FlutterCallbackCache and FlutterKeyboardManager to ARC (flutter/engine#51983)
Smart pointers support ARC as of https://github.com/flutter/engine/pull/47612, and the unit tests were migrated in https://github.com/flutter/engine/pull/48162.

Migrate`FlutterCallbackCache` and `FlutterKeyboardManager` from MRC to ARC.  These files do not themselves import any MRC files, making them leaf nodes in the dependency graph of MRC files.  

Doing a few at a time to make the dependency graph manageable, and to easily revert if this causes retain cycles or other memory management issues.

Part of https://github.com/flutter/flutter/issues/137801.
2024-04-15 17:58:05 +00:00
Jason Simmons
595f6bd256 Roll buildroot and set ios_use_simulator variable used by Skia GN scripts (flutter/engine#52101) 2024-04-15 17:54:04 +00:00
Jonah Williams
0951e43921 [scenarios] test disabling surface clear. (flutter/engine#52128)
I suspect that the change to clear the surface is the result of the
scenario app instability. just a guess: the screenshots looks like we're
missing the platform view. maybe the clearing of the surface is causing
an extra frame to be pushed. That frame is getting picked up in the
golden due to a race condition that is hard to hit locally


Testing disabling of this functionality in the golden test. If this pass
a real fix involves some sort of hook into the rendering to verify it
has fully completed before screenshotting.
2024-04-15 10:25:20 -07:00
skia-flutter-autoroll
c047d488db Roll Dart SDK from 3d13dbfb3284 to ac31be3c8546 (8 revisions) (flutter/engine#52084)
https://dart.googlesource.com/sdk.git/+log/3d13dbfb3284..ac31be3c8546

2024-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-55.0.dev
2024-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-54.0.dev
2024-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-53.0.dev
2024-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-52.0.dev
2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-51.0.dev
2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-50.0.dev
2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-49.0.dev
2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.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 chinmaygarde@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-04-12 21:54:04 +00:00
skia-flutter-autoroll
69e1864dab Roll Skia from 761f6f7f6250 to 9e20a146c024 (7 revisions) (flutter/engine#52085)
https://skia.googlesource.com/skia.git/+log/761f6f7f6250..9e20a146c024

2024-04-12 jcgregorio@google.com Update iOS Certs for 2024.
2024-04-12 johnstiles@google.com Fix premature loading of slide image.
2024-04-12 robertphillips@google.com [Graphite] Add BlurShader to Precompile system
2024-04-12 robertphillips@google.com Update OpenGL ES Interface autogeneration for GL_ARB_invalidate_subdata
2024-04-12 kjlubick@google.com Reland "Migrate SkParagraph's tests etc to provide SkUnicode"
2024-04-12 robertphillips@google.com [graphite] Allow PrecompileImageShader to skip cubic filtering combinations
2024-04-12 bungeman@google.com Roll HarfBuzz from 4cfc6d8e to c053e8f2 (342 commits)

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,chinmaygarde@google.com,rmistry@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-04-12 21:50:31 +00:00
Loïc Sharma
c17e21a794 [Windows] Refactor client wrapper to prepare for multi-view (flutter/engine#52073)
_This is a refactoring with no semantic changes. No new public APIs are introduced by this change._

In the future, a new constructor will be added to `FlutterViewController` to allow it to use an existing `std::shared_ptr<FlutterEngine>` to create the view controller. This updates `FlutterViewController` to store a `std::shared_ptr` and other minor tweaks.

For context, we plan to not land the new multi-window `FlutterViewController` constructor until Window's multi-window support is productionized. Until then, we will maintain a [patch](https://github.com/flutter/flutter/issues/143767#issuecomment-2050741185) for folks that want to experiment with multi-window. This change makes that patch as small as possible.

Design doc: [flutter.dev/go/desktop-multi-view-runner-apis](https://flutter.dev/go/desktop-multi-view-runner-apis)

Part of https://github.com/flutter/flutter/issues/143767
Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-12 21:45:30 +00:00
Jenn Magder
30569dc07a Migrate FlutterEmbedderKeyResponder to ARC (flutter/engine#52048)
Smart pointers support ARC as of https://github.com/flutter/engine/pull/47612, and the unit tests were migrated in https://github.com/flutter/engine/pull/48162.

Migrate `FlutterEmbedderKeyResponder` from MRC to ARC.  Clean up some header imports which made this seem like it depended on not-yet-migrated MRC files.

Part of https://github.com/flutter/flutter/issues/137801.
2024-04-12 20:09:04 +00:00
Jason Simmons
ad5a851612 Fix the Dart language version for Fuchsia's build of the args package (flutter/engine#52083)
This is required for the next Dart roll (see
https://github.com/flutter/engine/pull/52077)
2024-04-12 12:39:14 -07:00
Jenn Magder
f2152f1e0d Update iOS KeyCodeMap dictionary literal and migrate to ARC (flutter/engine#51981)
Framework template updated in https://github.com/flutter/flutter/pull/146481.  See [gen_keycodes README](https://github.com/flutter/flutter/tree/master/dev/tools/gen_keycodes ) for details.

Fixes https://github.com/flutter/flutter/issues/146480 `-Wobjc-redundant-literal-use` error.

Note `-Wobjc-redundant-literal-use` is already on for clang-tidy 
3e5e40c10a/.clang-tidy (L13) but in this case it's only true triggered when the file is compiled with ARC.  When I migrated this file to ARC as part of https://github.com/flutter/flutter/issues/137801, it triggered the error.
2024-04-11 23:59:24 +00:00
Brandon DeRosier
d09d3d5ecb [Impeller] Only set the stencil ref for StC draws. (flutter/engine#52006)
Another clean-up patch following
https://github.com/flutter/engine/pull/51992.

Also, don't rely on Entity tracked stencil height for clip coverage
tracking.
2024-04-11 16:42:25 -07:00
Chinmay Garde
83c02bfc38 Remove intermediate APKs during build process. (flutter/engine#52071)
Found that these intermediates added a non-trivial amount of artifacts to the out directory. Folks run our of space because of the size of intermediates sometimes and this just exacerbates that problem.
2024-04-11 23:21:11 +00:00
Jason Simmons
6674f823cf Clear the surface to transparent black when creating a PlatformViewWrapper (flutter/engine#52047)
Without this, an opaque black surface may briefly flash onscreen when the platform view is shown (see internal issue b/332379081)

This matches the behavior used before to the introduction of PlatformViewRenderTarget in b3945f7706

That commit moved the clearing of the surface into SurfaceTexturePlatformViewRenderTarget.  But that caused surface clearing to happen in scenarios where there was no PlatformViewWrapper, resulting in the issue seen in https://github.com/flutter/flutter/issues/141068

Later the surface clearing was removed from SurfaceTexturePlatformViewRenderTarget, causing the flashing black screen.
2024-04-11 22:05:33 +00:00
skia-flutter-autoroll
4776b2cddf Roll Skia from 08940c2e0c44 to 5101cbe5a6bb (1 revision) (flutter/engine#52066)
https://skia.googlesource.com/skia.git/+log/08940c2e0c44..5101cbe5a6bb

2024-04-11 kjlubick@google.com Enforce IWYU on headers in src/gpu/ganesh/mock

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,chinmaygarde@google.com,rmistry@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-04-11 20:33:08 +00:00
Tong Mu
dc82dbb0b9 Move Shell::Add/RemoveView to PlatformView and refine embedder API doc (flutter/engine#52003)
This PR moves the methods to add or remove views from `Shell` to
`PlatformView`. By design, the `Shell` is supposed to be a messenger
that glues classes together, while `PlatformView` is the operator that
embedders that do not use the embedder API should operate on. The
current design was made due to lack of knowledge to this design.

This also makes `PlatformView` aware of views, which might be a
prerequisite to https://github.com/flutter/engine/pull/51925.

This PR also adds some details to embedder API `AddView` and
`RemoveView`.

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] 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.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] 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-04-11 13:26:24 -07:00
巢鹏
b935b22302 [Fuchsia] Support per app present latency tracing (flutter/engine#51503)
Bug: http://b/323408867
2024-04-11 16:19:21 -04:00
Jason Simmons
e5d0cae6cd Save and restore OpenGL bindings that are changed by fl_renderer_render (flutter/engine#51887)
fl_renderer_render uses the raster thread GL context that is also used by Skia.  Skia expects that its bindings have not been changed elsewhere.
2024-04-11 19:39:03 +00:00
skia-flutter-autoroll
b1030afadd Roll Skia from 112fff965f8b to 08940c2e0c44 (1 revision) (flutter/engine#52064)
https://skia.googlesource.com/skia.git/+log/112fff965f8b..08940c2e0c44

2024-04-11 egdaniel@google.com [Graphite] Reduce calls to processReturnedResources in ResourceCache.

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,chinmaygarde@google.com,rmistry@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-04-11 19:33:23 +00:00
skia-flutter-autoroll
e665aa8997 Roll Skia from 1dc3c2c1b550 to 112fff965f8b (2 revisions) (flutter/engine#52063)
https://skia.googlesource.com/skia.git/+log/1dc3c2c1b550..112fff965f8b

2024-04-11 johnstiles@google.com Remove obsolete DSL class IDs.
2024-04-11 jamesgk@google.com Define move constructor in AutoLayerForImageFilter

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,chinmaygarde@google.com,rmistry@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-04-11 16:38:14 +00:00
Loïc Sharma
623bc22647 [Windows] Allow adding/removing views (flutter/engine#51923)
This enables the Windows embedder to render to multiple views using the new `FlutterEngineAddView` and `FlutterEngineRemoveView` embedder APIs. See: https://flutter.dev/go/multi-view-embedder-apis
 
Prepares for https://github.com/flutter/flutter/issues/144810
Part of https://github.com/flutter/flutter/issues/142845

### Sync over async

Windows expects synchronous operations: windows are created, resized, and destroyed synchronously. However, Flutter native is asynchronous due to its [threading model](https://github.com/flutter/flutter/wiki/The-Engine-architecture#threading).

This change blocks the platform thread when a non-implicit view is added or removed. See: https://flutter.dev/go/multi-view-sync-over-async

### Synchronization

The embedder and engine have separate view states that they synchronize asynchronously. The engine can present a view on the raster thread while the embedder is destroying that same view on the platform thread. This change introduces a mutex to protect against this:

1. The platform thread acquires a **shared** lock whenever it needs to access the view.
2. The platform thread acquires an **exclusive** lock to add a view to the embedder, _before_ it notifies the engine of the view
3. The platform thread acquires an **exclusive** lock to remove a view from the embedder, *after* the engine has acknowledged the view's removal but *before* the embedder destroys the view.
4. The raster thread acquires a **shared** lock to present to a view. This lock is held for the entirety of the present operation, thereby blocking the platform thread from destroying the view.

The implicit view is an important corner case. The framework/engine believe the implicit view **always** exists, even if the app is in headless mode. The embedder does not notify the engine when it destroys the implicit view. In other words, the embedder must safely ignore presents to the implicit view when it does not exist.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-11 16:10:04 +00:00
Zachary Anderson
0b6ce345a3 [et] Correctly plumb usage line length limit (flutter/engine#52039)
The `Command`s added to a `CommandRunner` don't automatically inherit
the `CommandRunner`'s usage line length limit. This PR does the
necessary plumbing. Help messages look nicer now.
2024-04-11 08:39:05 -07:00
Zachary Anderson
eef5e09ab4 Revert "Roll Dart SDK from 3d13dbfb3284 to 764bdb7d0344 (1 revision) (#52051)" (flutter/engine#52060)
This reverts commit d32c352f05a670bc2577c178ed2846779c9d4219.

Reverting for regression in `dart fix` in
https://dart.googlesource.com/sdk.git/+/e9b5a0166300800e860de1a61294c5f24b4507b3
2024-04-11 08:17:17 -07:00
yaakovschectman
5b9fd62cb4 Composite multiple layers in Windows software rendering (flutter/engine#51759)
Blend pixels per-alpha when presenting multiple layers from the software
compositor.

Part of https://github.com/flutter/flutter/issues/143375

## 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 `///`).
- [ ] 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

---------

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2024-04-11 10:25:27 -04:00
skia-flutter-autoroll
0d3b88867b Roll Skia from 2a2fe4303507 to 1dc3c2c1b550 (1 revision) (flutter/engine#52055)
https://skia.googlesource.com/skia.git/+log/2a2fe4303507..1dc3c2c1b550

2024-04-11 robertphillips@google.com [graphite] Expand DrawTypeFlags to allow finer control of options

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,chinmaygarde@google.com,rmistry@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-04-11 13:40:33 +00:00
skia-flutter-autoroll
d32c352f05 Roll Dart SDK from 3d13dbfb3284 to 764bdb7d0344 (1 revision) (flutter/engine#52051)
https://dart.googlesource.com/sdk.git/+log/3d13dbfb3284..764bdb7d0344

2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.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 chinmaygarde@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-04-11 07:02:17 +00:00
skia-flutter-autoroll
b7f3330e95 Roll Skia from 363a8ed80050 to 29f0c9d84e70 (2 revisions) (flutter/engine#52050)
https://skia.googlesource.com/skia.git/+log/363a8ed80050..29f0c9d84e70

2024-04-11 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from bae2b98850ac to df7f5a8a3885
2024-04-11 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from be41dc6ed635 to bae2b98850ac (12 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,chinmaygarde@google.com,rmistry@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-04-11 06:39:23 +00:00
skia-flutter-autoroll
0bc2f22331 Roll Skia from cd47aa5d8d15 to 28579a88aa9c (1 revision) (flutter/engine#52045)
https://skia.googlesource.com/skia.git/+log/cd47aa5d8d15..28579a88aa9c

2024-04-11 michaelludwig@google.com Revert "[graphite] Start with kDiscard load op in DrawContext; use clear op for floating-point textures"

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,chinmaygarde@google.com,rmistry@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-04-11 02:58:52 +00:00
skia-flutter-autoroll
8f7efcc8e3 Roll Dart SDK from f5ef31c467a5 to 3d13dbfb3284 (2 revisions) (flutter/engine#52046)
https://dart.googlesource.com/sdk.git/+log/f5ef31c467a5..3d13dbfb3284

2024-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-47.0.dev
2024-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.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 chinmaygarde@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-04-11 02:57:04 +00:00
skia-flutter-autoroll
41c9dfd723 Roll Fuchsia Linux SDK from imlnJ68ZziH-Lp2xk... to peYcbx9eguHcbhMP0... (flutter/engine#52043)
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 chinmaygarde@google.com,rmistry@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-04-11 00:54:37 +00:00
Jonah Williams
1c2ffb9b30 [Engine] allow --enable-asserts flag to be passed to dart vm in profile mode. (flutter/engine#52029)
Allows https://github.com/flutter/flutter/issues/145729
2024-04-10 21:53:52 +00:00
Jenn Magder
3cd96ea83c Migrate FlutterRestorationPlugin, FlutterTextureRegistryRelay, FlutterScreenAndSceneIfLoaded to ARC (flutter/engine#51984)
Smart pointers support ARC as of https://github.com/flutter/engine/pull/47612, and the unit tests were migrated in https://github.com/flutter/engine/pull/48162.

Migrate `FlutterRestorationPlugin`, `FlutterTextureRegistryRelay`, and `UIViewController+FlutterScreenAndSceneIfLoaded` from MRC to ARC.  These files do not themselves import any MRC files, making them leaf nodes in the dependency graph of MRC files.  

Doing a few at a time to make the dependency graph manageable, and to easily revert if this causes retain cycles or other memory management issues.

Part of https://github.com/flutter/flutter/issues/137801.
2024-04-10 21:53:51 +00:00
Zachary Anderson
6fe9dcece5 Manual roll ICU from a622de35ac31 to bad7ddbf9213 (7 revisions) (flutter/engine#52031)
Manual roll requested by zra@google.com


a622de35ac..bad7ddbf92

2024-03-05 dayeung@chromium.org Update TZ to 2024a 2024-02-26
dayeung@chromium.org Fix ICU update.sh script and clean up some things
in the readme 2024-02-21 dayeung@chromium.org Patch a buffer write error
in uloc_tag.cpp. 2024-02-16 syg@chromium.org Fix null termination in
revert_realpath.patch 2024-01-29 mkember@google.com [fxbug.dev] Migrate
bug numbers 2023-12-05 zcbenz@gmail.com Fix link error when
cross-compiling for Windows on Linux 2023-11-02 ftang@chromium.org Add
dayeung@ and syg@ to OWNERS file

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

To file a bug in ICU: https://github.com/unicode-org/icu
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

Co-authored-by: skia-flutter-autoroll <skia-flutter-autoroll@skia.org>
2024-04-10 14:41:38 -07:00
Jason Simmons
7b2db7971e Enable gtest-parallel for Impeller unit tests (flutter/engine#52004)
Fixes https://github.com/flutter/flutter/issues/143330
2024-04-10 21:38:02 +00:00
William Hesse
05c21a0c8e Add additional dependencies to const_finder's pubspec.yaml (flutter/engine#52033)
The Dart commit https://dart-review.googlesource.com/c/sdk/+/361781 added dependencies upon packages meta and _fe_analyzer_shared to the kernel package.  Path overrides for these need to be added to the const_finder package in flutter/engine.
2024-04-10 21:22:22 +00:00
skia-flutter-autoroll
ca215ae106 Roll Skia from 91e0c0f4bf41 to 5bbca5a30653 (3 revisions) (flutter/engine#52032)
https://skia.googlesource.com/skia.git/+log/91e0c0f4bf41..5bbca5a30653

2024-04-10 jvanverth@google.com [graphite] Split out ComputePathAtlas into its own file.
2024-04-10 michaelludwig@google.com [graphite] Start with kDiscard load op in DrawContext; use clear op for floating-point textures
2024-04-10 michaelludwig@google.com [graphite] Track aggregate protected status on YUVA images

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,chinmaygarde@google.com,rmistry@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-04-10 21:02:06 +00:00
Zachary Anderson
033e631e1c Adds iOS builds to local_engine.json (flutter/engine#52027)
Last-ish part of https://github.com/flutter/flutter/issues/145263
2024-04-10 12:57:56 -07:00
skia-flutter-autoroll
5322050cc8 Roll Skia from df6d08abb447 to 91e0c0f4bf41 (3 revisions) (flutter/engine#52026)
https://skia.googlesource.com/skia.git/+log/df6d08abb447..91e0c0f4bf41

2024-04-10 egdaniel@google.com Update gn to allow looking for shortened clang version.
2024-04-10 johnstiles@google.com Improve Windows build docs based on user feedback.
2024-04-10 bungeman@google.com Properly convert between axis definition types

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,chinmaygarde@google.com,rmistry@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-04-10 19:44:52 +00:00
Jonah Williams
53c05184b1 [Android] post image task to main handler. (flutter/engine#52025)
Fixes https://github.com/flutter/flutter/issues/146465
2024-04-10 19:43:23 +00:00
Zachary Anderson
2163fc1bc9 [et] Adds --lto flag to build. Plumbs verbose flag differently. (flutter/engine#52021)
This PR does two things. First, in many of the `ci` builds, LTO is
enabled by default. This is usually not what we want when doing local
builds, so this PR adds an `--lto` flag to the `build` command which is
disabled by default, causing `--no-lto` to be passed to GN. When `--lto`
is passed to the `build` command, `--lto` is passed to GN, which results
in the build using LTO.

Second, this PR eagerly parses the `--verbose` flag out of the command
line so that help messages can optionally show less information. In
particular, in this PR, `ci` and `web_test` builds are only displayed by
`help build` when `--verbose` is passed to the `help` command. There's
some extra text in the help message as well indicating that passing
`--verbose` to `help` will show more builds.
2024-04-10 11:09:14 -07:00
skia-flutter-autoroll
71f997be55 Roll Dart SDK from 78174b41ab0f to 393a24d37b39 (8 revisions) (flutter/engine#52020)
https://dart.googlesource.com/sdk.git/+log/78174b41ab0f..393a24d37b39

2024-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-44.0.dev
2024-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-43.0.dev
2024-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-42.0.dev
2024-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-41.0.dev
2024-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-40.0.dev
2024-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-39.0.dev
2024-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-38.0.dev
2024-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-37.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 chinmaygarde@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-04-10 16:42:23 +00:00
Zachary Anderson
49ba863b6d Use RBE in mac builds in presubmit but not postsubmit (flutter/engine#52018)
This also disables goma in both pre- and post-submit for mac builds.
2024-04-10 09:25:06 -07:00
skia-flutter-autoroll
0aa1a1ec26 Roll Skia from 2135d686708b to df6d08abb447 (1 revision) (flutter/engine#52017)
https://skia.googlesource.com/skia.git/+log/2135d686708b..df6d08abb447

2024-04-10 michaelludwig@google.com [graphite] Simplify copies and special-images around Image

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,chinmaygarde@google.com,rmistry@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-04-10 15:14:26 +00:00
skia-flutter-autoroll
8e223ca607 Roll Skia from 14dd5528b318 to 1ea5f3cd71cb (1 revision) (flutter/engine#52014)
https://skia.googlesource.com/skia.git/+log/14dd5528b318..1ea5f3cd71cb

2024-04-10 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from e6b3a4e3da47 to be41dc6ed635 (11 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,chinmaygarde@google.com,rmistry@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-04-10 06:00:22 +00:00
godofredoc
4e961f3417 Add postsubmit overrides for mac builders. (flutter/engine#51385)
Mac builds on postsubmit will be built without goma/rbe. This is landing the configurations required to build without RBE once the migration to RBE is complete.

Bug: https://github.com/flutter/flutter/issues/136570

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-10 03:46:37 +00:00
Jim Graham
539854e985 [Impeller] NumberNear implements precision-based comparisons (flutter/engine#52001)
Fixes https://github.com/flutter/flutter/issues/146455

Fuzzy comparisons based on the IEEE floating precision of the numbers being compared will help ensure that comparing large numbers and very small numbers (in unit tests) both have similar accuracy.
2024-04-10 02:10:39 +00:00
skia-flutter-autoroll
837427e102 Roll Skia from 3e3f28d64b2b to 14dd5528b318 (2 revisions) (flutter/engine#52011)
https://skia.googlesource.com/skia.git/+log/3e3f28d64b2b..14dd5528b318

2024-04-10 brianosman@google.com Remove SkDrawLooper entirely
2024-04-10 lokokung@google.com [wgpu-headers] Manually lose the device before losing the Instance.

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,chinmaygarde@google.com,rmistry@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-04-10 01:48:34 +00:00
Chinmay Garde
cfaa074fc8 [Impeller] Use type safe masks for HardwareBufferUsage. (flutter/engine#52008)
These were added to //impeller/base/mask.h recently. No change in functionality. Removes a bunch of casts.
2024-04-10 01:43:12 +00:00