25645 Commits

Author SHA1 Message Date
skia-flutter-autoroll
e57271c3eb Roll Skia from c2fada52fdc4 to a3d46fac53be (2 revisions) (flutter/engine#50171)
https://skia.googlesource.com/skia.git/+log/c2fada52fdc4..a3d46fac53be

2024-01-30 johnstiles@google.com Fix fuzzer-discovered error with dead-variable elimination.
2024-01-30 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from 2c6332b39875 to 2c49546e9502 (5 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,jmbetancourt@google.com,matanl@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-01-30 16:16:20 +00:00
skia-flutter-autoroll
6bc5af534f Roll Skia from 7dc9ba2e8c90 to c2fada52fdc4 (1 revision) (flutter/engine#50170)
https://skia.googlesource.com/skia.git/+log/7dc9ba2e8c90..c2fada52fdc4

2024-01-30 johnstiles@google.com Fix fuzzer-discovered timeout by caching fIsAllowedInES2.

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,jmbetancourt@google.com,matanl@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-01-30 15:23:55 +00:00
skia-flutter-autoroll
fe3a2a54be Roll Skia from 4e992fb3a9db to 1c0eae94fc09 (3 revisions) (flutter/engine#50167)
https://skia.googlesource.com/skia.git/+log/4e992fb3a9db..1c0eae94fc09

2024-01-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0ea24ef2eb6d to 5c2fc02b8dd5 (8 revisions)
2024-01-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 35e2efb89c92 to d321e24b76db
2024-01-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from f2e1e7139942 to 35e2efb89c92 (2 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,jmbetancourt@google.com,matanl@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-01-30 10:03:29 +00:00
skia-flutter-autoroll
1de3c43d20 Roll Fuchsia Linux SDK from Hqi_x_A9lYsY58VSn... to Z-xFM2ILZJw22eU8q... (flutter/engine#50166)
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 matanl@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-01-30 09:50:26 +00:00
Jonah Williams
6b613131d1 [Impeller] Add interface for submitting multiple command buffers at once. (flutter/engine#50139)
The Impeller Vulkan backend benefits from batching submission to the vk graphics queue. Managing this automatically is non-trivial and adds surprising/fragile thread based behavior, see: https://github.com/flutter/engine/pull/49870

Instead, introduce an impeller::CommandQueue object that command buffers must be submitted to in lieu of CommandBuffer->Submit, which has been made private.

TLDR

old
```c++
buffer->Submit();
```

new
```c++
context.GetQueue()->Submit({buffer});
```

The Metal and GLES implementations internally just call the private CommandBuffer->Submit, though there may be future opportunities to simplify here. The Vulkan implementation is where the meat is.

Aiks takes advantage of this by storing all command buffers on the aiks context while rendering a frame, and then performing one submit in aiks_context render. I don't think this will introduce any thread safety problems, as we don't guarantee much about aiks context - nor do we use it in a multithreaded context as far as I know.

Other tasks such as image upload still just directly submit their command buffers via the queue.

Fixes https://github.com/flutter/flutter/issues/141123
2024-01-30 07:48:35 +00:00
dependabot[bot]
41d20895e1 Bump actions/upload-artifact from 4.1.0 to 4.3.0 (flutter/engine#50165)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.1.0 to 4.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p>
<blockquote>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Reorganize upload code in prep for merge logic &amp; add more tests by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/504">actions/upload-artifact#504</a></li>
<li>Add sub-action to merge artifacts by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/505">actions/upload-artifact#505</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v4.3.0">https://github.com/actions/upload-artifact/compare/v4...v4.3.0</a></p>
<h2>v4.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Ability to overwrite an Artifact by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/501">actions/upload-artifact#501</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v4.2.0">https://github.com/actions/upload-artifact/compare/v4...v4.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="26f96dfa69"><code>26f96df</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/505">#505</a> from actions/robherley/merge-artifacts</li>
<li><a href="530ed2c9b8"><code>530ed2c</code></a> use correct artifact name in test</li>
<li><a href="53ef6987b3"><code>53ef698</code></a> add additional integration test for merge all behavior</li>
<li><a href="90b0f8eed8"><code>90b0f8e</code></a> add workflow to test merging</li>
<li><a href="199a58f54f"><code>199a58f</code></a> more docs</li>
<li><a href="3f353f9d9e"><code>3f353f9</code></a> ncc</li>
<li><a href="997fffa355"><code>997fffa</code></a> add merge artifact sub-action</li>
<li><a href="52899c8c02"><code>52899c8</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/504">#504</a> from actions/robherley/reorganize</li>
<li><a href="da58a3f7b2"><code>da58a3f</code></a> ncc</li>
<li><a href="1f64adb853"><code>1f64adb</code></a> fix import</li>
<li>Additional commits viewable in <a href="1eb3cb2b3e...26f96dfa69">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&package-manager=github_actions&previous-version=4.1.0&new-version=4.3.0)](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-01-30 07:26:07 +00:00
Michael Brase
c4608bbfd1 Use structured logging on Fuchsia (flutter/engine#49918)
This change migrates off of the old fuchsia logging apis to use the
structured logging apis. The initial FIDL connection is made during
global initialization (before main()) and the initial minimum log level
is queried from the system. Later on, once the main loop is initialized,
we setup an async task to listen for additional log interest changes
from the system. The advantage of doing this on the main loop is that we
avoid spawning an additional background thread in the process (the
legacy logging apis use the background thread approach).

One added benefit of this change is it reduces the size of the
dart/flutter runner far packages by about 250kb in release mode, because
libsyslog.so and libbackend_fuchsia_globals.so are no longer needed.

flutter/flutter#141924

## 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-01-29 22:26:47 -06:00
Michael Brase
5a727d93d3 Fix incorrect FML_VLOG() severity usage (flutter/engine#50118)
The FML_VLOG() macros are designed to use a positive integers, since
they pass -severity to the LogMessage constructor. The negative severity
can also cause some surprising behavior with log filtering. This change
update usages of FML_VLOG(-1) to FML_VLOG(1).

flutter/flutter#141924
2024-01-29 22:23:07 -06:00
skia-flutter-autoroll
bd50e00c69 Roll Skia from 09379d00b455 to 083c1a4d9767 (1 revision) (flutter/engine#50162)
https://skia.googlesource.com/skia.git/+log/09379d00b455..083c1a4d9767

2024-01-30 michaelludwig@google.com [graphite] Reduce DrawList::kRenderSteps to 4096

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,jacksongardner@google.com,jmbetancourt@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-01-30 02:09:25 +00:00
Matan Lurey
2c36f428af Revert: "Change how OpenGL textures are flipped in the Android embedder" (flutter/engine#50158)
Reverts #49938.

This broke `packages/packages/camera/camera/example`, and unfortunately
there is no test (in engine, framework, or packages) that would have
caught this. We also suspect (but are not sure) that this is related to
an internal customer reported bug as well (b/322750489).

---

Here is the output _pre_-revert:


![image](https://github.com/flutter/engine/assets/168174/0691feec-67a9-45b1-aa8e-1c692d09430b)

Here is the output _post_-revert:


![image](https://github.com/flutter/engine/assets/168174/016dc79a-1e44-48cf-9ba0-a61397f8e637)
2024-01-29 16:53:05 -08:00
John McCutchan
028c80cee5 Re-Re-land Manually revert TLHC optimizations (flutter/engine#50155)
- ImageReaderSurfaceProducer no longer drops frames when the producer and the consumers are up to two frames out of sync.
- Have the native C++ side of the Android external textures check if a new frame has been pushed and that the texture needs to be updated. This avoids having to schedule a task on the raster thread for each updated texture.
- Notify the engine earlier that a frame is needed when updating a TLHC texture.
- Re-land fix: Don't close the last dequeued from image reader until the dequeued image is no longer used.
2024-01-30 00:51:10 +00:00
John O'Neil
300d17912b Enable _Float16 "half-float" Functionality Only When Available. (flutter/engine#49851)
# Description:

We're cross-compiling impeller for Android, but x86 Android targets don't  have half float (`_Float16`) _ support. This change disables half float support in `impeller/geometry/half.h` for platforms where the `_Float16` builtin is lacking.

As can be seen in `half.h`, `Float16` support is enabled for all non-windows platforms, which doesn't not allow our use case.

# Issues

I can't seem to find a way to file an issue describing this, but

- [] 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.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-29 23:53:10 +00:00
skia-flutter-autoroll
100acb28ef Roll Skia from c1899b2586da to 09379d00b455 (3 revisions) (flutter/engine#50156)
https://skia.googlesource.com/skia.git/+log/c1899b2586da..09379d00b455

2024-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll ANGLE from 2f4f3dcfb8ca to 0ea24ef2eb6d (5 revisions)
2024-01-29 kjlubick@google.com Remove legacy slug deserialize behavior
2024-01-29 mike@reedtribe.org move ScalerContextBits into subclass that needs it

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,jacksongardner@google.com,jmbetancourt@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-01-29 23:43:03 +00:00
skia-flutter-autoroll
3b98e62178 Roll Skia from 0327d5b319fc to c1899b2586da (3 revisions) (flutter/engine#50152)
https://skia.googlesource.com/skia.git/+log/0327d5b319fc..c1899b2586da

2024-01-29 brianosman@google.com Remove SK_FORCE_AAA from build scripts - the flag no longer exists
2024-01-29 michaelludwig@google.com Match canvas2d sweep angle calculations in MotionMark slide, consolidate functions
2024-01-29 sky@chromium.org SkPath: special case adding path to empty path

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,jacksongardner@google.com,jmbetancourt@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-01-29 22:34:23 +00:00
skia-flutter-autoroll
4fdb8ebdf3 Roll Skia from f3b9e80d262a to 3680286e6bf4 (2 revisions) (flutter/engine#50149)
https://skia.googlesource.com/skia.git/+log/f3b9e80d262a..3680286e6bf4

2024-01-29 thestig@chromium.org Add missing SK_API exports in SkMesh.h
2024-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 735a7bd2eec1 to 9946e44cc7dd (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 brianosman@google.com,jacksongardner@google.com,jmbetancourt@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-01-29 20:17:59 +00:00
Jason Simmons
e6d660a059 Handle construction/destruction of GObject private data containing C++ objects in Linux embedder tests (flutter/engine#50022)
See https://github.com/flutter/flutter/issues/140183
2024-01-29 20:07:04 +00:00
Alexander Aprelev
a544e23d42 Include dart vm internal sources into flutter distro. (flutter/engine#50116)
Missing sources are needed for better flutter IDE debugging experience.

Fixes https://github.com/flutter/flutter/issues/128880
2024-01-29 19:37:09 +00:00
Matan Lurey
43f0f4e1ce Manually revert TLHC optimizations, holding on to width/height changes. (flutter/engine#50144)
Reverts https://github.com/flutter/engine/pull/50065 due to https://github.com/flutter/flutter/issues/142459.

[Discord](https://discord.com/channels/608014603317936148/608020293944082452/1201589744690270338):

> It looks like the failing tests are the resize tests for webview_flutter and google_maps_flutter
I can reproduce the failure locally for: https://github.com/flutter/packages/blob/main/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart#L296

I manually merged this to keep https://github.com/flutter/engine/pull/50066.
2024-01-29 19:21:05 +00:00
skia-flutter-autoroll
b1e9531fc8 Roll Skia from 675e69e83129 to 18e440859275 (2 revisions) (flutter/engine#50143)
https://skia.googlesource.com/skia.git/+log/675e69e83129..18e440859275

2024-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from d785ae7fc2b4 to 31a1592736e3 (5 revisions)
2024-01-29 kjlubick@google.com Add in several decode Bazel modules

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,jacksongardner@google.com,jmbetancourt@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-01-29 18:32:02 +00:00
skia-flutter-autoroll
b211f462e5 Roll Skia from c699bb0d86fd to eaae6d12a547 (1 revision) (flutter/engine#50140)
https://skia.googlesource.com/skia.git/+log/c699bb0d86fd..eaae6d12a547

2024-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Skia Infra from 68ae053047d5 to f2e1e7139942 (72 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,jacksongardner@google.com,jmbetancourt@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-01-29 16:48:23 +00:00
Zachary Anderson
c7327afa10 Revert Dart to Version 3.4.0-82.0.dev (flutter/engine#50131)
For failures on rolling to the framework as in https://github.com/flutter/flutter/pull/142379
2024-01-29 03:45:31 +00:00
skia-flutter-autoroll
9d16c7df3f Roll Fuchsia Linux SDK from GBTh3gOOgmndwT70X... to 5aijurFz23iIuRaMQ... (flutter/engine#50126)
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 jacksongardner@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-01-28 05:15:28 +00:00
Brandon DeRosier
0a056a5f63 [Impeller] Fix alpha management issues for advanced blends. (flutter/engine#50070)
Resolves https://github.com/flutter/flutter/issues/140970.

The issue is easy to miss in the goldens if you don't know what to look for, but it was always present in one way or another. In the "before" image below, we end up removing some of the backdrop alpha as a result of the blend, which should never happen with an advanced blend:

<img width="171" alt="image" src="https://github.com/flutter/engine/assets/919017/b0ac7c00-fba7-4c86-82c9-94b99ea400e3">

This was happening because we were lerping towards the original source alpha from the destination alpha. So in the sad smiley case, the RGB getting written to the framebuffer was exactly correct, but the alpha would end up being less than 1, which the window manager then blends against the black-initialized framebuffer.

Blending with the black background just so happened to perfectly match the appearance of the color being double-premultiplied, which is why increasing the source color's vibrancy by unpremultiplying also looks correct. But again, that only works iff the pass texture winds up being drawn to a black background, which is a rare case for offscreen passes.

Skia (Flutter documentation):
![image](https://github.com/flutter/engine/assets/919017/aeb2a7cf-50a4-460d-9247-054a86833018)

Impeller before:
<img width="398" alt="image" src="https://github.com/flutter/engine/assets/919017/fda958c5-1bd6-4272-a2b4-f8e25c42cb2f">

Impeller after:
<img width="398" alt="image" src="https://github.com/flutter/engine/assets/919017/a4ca51f8-c287-4e27-9979-44b1c91302b2">
2024-01-28 03:59:21 +00:00
Loïc Sharma
7918e2046c Revert "[Windows] Introduce egl::Surface and egl::WindowSurface" (flutter/engine#50104)
Reverts flutter/engine#49983
2024-01-27 19:15:04 +00:00
skia-flutter-autoroll
26eed181ac Roll Dart SDK from d0b48a008559 to 422d048880a8 (1 revision) (flutter/engine#50121)
https://dart.googlesource.com/sdk.git/+log/d0b48a008559..422d048880a8

2024-01-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-83.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,jacksongardner@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-01-27 13:47:26 +00:00
skia-flutter-autoroll
b2474c1319 Manual roll Dart SDK from 7ae508ee09a3 to 141ab6c14cd1 (1 revision) (flutter/engine#50115)
Manual roll requested by aam@google.com

https://dart.googlesource.com/sdk.git/+log/7ae508ee09a3..141ab6c14cd1

2024-01-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-81.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 aam@google.com,dart-vm-team@google.com,jacksongardner@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-01-27 06:07:08 +00:00
Jim Graham
0b9de40ced Cache Impeller paths in the DisplayList to amortize conversion (flutter/engine#50076)
DisplayList by default contains Skia paths stored as `SkPath` objects. Impeller must convert these to its internal `impeller::Path` format on every dispatch of the DisplayList on every frame.

This change allows Impeller to store a cached copy of its version of the path into the DisplayList and reuse that instance if it ever encounters the same DisplayList again (likely to happen as most paths come from the Framework which does a lot of work to re-use ui.Picture objects - i.e. DisplayLists).

In order to facilitate this change, `impeller::Path` was modified to have fast-copy-constructors that share the data and the PathBuilder will copy the mutable data into an immutable version in `TakePath()`.
2024-01-27 05:06:18 +00:00
auto-submit[bot]
75c60cf9f1 Reverts "[Android] Cache GPU resources using HardwareBuffer's id as key" (flutter/engine#50114)
Reverts flutter/engine#50028
Initiated by: jonahwilliams
This change reverts the following previous change:
Original Description:
Once a hardware buffer has been imported (a VkImage created for it), we don't ever need to re-create a VkImage, even when the contents change. The same hardware buffer can be identified by ID. Part of https://github.com/flutter/flutter/issues/142153

Otherwise we spend a lot of time re-creating VkImages:

![image](https://github.com/flutter/flutter/assets/8975114/700bc0e2-ab00-417e-89c5-04abe7e1db96)

Draft is here, but is currently leaky: https://github.com/flutter/engine/pull/50028
We only need something like a LRU with the max image size (seems to be 3 for me).  This does log locally that I'm not calling close correctly:

```
E/flutter ( 5580): [ERROR:flutter/shell/platform/android/image_external_texture_vk.cc(51)] Size: 3
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
```

FYI @johnmccutchan
2024-01-27 04:52:25 +00:00
skia-flutter-autoroll
1eaa303edb Roll Dart SDK from 58665e3dee42 to 7ae508ee09a3 (1 revision) (flutter/engine#50112)
https://dart.googlesource.com/sdk.git/+log/58665e3dee42..7ae508ee09a3

2024-01-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-80.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,jacksongardner@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-01-27 04:08:18 +00:00
skia-flutter-autoroll
0eb19b1849 Roll Fuchsia Linux SDK from WHlwlOwznFknNm5IS... to GBTh3gOOgmndwT70X... (flutter/engine#50111)
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 jacksongardner@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-01-27 03:40:22 +00:00
skia-flutter-autoroll
de6e20bcee Roll Skia from 6279c88b9e29 to b9b80230c87b (4 revisions) (flutter/engine#50110)
https://skia.googlesource.com/skia.git/+log/6279c88b9e29..b9b80230c87b

2024-01-27 mkember@google.com [Fuchsia] Remove old FIDL tables.c file from build
2024-01-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from f4b64e5c220e to 5b5661dc98c7
2024-01-26 nscobie@google.com Reland "[Vulkan] Add optional callback invoked on VK_ERROR_DEVICE_LOST"
2024-01-26 brianosman@google.com Remove the supersampling AA scan-converter entirely

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,jacksongardner@google.com,lovisolo@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-01-27 02:26:20 +00:00
Jonah Williams
dd99936e4f [Impeller] add missing barrier to compute tessellator. (flutter/engine#50108)
Fixes the flake on ToT


https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8757792078669575121/+/u/test:_Host_Tests_for_host_debug_unopt/stdout
2024-01-26 18:20:04 -08:00
Jonah Williams
73cf0269b1 [Android] Cache GPU resources using HardwareBuffer's id as key (flutter/engine#50028)
Once a hardware buffer has been imported (a VkImage created for it), we don't ever need to re-create a VkImage, even when the contents change. The same hardware buffer can be identified by ID. Part of https://github.com/flutter/flutter/issues/142153

Otherwise we spend a lot of time re-creating VkImages:

![image](https://github.com/flutter/flutter/assets/8975114/700bc0e2-ab00-417e-89c5-04abe7e1db96)

Draft is here, but is currently leaky: https://github.com/flutter/engine/pull/50028
We only need something like a LRU with the max image size (seems to be 3 for me).  This does log locally that I'm not calling close correctly:

```
E/flutter ( 5580): [ERROR:flutter/shell/platform/android/image_external_texture_vk.cc(51)] Size: 3
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
W/System  ( 5580): A resource failed to call HardwareBuffer.close. 
```

FYI @johnmccutchan
2024-01-27 01:50:17 +00:00
keyonghan
938e770333 Move Mac builder_cache to prod (flutter/engine#50044)
Last step of https://github.com/flutter/flutter/issues/141688
2024-01-27 01:26:17 +00:00
Matan Lurey
a50711f4f4 Enable header_guard_check (and --fix) in ci/format (flutter/engine#50102)
Closes https://github.com/flutter/flutter/issues/133415.

This includes a performance optimization for the runner itself, where
`--include=...`s are used as a base to check, versus checking _every_
file and seeing if it exists in a list. This works better with what is
expected in `ci/bin/format.dart` without any contract change.

Also added a few more functional tests of the system.
2024-01-26 16:32:14 -08:00
Dan Field
7d955bfd7c Followups to screenshot patch (flutter/engine#50096)
@gaaclarke
2024-01-26 23:43:05 +00:00
Matan Lurey
ffbe9d4939 Delete ci/docker, assuming it is not used. (flutter/engine#50103)
I tried grepping for `docker` and couldn't find anything relevant:

![Screenshot 2024-01-26 at 2 52 59 PM](https://github.com/flutter/engine/assets/168174/be75b61f-3c27-4475-8481-e096dff4197a)

(Maybe this is "secretly" used by another repo, but there is no way for me to tell that)
2024-01-26 23:36:04 +00:00
Alexander Aprelev
a280f771c4 Roll dart to 3.4.0-79.0.dev (flutter/engine#50100)
Changes since last roll
```
58665e3dee4 Version 3.4.0-79.0.dev
6b0b4d425b0 Macro. Keep FileState for macro file, refresh if its content changes.
f4c3572c18a [deps] Rev `native` packages.
f4dae883559 [co19] Roll co19 to af2ac968c0ca28b7dd94325b00a3acf569f6e858
e2aac0b8e86 [web docs] add package:web to the main sdk docs - api.dart.dev
3d4a39e9c24 Revert "Revert two CLs that remove WithoutNullSafetyMixin usages."
20a27fee111 Fix for data driven rename when class is used in as expression
ecb5fc2228a [dart2wasm] Improve dispatch table packing from 49% to 99%
cdad90dfb81 [frontend_server] frontend_server_flutter_suite
```
Requires manual roll due to ffi package move as part of `f4c3572c18a`.
2024-01-26 22:45:47 +00:00
skia-flutter-autoroll
2d4b99c197 Roll Skia from c32aa37effcc to 6279c88b9e29 (1 revision) (flutter/engine#50098)
https://skia.googlesource.com/skia.git/+log/c32aa37effcc..6279c88b9e29

2024-01-26 johnstiles@google.com Implement Transform::FindAndDeclareBuiltinStructs.

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,jacksongardner@google.com,lovisolo@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-01-26 21:56:23 +00:00
Jonah Williams
11484e2da1 [Impeller] add compute pass API for memory barriers, re-enable for Vulkan. (flutter/engine#49946)
Adds two new APIs that insert memory barriers for compute -> compute dependencies.

```c++
  // |ComputePass|
  void AddBufferMemoryBarrier() override;

  // |ComputePass|
  void AddTextureMemoryBarrier() override;
```

Also makes the ComputePassVK automatically insert a compute -> vertex dependency when encoding.  This change is sufficient to let the GPU compute implementation of draw points work on Pixel and Samsung Android devices.

For more explaination on these specific barriers, see the documentation added in this PR.

Fixes https://github.com/flutter/engine/pull/49946
2024-01-26 21:20:54 +00:00
Matan Lurey
74d78673d9 Introduce a prototype of a "header guard enforcement" tool (flutter/engine#48903)
Closes https://github.com/flutter/flutter/issues/133415.

---

This is a prototype I threw together in about 1-2 hours. It enforces and
automatically fixes header guards that don't match the [the Google C++
style
guide](https://google.github.io/styleguide/cppguide.html#The__define_Guard).
For example, here is (trimmed) output at HEAD:

```txt
line 5, column 1 of impeller/aiks/picture.h: Unexpected #pragma once
  ╷
5 │ #pragma once
  │ ^^^^^^^^^^^^
  ╵
line 5, column 1 of flow/stopwatch.h: Expected #ifndef FLUTTER_FLOW_STOPWATCH_H_
  ╷
5 │ #ifndef FLUTTER_FLOW_INSTRUMENTATION_H_
  │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ╵
The following 731 files have invalid header guards:
```
2024-01-26 13:15:56 -08:00
David Iglesias
d9ef3e2551 [web] Do not wipe the PlatformViewManager when disposing of a view. (flutter/engine#49991)
When a view gets disposed of, its rasterizer completely clears up the singleton `PlatformViewManager`. Particularly, it removes all registered platform view factories.

This is wrong because the remaining PlatformViews on the page cannot be re-rendered, and the default Platform View factories (used by `pointer_interceptor`, for example), disappear.

This PR attempts to preserve the `dispose` logic of the canvaskit rasterizer, without using the `debugClear` method of the `PlatformViewManager` (which is supposedly test-only).

## Issues

* Fixes https://github.com/flutter/flutter/issues/142094

## Tests

* Added unit-test
* Deployed demo app: https://dit-maps-tests.web.app

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-26 20:23:26 +00:00
Matan Lurey
e9e5a237f8 Finish landing missing/incorrect header guards across flutter/engine (flutter/engine#50069)
Generated by https://github.com/flutter/engine/pull/48903 (`dart ./tools/header_guard_check/bin/main.dart --fix`).

As discussed with @cbracken and @jmagman, the guards are not technically needed on the Mac/iOS code, but they (a) do not hurt and (b) still provide value if for some reason `#include` is used instead of `#import` (though I suspect we could try to add that to the tool in the future as well).
2024-01-26 19:42:36 +00:00
skia-flutter-autoroll
c2c550c395 Roll Skia from 32f6bff0f193 to e24124912cc3 (2 revisions) (flutter/engine#50093)
https://skia.googlesource.com/skia.git/+log/32f6bff0f193..e24124912cc3

2024-01-26 jvanverth@google.com Add Arcs to MotionMark slide
2024-01-26 johnstiles@google.com Add unit test demonstrating structs in a module.

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,jacksongardner@google.com,lovisolo@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-01-26 19:39:22 +00:00
skia-flutter-autoroll
4f951b2760 Roll Skia from cbdf09d69efc to 32f6bff0f193 (3 revisions) (flutter/engine#50092)
https://skia.googlesource.com/skia.git/+log/cbdf09d69efc..32f6bff0f193

2024-01-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from dcea6056ebed to 2bc97ca55761
2024-01-26 jvanverth@google.com Add MotionMark slide to Viewer.
2024-01-26 michaelludwig@google.com [graphite] Classify orthographic and perspective separately

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,jacksongardner@google.com,lovisolo@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-01-26 18:54:14 +00:00
Dan Field
ce731f3716 Fix Shell::Screenshot for Impeller (flutter/engine#50072)
Fixes https://github.com/flutter/flutter/issues/141571

Shell::Screenshot was impelemnted in a Skia-only way and would crash when invoked. Adds test coverage for the breaking path on iOS that ends up calling `FlutterView drawLayer`.
2024-01-26 17:17:32 +00:00
skia-flutter-autoroll
deefc137b5 Roll Skia from ae73baacb793 to cbdf09d69efc (1 revision) (flutter/engine#50085)
https://skia.googlesource.com/skia.git/+log/ae73baacb793..cbdf09d69efc

2024-01-26 brianosman@google.com Remove AAA/SAA flags from tools

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,jacksongardner@google.com,lovisolo@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-01-26 17:01:45 +00:00
skia-flutter-autoroll
b74aad622b Roll Skia from cc5124317c18 to ea260ac426c3 (10 revisions) (flutter/engine#50083)
https://skia.googlesource.com/skia.git/+log/cc5124317c18..ea260ac426c3

2024-01-26 robertphillips@google.com Revert "[Vulkan] Add optional callback invoked on VK_ERROR_DEVICE_LOST"
2024-01-26 brianosman@google.com Force AAA on all Skia GN builds
2024-01-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from c7ed7da64071 to d0f5a662084b (5 revisions)
2024-01-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from e822313f0e9f to 4625676a9344 (2 revisions)
2024-01-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b6eb3ddf32bb to 3f152effd05b (4 revisions)
2024-01-26 johnstiles@google.com Properly track `isBuiltin` on struct and array types.
2024-01-25 johnstiles@google.com Pass Context to SymbolTable::clone() and addArrayDimension().
2024-01-25 nscobie@google.com [Vulkan] Add optional callback invoked on VK_ERROR_DEVICE_LOST
2024-01-25 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from be3d39c26501 to e822313f0e9f (8 revisions)
2024-01-25 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll vulkan-deps from 43b6e2049a16 to b6eb3ddf32bb (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 brianosman@google.com,jacksongardner@google.com,lovisolo@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-01-26 15:17:25 +00:00
David Iglesias
9cc9f396b5 [web] Add views proxy and getInitialData. (flutter/engine#49320)
Adds a Dart API so Application/Plugin programmers can retrieve the `initialData` configuration value that may be passed when adding a view from JS in a multiViewEnabled app.

When adding a view to an app like this:

```js
flutterApp.addView({
  hostElement: someElement,
  initialData: {
    randomUUID: globalThis.crypto.randomUUID(),
  }
});
```

`initialData` can be accessed from Dart by defining a JS-interop class like:

```dart
import 'dart:js_interop';

// The JS-interop definition of the `initialData` object passed to the views of this app.
@JS()
@staticInterop
class InitialData {}

/// The attributes of the [InitialData] object.
extension InitialDataExtension on InitialData {
  external String? get randomUUID;
}
```

And then, from the code of the application:

```dart
...
  Widget build(BuildContext context) {
    final int viewId = View.of(context).viewId;
    final InitialData? data = ui_web.views.getInitialData(viewId) as InitialData?;
    return Text('${data?.randomUUID}');
  }
...
```

## Testing

Will add unit tests once naming is sorted out :)

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-26 02:36:37 +00:00
David Iglesias
4292cddf6f [web] Prevent re-rendering disposed views when the engine hot restarts. (flutter/engine#49958)
While debugging a different [issue](https://github.com/flutter/flutter/issues/141588), @elliette identified a problem with the web engine when a flutter web app hot-restarts.

TL;DR: the engine is requesting the framework to re-render a view as it tears them down, causing an assertion failure.

This fix stops listening to changes on view "disposed" events when the engine itself is being disposed, so it doesn't trigger re-renders for views that are never coming back.

## Issues

* Fixes https://github.com/flutter/flutter/issues/142030

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-26 02:26:21 +00:00