27064 Commits

Author SHA1 Message Date
skia-flutter-autoroll
ae61fe72c4 Roll Fuchsia Linux SDK from RDVdjRvCxkJh2NLxS... to NbCi2ETfLHPLLB-JV... (flutter/engine#52702)
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 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-05-10 10:18:33 -07:00
gaaclarke
2d6f998e85 Fixed constness of display list storage. (flutter/engine#52705)
Previously you could have a const DisplayListStorage and still have
access to editing it. This fixes that.

testing: refactor only

## 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-05-10 09:10:33 -07:00
Zachary Anderson
9d6bf0d3b0 Revert "Various documentation improvements (#52600)" (flutter/engine#52709)
Reverts flutter/engine#52623

Reason for revert is noted on the PR.
2024-05-10 07:54:51 -07:00
skia-flutter-autoroll
2251766b0f Manual roll Dart SDK from b7cad2edae4b to 01121c008f4d (3 revisions) (flutter/engine#52706)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/b7cad2edae4b..01121c008f4d

2024-05-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.5.0-141.0.dev
2024-05-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.5.0-140.0.dev
2024-05-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.5.0-139.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,zra@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-05-10 07:02:23 -07:00
Kihara, Takuya
fbab4c0057 [iOS] Fix App crash when use WebView with iOS VoiceOver (flutter/engine#52484)
This PR fix the issue [flutter/flutter
#140528](https://github.com/flutter/flutter/issues/140528).

This fix cleans up declarations regarding `retain` and `release`.
`flutterAccessibilityContainer` needs to be managed in
`FlutterPlatformViews.mm`, and problems will occur if `retain` or
`release` is performed in `SemanticsObject.mm`.

This fix is checked by the `testFlutterPlatformViewSemanticsContainer`
function in the `SemanticsObjectTest.mm`.
The result is not changed.

## 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.
- [ ] 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-05-09 20:40:41 -07:00
Ian Hickson
f0f469735d Various documentation improvements (#52600) (flutter/engine#52623)
This is a reland of https://github.com/flutter/engine/pull/52600 which
was reverted in https://github.com/flutter/engine/pull/52607 due to a
typo.
2024-05-09 15:33:52 -07:00
Yegor
de5ce1e4dc [web] scale semantic text elements to match the desired focus ring size (flutter/engine#52586)
Due to https://g-issues.chromium.org/issues/40875151?pli=1&authuser=0
and a lack of an ARIA role for plain text nodes (after the removal of
`role="text"` in WebKit recently), there is no way to customize the size
of the screen reader focus ring for a plain text element. The focus ring
always tightly hugs the text itself.

A workaround implemented in this PR is to match the size of the text
exactly to the desired focus ring size. This is done by measuring the
size of the text in the DOM, then scaling it both vertically and
horizontally to match the size requested by the framework for the
corresponding semantics node.

To avoid serious performance penalty, the following optimizations were
included:

- Nodes that are satisfiable by just an `aria-label` do not need this
workaround, and are skipped.
- Nodes that must use DOM text (e.g. links, buttons) but have ARIA roles
that size them based on the element, do not need this workaround, and
are skipped.
- Nodes that do need the workaround are first measured in a single
batch, incurring only one page reflow. Then they are all updated in a
single batch without taking any further DOM measurements. This ensures
that no matter how many text spans are rendered, only one reflow is
needed to measure them all.
- Nodes that need the workaround cache the previous label and size, and
if they do not change, the size is not updated.

Other changes:

- Rename `LeafLabelRepresentation` to `LabelRepresentation`, because
labels also apply to non-leaf nodes (e.g. `aria-label` may be applied to
a container).
- Rename `labelRepresentation` to `preferredLabelRepresentation`,
because a particular label representation cannot be guaranteed. A node
that currently looks like a leaf text node may turn out to be an empty
container, and after adding children to it must switch from using DOM
text to an `aria-label`. Therefore, role manager only specify a
preference, but `LabelAndValue` ultimately decides which representation
is usable.
- Introduce `void initState()` in `PrimaryRoleManager` to be used for
one-time initialization of state and DOM structure after all objects
that are in a one-to-one relationship with each other create all the
references needed to establish that relationship (`PrimaryRoleManager`,
`SemanticsObject`, `element`, `owner`, etc). This is not available at
the time the constructors are called.

Fixes https://github.com/flutter/flutter/issues/146774.
2024-05-09 15:23:22 -07:00
gaaclarke
06ee68755c [Impeller] Adds impeller display list golden tests (flutter/engine#52690)
issue https://github.com/flutter/flutter/issues/146941

## 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-05-09 13:34:46 -07:00
Matan Lurey
8ce9cf6200 When et is not attached to a terminal, still split lines for status updates. (flutter/engine#52681)
For illustrative purposes:

```sh
$ et build | grep '.*'
```

... should still get line-per-line status updates, but it does not without this patch.

It's hard to write tests because of global state, so I've declined to do so at the moment.

Closes https://github.com/flutter/flutter/issues/147903.
2024-05-09 18:09:05 +00:00
gaaclarke
d1b24afe05 updated analysis exclusion (flutter/engine#52699)
related issue https://github.com/Dart-Code/Dart-Code/issues/5101

## 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-05-09 10:43:37 -07:00
Jonah Williams
b40b5418e6 [Impeller] Size AHB swapchain based on vk surface properties. (flutter/engine#52692)
Pixel 4 uses 4 images, 7 Pro uses ... 6 actually.

https://github.com/flutter/flutter/issues/147721
2024-05-09 17:24:05 +00:00
skia-flutter-autoroll
806db3d5b8 Roll Skia from 2a368794c73e to 2813bc21202e (2 revisions) (flutter/engine#52697)
https://skia.googlesource.com/skia.git/+log/2a368794c73e..2813bc21202e

2024-05-09 kjlubick@google.com Add stub target for pdf's harfbuzz dep
2024-05-09 jmbetancourt@google.com Clean ALooper logs in viewer android application

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,egdaniel@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 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-05-09 16:27:37 +00:00
skia-flutter-autoroll
c478aac933 Roll Skia from aa82350f9cf4 to 2a368794c73e (1 revision) (flutter/engine#52696)
https://skia.googlesource.com/skia.git/+log/aa82350f9cf4..2a368794c73e

2024-05-09 ccameron@chromium.org SkJpegMetadataDecoderImpl: Clean up Apple gainmap rendering

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,egdaniel@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 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-05-09 15:25:12 +00:00
skia-flutter-autoroll
930f044551 Roll Skia from f4e251cc8407 to 68ab865c016f (2 revisions) (flutter/engine#52694)
https://skia.googlesource.com/skia.git/+log/f4e251cc8407..68ab865c016f

2024-05-09 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 8f1e9f35e615 to 23344086b8f1 (16 revisions)
2024-05-09 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 825a4029e916 to 996de99d5bf7 (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 brianosman@google.com,egdaniel@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 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-05-09 05:58:34 +00:00
skia-flutter-autoroll
4c21f59d9b Roll Skia from 4e83fac12783 to 91088addfbd9 (1 revision) (flutter/engine#52691)
https://skia.googlesource.com/skia.git/+log/4e83fac12783..91088addfbd9

2024-05-08 ccameron@chromium.org SkJpegMetadataDecoder: Clean-up and de-duplicate code

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,egdaniel@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 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-05-08 23:49:22 +00:00
skia-flutter-autoroll
f4d48ea545 Roll Skia from df446841e3cd to 4e83fac12783 (2 revisions) (flutter/engine#52688)
https://skia.googlesource.com/skia.git/+log/df446841e3cd..4e83fac12783

2024-05-08 robertphillips@google.com Revert "[graphite] Make MatrixConvolutionImageFilter stably keyed"
2024-05-08 jvanverth@google.com [graphite] Include Recording creation & submit in Viewer flush times

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,egdaniel@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 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-05-08 22:45:52 +00:00
Jenn Magder
d4f698b036 Fix UIVisualEffectView leak in platform view filter (flutter/engine#52591)
I found this while migrating `FlutterPlatformViews_Internal.mm` to ARC https://github.com/flutter/engine/pull/52535.  I'll land this first.

```objc
  if (_backdropFilterView != visualEffectView) {
    _backdropFilterView = [visualEffectView retain];
  }
```
should instead be something like:
```objc
  if (_backdropFilterView != visualEffectView) {
    id oldBackdropFilterView = _backdropFilterView;
    _backdropFilterView = [visualEffectView retain];
    [oldBackdropFilterView release];
  }
```
But that's already what the built-in MRC `nonatomic, retain` property setter does, so use that instead.

Added a test that passes on this PR and fails on main.
2024-05-08 22:40:16 +00:00
Jonah Williams
6bdc2f067f [Impeller] initialize ahb swapchain with max entries. (flutter/engine#52670)
The regression on the complex layout app is due to lazily constructing the AHBs on the first few frames:

https://flutter-flutter-perf.skia.org/e/?begin=1712175722&end=1715166324&queries=device_type%3DPixel_7_Pro%26sub_result%3D90th_percentile_frame_rasterizer_time_millis%26sub_result%3D99th_percentile_frame_rasterizer_time_millis%26sub_result%3Daverage_frame_rasterizer_time_millis%26sub_result%3Dworst_frame_rasterizer_time_millis%26test%3Dcomplex_layout_scroll_perf_impeller__timeline_summary&requestType=0&selected=commit%3D40701%26name%3D%252Carch%253Dintel%252Cbranch%253Dmaster%252Cconfig%253Ddefault%252Cdevice_type%253DPixel_7_Pro%252Cdevice_version%253Dnone%252Chost_type%253Dlinux%252Csub_result%253Dworst_frame_rasterizer_time_millis%252Ctest%253Dcomplex_layout_scroll_perf_impeller__timeline_summary%252C

Lets try eager initialization like the KHR swapchain does.
2024-05-08 22:31:28 +00:00
skia-flutter-autoroll
b46227a653 Roll Skia from 76f88de905be to df446841e3cd (3 revisions) (flutter/engine#52686)
https://skia.googlesource.com/skia.git/+log/76f88de905be..df446841e3cd

2024-05-08 michaelludwig@google.com [graphite] Move CopyAsDraw into TextureUtils
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from 6d0d7269a8c9 to 8ecbf179f1e3
2024-05-08 bungeman@google.com [fontations] Use %zu instead of %ld in test

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,egdaniel@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 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-05-08 21:41:24 +00:00
Chinmay Garde
25fbc36567 Reland "Add host_profile_arm64 and host_release_arm64 local engine configurations." (flutter/engine#52633)
Adds --no-lto.

This reverts commit b607f660d1ad408357a9512631b61c810c13826a.
2024-05-08 21:01:08 +00:00
skia-flutter-autoroll
06a2705534 Roll Fuchsia Linux SDK from 27ZAbzJkEopmu0Emp... to RDVdjRvCxkJh2NLxS... (flutter/engine#52685)
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 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-05-08 20:43:16 +00:00
skia-flutter-autoroll
e72a251ffd Roll Skia from 4019d8957cff to 76f88de905be (3 revisions) (flutter/engine#52684)
https://skia.googlesource.com/skia.git/+log/4019d8957cff..76f88de905be

2024-05-08 kjlubick@google.com Run gofmt
2024-05-08 jmbetancourt@google.com replace deprecated ALooper_pollAll calls with pollOnce
2024-05-08 egdaniel@google.com [Graphite] Add support for setting texture labels on backends.

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,egdaniel@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 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-05-08 20:34:14 +00:00
Chinmay Garde
ba93e2deae [Impeller] Start a glossary. (flutter/engine#52641)
Fixes https://github.com/flutter/flutter/issues/107609
2024-05-08 13:16:38 -07:00
skia-flutter-autoroll
62d04789cf Roll Skia from d965fc1fd319 to 4019d8957cff (2 revisions) (flutter/engine#52682)
https://skia.googlesource.com/skia.git/+log/d965fc1fd319..4019d8957cff

2024-05-08 brianosman@google.com Reland "Update clang_win and win_toolchain assets"
2024-05-08 kjlubick@google.com Fix experimental use of generate_cpp_files_for_headers

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,egdaniel@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 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-05-08 19:33:22 +00:00
gaaclarke
104eb98e62 Revert 7130c5c3b3f16d549bca6b81c51c751780c454d4 (flutter/engine#52680)
reverts https://github.com/flutter/engine/pull/52526
fixes https://github.com/flutter/flutter/issues/147989

That PR has broken playgrounds.  It's non essential so we can revert it an bdero can take a look whenever he gets another chance.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-05-08 18:27:32 +00:00
skia-flutter-autoroll
45d12f0166 Roll Skia from d8427844b843 to d965fc1fd319 (4 revisions) (flutter/engine#52679)
https://skia.googlesource.com/skia.git/+log/d8427844b843..d965fc1fd319

2024-05-08 michaelludwig@google.com [graphite] Add child DrawTasks to DrawContexts when drawn; track pending reads
2024-05-08 robertphillips@google.com [graphite] Make MatrixConvolutionImageFilter stably keyed
2024-05-08 michaelludwig@google.com [graphite] Don't instantiate budgeted Surfaces immediately
2024-05-08 kjlubick@google.com Update rules to enforce IWYU in the modular build

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,egdaniel@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 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-05-08 18:21:04 +00:00
Jonah Williams
2cdd45bfd9 [Impeller] require and use backpressure for AHB swapchain. (flutter/engine#52676)
I think we might be buffer stuffing on the A02s specifically. Though I don't know if this will just "fix" it by turning off the swapchain for that device.

https://github.com/flutter/flutter/issues/147721
2024-05-08 17:59:55 +00:00
skia-flutter-autoroll
06f83e8d74 Roll Skia from c7794fee8063 to d8427844b843 (2 revisions) (flutter/engine#52671)
https://skia.googlesource.com/skia.git/+log/c7794fee8063..d8427844b843

2024-05-08 michaelludwig@google.com [graphite] Delete duplicate null check/warning
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e70a70873c7b to cb509807efbe (1 revision)

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,egdaniel@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 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-05-08 16:08:23 +00:00
skia-flutter-autoroll
04ec74e561 Manual roll Dart SDK from a9cf6a411c71 to b7cad2edae4b (7 revisions) (flutter/engine#52669)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/a9cf6a411c71..b7cad2edae4b

2024-05-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-138.0.dev
2024-05-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-137.0.dev
2024-05-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-136.0.dev
2024-05-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-135.0.dev
2024-05-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-134.0.dev
2024-05-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-133.0.dev
2024-05-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-132.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,zra@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-05-08 15:56:04 +00:00
Jonah Williams
e391972983 [Impeller] Update BlitPass::AddCopy to use destination_region instead of origin for buffer to texture copies. (flutter/engine#52555)
Based on https://github.com/flutter/engine/pull/52510

Work towards https://github.com/flutter/flutter/issues/138798

Change IPoint destination_origin to IRect destination_region, which allows us to specify an area smaller than the entire texture to replace. This will eventually allow us to only upload individual glyphs. This fixes the cubemap issue I previously hit: each face needs to track initialization separately.
2024-05-08 15:46:06 +00:00
Jim Graham
13d64bc737 DisplayListBuilder internal reorganization with better rendering op overlap detection (flutter/engine#52646)
This commit makes some long-needed internal improvements to the way that the DisplayListBuilder manages its per-save/saveLayer data. The information for layer bounds and matrix/clips is now maintained in the layer info structure itself rather than shared across a number of stack structures which required careful alignment of the 3 different stacks and made it more difficult to compare and update adjacent layers during save and restore operations.

The new code stores all information for a layer within a single structure and the save and restore operations can be more clear about which information they are getting or setting in the current and parent layers.

In addition, the layer bounds accumulations were updated to have a more flexible algorithm for detecting overlap of rendering operations for the opacity peephole optimization. Previously, more than one rendering op on a layer would prevent opacity peephole optimizations, but now the condition will be recognized until the first rendering op that overlaps the bounds of the previous rendering operations. This will help for some potentially common cases of 2 non-overlapping ops or even a list of rendering operations laid out in a row.
2024-05-08 15:23:48 +00:00
Zachary Anderson
f1ac521788 Roll reclient forward (flutter/engine#52632)
For https://github.com/flutter/flutter/issues/147750.

Depends on https://github.com/flutter/buildroot/pull/852.

This PR rolls forward reclient, the buildroot, and our RBE configs. The
new RBE configs do a few things. First they default the exec strategy to
`racing`. Second, they add a local wrapper script that passes the
correct value for `-fdebug-prefix-map` in both the local and remote
cases. Finally, they remove the canonicalization of the build's working
directory, so that the remote working directory will have the same name
as the local working directory. This solves the issue where the build
working directory contained a mysterious `set_by_reclient/a` component.
2024-05-08 08:07:25 -07:00
skia-flutter-autoroll
76b94a4bc4 Roll Skia from 2319f1ae8fe4 to c7794fee8063 (20 revisions) (flutter/engine#52668)
https://skia.googlesource.com/skia.git/+log/2319f1ae8fe4..c7794fee8063

2024-05-08 briansalomon@gmail.com [graphite] handle drawPath with oval/rrect as special case
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 825a4029e916 to 25a2a685e52e
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from be0e106b41c7 to 825a4029e916 (7 revisions)
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 35243cd3490b to 8f1e9f35e615 (30 revisions)
2024-05-08 michaelludwig@google.com [graphite] Let Surface automatically generate mipmaps when rendering a picture image
2024-05-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5fe3cf4db2e6 to e70a70873c7b (1 revision)
2024-05-07 scroggo@google.com Change CtsEnforcement for SurfaceAsyncReadPixels
2024-05-07 nicolettep@google.com [graphite] Add immutable sampler attribute to DescriptorData
2024-05-07 jvanverth@google.com Revert "[graphite] Fix use of linearFilterInset in texture shader."
2024-05-07 nicolettep@google.com [graphite] Add YCbCr GM to graphite
2024-05-07 brianosman@google.com Revert "Update clang_win and win_toolchain assets"
2024-05-07 jamesgk@google.com [graphite] Disable analytic blur for rrects
2024-05-07 brianosman@google.com Update clang_win and win_toolchain assets
2024-05-07 egdaniel@google.com [Graphite] Fix build for labels.
2024-05-07 johnstiles@google.com Add parentheses to permit constant folding.
2024-05-07 jvanverth@google.com [graphite] Fix use of linearFilterInset in texture shader.
2024-05-07 egdaniel@google.com [Graphite] Set labels on proxies for specific usages.
2024-05-07 kjlubick@google.com Add missing tag for zlib.h #include
2024-05-07 michaelludwig@google.com [graphite] Avoid unnecessary copy from makeImageSnapshot() in picture-shader rendering
2024-05-07 johnstiles@google.com Fix PathKit test.

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,egdaniel@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 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-05-08 14:55:33 +00:00
Jonah Williams
0fefa45af5 [Impeller] support requires readback from onscreen texture in experimental canvas. (flutter/engine#52640)
This doesn't yet add support for backdrop filters or emulated advanced blends, but will allow them to work if `surface_frame.framebuffer_info().supports_readback` is true.

part of https://github.com/flutter/flutter/issues/142054
2024-05-08 05:06:09 +00:00
Jonah Williams
a9b2bf0627 [Impeller] bump image count to 3 (flutter/engine#52650)
From testing on a Pixel 7 pro, we get constant destruction of buffers at 2, but not at 3, 4, or 5.

I suspect the problem is that when we stop pumping frames, we need to be able to hold all buffers that were in use. Since we support 2 frames in flight while one is encoding, that gives us 3 maximum buffers.
2024-05-08 03:04:17 +00:00
Chinmay Garde
23603387ff [Impeller] In the AHB swapchain, make the wait stages be non-temporaries. (flutter/engine#52644)
The reference to these was garbage in the submit info.
2024-05-08 00:10:04 +00:00
Jonah Williams
d790b88806 [Impeller] Support copy from buffer to texture for GLES blitpass, use blit pass to set contents in glyph atlas. (flutter/engine#52510)
part of https://github.com/flutter/flutter/issues/138798

Works around https://github.com/flutter/flutter/issues/144498 for the glyph atlas.

Adds BlitPass::AddCopy implementation for GLES, which is mostly a copy of Texture::SetContents. Updates the glyph atlas to use a blit pass and device private textures instead of set contents (which is unsafely on Metal).

This also removes DeviceBuffer::AsTexture, which isn't actually used anywhere - and creates a linear texture on iOS (and fails with an unsupported API on simulators).

Note that in general, we don't actually have support for hostVisible textures on GLES _or_ Vulkan. Instead, VMA is falling back to device private textures. We may want to, separately, remove the concept of host visible from textures - and similarly remove the concept of transient from buffers.
2024-05-08 00:02:22 +00:00
Chinmay Garde
1a916a2a18 [Impeller] Disable aging in the AHB swapchains and use FILO. (flutter/engine#52637)
The aging was causing elevated 9x percentile times after a long duration where no frames were rendered. The FILO queue behavior gives the fences the most time possible to signal and cause fewer GPU stalls. There are already no CPU stalls.
2024-05-07 23:15:04 +00:00
Matan Lurey
05ff169def Move Logger.test to an injected log output versus leaky abstraction. (flutter/engine#52639)
Previously, `Logger.test` was a leaky abstraction that stored a `@visibleForTesting` variable that was sometimes unused. It saved a few lines of code for tests, but doesn't seem necessary, so I swapped it out for a callback.
2024-05-07 22:56:17 +00:00
Zachary Anderson
676001e40a Fix links in rbe.md (flutter/engine#52635) 2024-05-07 22:05:05 +00:00
Matan Lurey
ea78cc7551 Move setting the logging level into the Logger constructor, refactor. (flutter/engine#52624)
Based on @zanderso's feedback here: https://github.com/flutter/engine/pull/52619#discussion_r1592868979.

I think this is the most succinct way to setup logging, it also doesn't seem to make sense to allow the level to be configured at runtime, so boom.
2024-05-07 21:00:54 +00:00
auto-submit[bot]
b607f660d1 Reverts "Add host_profile_arm64 and host_release_arm64 local engine configurations. (#52620)" (flutter/engine#52630)
Reverts: flutter/engine#52620
Initiated by: zanderso
Reason for reverting: Builds timing out in post submit. I think we should try relanding this with `--no-lto` passed to `gn`.
Original PR Author: chinmaygarde

Reviewed By: {zanderso}

This change reverts the following previous change:
These are used on macOS hosts during local engine development.
2024-05-07 20:34:51 +00:00
Matan Lurey
8618834019 Move verbose to environment.verbose, pass to ninja --verbose if provided. (flutter/engine#52619)
Closes https://github.com/flutter/flutter/issues/147894.

While doing this PR I realized we were basically passing `(bool verbose, Envrionment)` as a tuple around, so I just moved the concept _into_ `Environment` directly, and made the necessary code changes across the tool and tests.

To clarify, this does _not_ mimic the output of `ninja --verbose` _today_, because we also don't stream the output directly, and instead do terminal magic. Combined with a hypothetical fix for https://github.com/flutter/flutter/issues/147903, this would work exactly the same as before.

/cc @loic-sharma @johnmccutchan
2024-05-07 19:07:31 +00:00
Chinmay Garde
efda632b5e Add host_profile_arm64 and host_release_arm64 local engine configurations. (flutter/engine#52620)
These are used on macOS hosts during local engine development.
2024-05-07 18:52:22 +00:00
Chinmay Garde
0e83a760ef [Impeller] Wait for the previous AHB texture to be fully recyclable. (flutter/engine#52588)
The Android surface transaction completion handler documentation states:

```
Buffers which are replaced or removed from the scene in the transaction
invoking this callback may be reused after this point.
```

However, this is NOT sufficient. One also needs to be obtain the previous release fence and perform a wait for the buffer to be safely reusable.

This patch adds a GPU side wait for this fence using available extensions.

Fixes https://github.com/flutter/flutter/issues/147758
2024-05-07 18:33:50 +00:00
Jason Simmons
5b7970fdb3 Manual Skia roll to 2319f1ae8fe42525f8b6a1969a1cee67bdbee290 (flutter/engine#52615)
This commit added a new source file (src/codec/SkJpegMetadataDecoderImpl.cpp)
2024-05-07 18:21:05 +00:00
Jonah Williams
96584fbd2b [Impeller] allow cloning a rectangle packer with an increased size. (flutter/engine#52563)
Work towards https://github.com/flutter/flutter/issues/138798

Allow cloning a rectangle packer with all existing skylines preserved, but the size increased. This will allow us to preserve the positioning and state of all glyphs when the atlas size is increased, which is necessary for the "blit contents to top right of new texture" approach for improving append performance.
EDIT: I mean top left!
2024-05-07 18:09:54 +00:00
auto-submit[bot]
9c144b5c05 Reverts "Various documentation improvements (#52600)" (flutter/engine#52607)
Reverts: flutter/engine#52600
Initiated by: zanderso
Reason for reverting: Failing to roll to the framework on a snippet analysis failure: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8748612253464522177/+/u/run_test.dart_for_analyze_shard_and_subshard_None/stdout
Original PR Author: Hixie

Reviewed By: {jonahwilliams}

This change reverts the following previous change:
No description provided.
2024-05-07 14:09:47 +00:00
Ian Hickson
a6ad5a09b2 Various documentation improvements (flutter/engine#52600) 2024-05-07 06:59:54 +00:00
dependabot[bot]
6b63ba17bf Bump actions/checkout from 4.1.4 to 4.1.5 (flutter/engine#52599)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v4.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Update NPM dependencies by <a href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be <code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4.1.4...v4.1.5">https://github.com/actions/checkout/compare/v4.1.4...v4.1.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44c2b7a8a4"><code>44c2b7a</code></a> README: Suggest <code>user.email</code> to be `41898282+github-actions[bot]<a href="https://github.com/users"><code>@​users</code></a>.norepl...</li>
<li><a href="8459bc0c7e"><code>8459bc0</code></a> Bump actions/upload-artifact from 2 to 4 (<a href="https://redirect.github.com/actions/checkout/issues/1695">#1695</a>)</li>
<li><a href="3f603f6d5e"><code>3f603f6</code></a> Bump actions/setup-node from 1 to 4 (<a href="https://redirect.github.com/actions/checkout/issues/1696">#1696</a>)</li>
<li><a href="fd084cde18"><code>fd084cd</code></a> Bump github/codeql-action from 2 to 3 (<a href="https://redirect.github.com/actions/checkout/issues/1694">#1694</a>)</li>
<li><a href="9c1e94e0ad"><code>9c1e94e</code></a> Update NPM dependencies (<a href="https://redirect.github.com/actions/checkout/issues/1703">#1703</a>)</li>
<li>See full diff in <a href="0ad4b8fada...44c2b7a8a4">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=4.1.4&new-version=4.1.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>
2024-05-07 06:39:06 +00:00