29552 Commits

Author SHA1 Message Date
Michael Goderbauer
24708c00d4 Reland 'Delete stale package_config.json in gclient sync hook' (flutter/engine#57218)
https://github.com/flutter/engine/pull/57195 was reverted because it tried to delete non-existing files. This adds a check to only attempt to delete the file if it exists.
2024-12-16 18:48:07 +00:00
MyriadSoft
475d981108 docs: Fix RGB565 format documentation and bit masks (flutter/engine#57210)
The RGB565 format documentation in embedder.h incorrectly stated that the red component uses the least significant bits. Unit tests in embedder/testdefs/embedder_unittests.cc demonstrate this is incorrect, showing:

- Red test (0xF800): Uses bits [15:11]
- Green test (0x07E0): Uses bits [10:5]
- Blue test (0x001F): Uses bits [4:0]

This commit fixes the documentation to correctly reflect the actual bit layout:
- Red uses 5 MSBs [15:11]
- Green uses 6 middle bits [10:5]
- Blue uses 5 LSBs [4:0]

Also fixes the example bit extraction code to use correct masks, matching the test expectations.

Impact: This change helps prevent potential developer confusion about RGB565 bit ordering and ensures the documentation matches the actual implementation as verified by the test suite.
2024-12-16 18:48:04 +00:00
Jonah Williams
481ee0e64f [Impeller] disable AHB swapchains on all platforms. (flutter/engine#57213)
Disabling until we figure out if we can even use this.
2024-12-16 17:27:56 +00:00
Jonah Williams
0bc174d87a [Impeller] fix Adreno precision issue in gaussian downsample. (flutter/engine#57212)
Fixes observed sampling problems on the adreno series where slightly different mediump/lowp behavior, resulting in the downsample shader showing "chunky" rendeering.
2024-12-16 17:27:53 +00:00
Jason Simmons
bb38935b9a Disable RBE in the GN flags for wasm_release builds in the linux_web_engine builder (flutter/engine#57204)
RBE is not supported for this build.  Starting the RBE proxy adds unnecessary overhead, and the attempt to use RBE will cause the build recipe to request too many parallel jobs in Ninja.
2024-12-16 15:40:20 +00:00
Robert Ancell
eb4af9071e Migrate FlEventChannel tests to FlMockBinaryMessenger (flutter/engine#57150)
Use FlMockBinaryMessenger instead of mocking the whole engine.
2024-12-16 11:45:17 +13:00
Robert Ancell
dcd093fad7 Migrate FlMethodChannel tests to FlMockBinaryMessenger (flutter/engine#57146)
Use FlMockBinaryMessenger instead of mocking the whole engine.
2024-12-16 10:34:14 +13:00
Michael Goderbauer
b38bf972ae Adjust some ignores for 'dart format' (flutter/engine#57208)
When running `dart format` over these lines the `// ignore` ended up on a line where it wasn't properly ignoring the lint. This adjusts the placement of `// ignore`s so they will continue to ignore the right thing even after the code is auto formatted.

I am hoping that if we do this now the large PR that formats the entire repo will go in smoother without manual intervention.
2024-12-14 02:09:06 +00:00
Michael Goderbauer
a0eb1bc42c Fix include path in fuchsia's analysis_options.yaml files (flutter/engine#57203)
The old path doesn't exist.

`dart format` stumbles over this non-existent include.

`analysis_options.yaml` files that just imported something non-existent were deleted.

I am surprised that this never caused any other issues. Is this all dead code that isn't actually analyzed?
2024-12-14 00:51:47 +00:00
Michael Goderbauer
ee512e0442 Delete stale package_config.json in gclient sync hook (flutter/engine#57195)
On the bots there were old and stale `package_config.json` files hanging around that confuse the `dart format` command. This PR adds a step to the `pub_get_offline.py` glcient sync hook to delete all of these files that are not under version control.
2024-12-13 23:58:07 +00:00
Jason Simmons
e0263d4132 [skwasm] Fix implementation of SkwasmPath.relativeLineTo (flutter/engine#57201)
Fixes https://github.com/flutter/flutter/issues/157161
2024-12-13 23:35:13 +00:00
gaaclarke
cb9307db7e Made compilation error colors come through et. (flutter/engine#57174)
fixes https://github.com/flutter/flutter/issues/147931

environment variable documented in github issue:
https://github.com/ninja-build/ninja/issues/2196

## screenshot of results
<img width="712" alt="Screenshot 2024-12-13 at 10 18 15 AM"
src="https://github.com/user-attachments/assets/571da2d8-065d-4b94-8ca2-a5bef5150dc7"
/>

## 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/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-13 15:28:36 -08:00
skia-flutter-autoroll
d696f80b74 Roll Fuchsia Linux SDK from iWMEbVYaNdH8RJmXZ... to iYz_WkWk1uPr8BLSZ... (flutter/engine#57198)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-13 21:52:02 +00:00
Yegor
f344c4699a [web] allow imports to line-break (flutter/engine#57170)
We are about to `dart format` all the Dart code in the repo, which line-breaks some of our imports.

This PR updates `sdk_rewriter.dart` to support line-broken imports.
2024-12-13 20:42:30 +00:00
hellohuanlin
e2970df999 [ios]limit web view not tappable workaround to a limited depth (flutter/engine#57193)
This PR limits the search depth, because we don't want to enable this workaround for AdMob banner, which has a WKWebView in the depth of 7. See the previous PR for more context: https://github.com/flutter/engine/pull/57168

I was able to confirm that this returns YES for the 3P plugin, and NO for AdMob. 

*List which issues are fixed by this PR. You must list at least one issue.*
https://github.com/flutter/flutter/issues/158961

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-13 19:25:25 +00:00
Tess Strickland
ee9024da88 Add entry-point annotations for test-only code. (flutter/engine#57158)
This change adds entry-point annotations to methods and classes accessed
by native code during engine tests. Currently, entry point annotations
are not checked by the Dart VM when running in JIT mode, only in AOT
mode. In order to also enforce entry point annotations in JIT mode,
first tests in Flutter must be appropriately annotated to avoid roll
failures.

Related issues:
* https://github.com/flutter/flutter/issues/118608
* https://github.com/dart-lang/sdk/issues/50649
2024-12-13 16:22:17 +01:00
skia-flutter-autoroll
b821ed5a05 Roll Skia from 0aec6f7bfbc8 to 8c1e2bf9492c (26 revisions) (flutter/engine#57183)
https://skia.googlesource.com/skia.git/+log/0aec6f7bfbc8..8c1e2bf9492c

2024-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 7e54d43d6905 to c0fe4d40475b (1 revision)
2024-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 9513bbe24fc9 to 9513e7cc4063 (5 revisions)
2024-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from cf71700f44a8 to b8306de17c9a (15 revisions)
2024-12-13 robertphillips@google.com [graphite] Fix Build-Mac-Clang-arm64-Debug-Graphite_Dawn_Metal_NoGpu build
2024-12-12 jvanverth@google.com [graphite] Add fRequireOrderedRecordings ContextOption.
2024-12-12 robertphillips@google.com [graphite] Add trace for bad Pipeline Purge
2024-12-12 jvanverth@google.com [graphite] Stub in ClipAtlasManager.
2024-12-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 83e6ead8ab3b to b56cde80dd49 (8 revisions)
2024-12-12 beaufort.francois@gmail.com webgpu: Use featureLevel instead of compatibility
2024-12-12 robertphillips@google.com [graphite] Add Tracing of Pipelines being purged from the Pipeline Cache
2024-12-12 robertphillips@google.com [graphite] Expand logging/tracing of significant precompile events
2024-12-12 kjlubick@google.com Prevent bazelisk from falling back to newer Bazel versions when not pinned
2024-12-12 michaelludwig@google.com [graphite] Add note and single-owner assertion to dumpMemoryStatistics()
2024-12-12 michaelludwig@google.com [graphite] Reset wgpu::BindGroup caches in freeGpuResources()
2024-12-12 jamesgk@google.com [graphite] Reduce switching in colorspace shader
2024-12-12 bungeman@google.com Fix style and axis scanning for variable fonts
2024-12-12 kjlubick@google.com Make AUTHORS non-executable
2024-12-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 9b8cf765f634 to e9b33f04020e (12 revisions)
2024-12-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 769bd5140c26 to 83e6ead8ab3b (1 revision)
2024-12-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 01d91c0571a2 to cf71700f44a8 (23 revisions)
2024-12-12 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 0849df86a686 to 9513bbe24fc9 (7 revisions)
2024-12-12 kjlubick@google.com Move free functions in SkCodecPriv into class namespace
2024-12-11 kjlubick@google.com Apply rewrite_includes.py diffs
2024-12-11 nicolettep@google.com Rename SkSLProgramSettings variable to be more precise
2024-12-11 kjlubick@google.com Link in jsonreader library
2024-12-11 lukasza@chromium.org [rust png] Silence `unused_unsafe` warning in `cxx`-generated 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 jonahwilliams@google.com,kjlubick@google.com,maxhudnell@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-12-13 07:36:24 +00:00
Jim Graham
c1b3709bdd Migrate DlRTree and DlRegion to DisplayList/Impeller geometry classes (flutter/engine#57175)
Continuing the migration of engine code to the new geometry classes. Only DlRTree and DlRegion are converted in this pass, plus a small amount of associated code.
2024-12-13 04:33:17 +00:00
Jim Graham
9976e07414 Normalize round rect bounds when coming from Flutter (flutter/engine#57171)
A flaw in https://github.com/flutter/engine/pull/57153 - SkRRect would normalize the rect (make it right-side up), a feature that Flutter code takes advantage of. We need to do that manually when we ingest a round rect from Flutter.
2024-12-13 01:14:02 +00:00
hellohuanlin
f9125dfd91 [ios]enable the webview non tappable workaround by checking subviews recursively (flutter/engine#57168)
The original workaround ([PR](https://github.com/flutter/engine/pull/56804)) works for the official web view plugin, but it doesn't work for a third party plugin `flutter_inappwebview` ([issue](https://github.com/pichillilorenzo/flutter_inappwebview)). Upon discussion with the author of that plugin, it turns out that their platform view is not a WKWebView, but rather a wrapper of WKWebView. 

This PR performs a DFS search of the view hierarchy, and enable the workaround as long as there's a WKWebView inside. 

TODO: pending sample project:
I am quite positive that it should work, but **I haven't tried it since I don't have a sample project yet**. I have requested a sample project with them so I can verify the solution. 

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

 https://github.com/pichillilorenzo/flutter_inappwebview/issues/2415

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-13 01:06:45 +00:00
gaaclarke
3d8fc3c652 removed c style casts and enabled the lint (flutter/engine#57162)
test exempt: should have no functional change

## 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/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-12 15:33:37 -08:00
Jonah Williams
fda902f593 [Impeller] exploit perfect hash for SamplerDescriptor. (flutter/engine#57036)
There are only 3 or 4 sampler's active at any given time in a flutter app. rather than store them in a hashmap, just use a vector.
2024-12-12 22:00:17 +00:00
gaaclarke
ad317842d3 Reenabled labelling test with a capabilities check. (flutter/engine#57160)
fixes https://github.com/flutter/flutter/issues/160180

I'm unable to reproduce the problem locally but this is the most likely cause.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-12 21:11:36 +00:00
Jonah Williams
84931c12d7 [Impeller] dont print format strings for blend filter and snapshots. (flutter/engine#57105)
We can use a macro to distinguish between all of the blend modes. We don't need to distinguish between porter duff/ advanced /pipeline as the pipeline is already labeled with the shader used.

For all snapshots the additional label on the texture isn't useful since we can just look at the command.
2024-12-12 20:25:06 +00:00
Robert Ancell
d9cdbeebea Make fl_engine_send_key_event into a standard async function. (flutter/engine#57112)
Add missing tests for this function.

Note this makes FlKeyboardManager a bit more complex, but this is
planned to be simplified in a future refactor.
2024-12-13 09:21:00 +13:00
skia-flutter-autoroll
600671f790 Roll Fuchsia Linux SDK from HJ57Y3zxqDamI8qkY... to iWMEbVYaNdH8RJmXZ... (flutter/engine#57163)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-12 20:10:18 +00:00
Robert Ancell
50a40b310e Migrate FlPlatformChannel tests to FlMockBinaryMessenger (flutter/engine#57140)
Use FlMockBinaryMessenger instead of mocking the whole engine.
2024-12-13 08:40:13 +13:00
Robert Ancell
3a54460518 Migrate FlBasicMessageChannel tests to FlMockBinaryMessenger (flutter/engine#57115)
Use FlMockBinaryMessenger instead of mocking the whole engine.
2024-12-13 08:38:53 +13:00
Jim Graham
9af7a2a64d Migrate layers and layer_tree to DisplayList/Impeller geometry classes (flutter/engine#57153)
Migrates Layers and LayerTree and parts of the `flow/` utility classes to use DlGeometry (Impeller) classes.
2024-12-12 19:30:55 +00:00
Mouad Debbar
1a1503b867 [web] Use CanvasKit to run tests under engine/ (flutter/engine#54786)
Let's start running the tests under `engine/` using the CanvasKit renderer instead of HTML.

This PR also:
- Moves several tests from `engine/` to `html/` since they were testing html-specific stuff.
- Deletes `test/canvaskit/semantics_test.dart` since it's just an "alias" for `test/engine/semantics/semantics_test.dart`.
2024-12-12 18:57:04 +00:00
Chris Bracken
e9965b2d07 iOS: Reduce engine/view controller coupling (flutter/engine#57151)
Eliminates some cases where `FlutterViewController` was relying on `FlutterEngine` internals:
* `[FlutterEngine shell]`
* `[FlutterEngine platformView]`
* `[FlutterEngine iosPlatformView]`

Instead, `FlutterEngine` now exposes:
* `installFirstFrameCallback:`
* `enableSemantics:withFlags:`
* `notifyViewCreated`
* `notifyViewDestroyed`
* `waitForFirstFrameSync:callback:`

Also fixes a couple cases where we were relying on transitive header includes:
* `FlutterAppController` relied on `FlutterViewController_Internal.h` for `sendDeepLinkToFramework:completionHandler:`

This is a refactoring followup to https://github.com/flutter/engine/pull/57099 that introduces no semantic changes.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-12 18:38:07 +00:00
skia-flutter-autoroll
5f3164ad3d Roll Dart SDK from 770ff2b085fc to 02aa27c6a075 (1 revision) (flutter/engine#57161)
https://dart.googlesource.com/sdk.git/+log/770ff2b085fc..02aa27c6a075

2024-12-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-243.0.dev

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

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-12 18:23:15 +00:00
Michael Goderbauer
5d6ca41a1f Format _empty.dart (flutter/engine#57144)
When `dartfmt` formatted `_empty.dart` it formatted it with a trailing newline, which then makes the license script angry. Rather then treating `_empty.dart` special, this just makes it a regular source file with header and everything.
2024-12-12 17:37:05 +00:00
Jason Simmons
feda309b66 [Impeller] Fix a race in the ReactorGLES.PerThreadOperationQueues test (flutter/engine#57147)
Pass a flag to AddOperation to ensure that ReactorGLES does not immediately execute the operation on the second thread.
2024-12-12 15:41:32 +00:00
skia-flutter-autoroll
7915e978a7 Roll Dart SDK from 70062c353404 to 770ff2b085fc (2 revisions) (flutter/engine#57159)
https://dart.googlesource.com/sdk.git/+log/70062c353404..770ff2b085fc

2024-12-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-242.0.dev
2024-12-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-241.0.dev

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

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-12 14:11:34 +00:00
skia-flutter-autoroll
9d2482efb4 Roll Dart SDK from 96022397c58d to 70062c353404 (1 revision) (flutter/engine#57155)
https://dart.googlesource.com/sdk.git/+log/96022397c58d..70062c353404

2024-12-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-240.0.dev

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

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-12 06:58:05 +00:00
skia-flutter-autoroll
3f0ff1053a Roll Dart SDK from aa03dca5beb2 to 96022397c58d (2 revisions) (flutter/engine#57149)
https://dart.googlesource.com/sdk.git/+log/aa03dca5beb2..96022397c58d

2024-12-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-239.0.dev
2024-12-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-238.0.dev

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

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-12 02:22:23 +00:00
Bryan Oltman
4eb0bd7d98 Cast ::GetLastError to int (flutter/engine#57113)
`GetLastError` returns an unsigned 32 bit integer that was being
implicitly cast to an int for the std::variant<..., int>. This was
causing my build to fail with:

```
../../flutter/shell/platform/windows/platform_handler.cc(178,12): error: no viable conversion from returned value of type 'DWORD' (aka 'unsigned long') to function return type 'std::variant<std::wstring, int>' (aka 'variant<basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>>, int>')
  178 |     return ::GetLastError();
      |            ^~~~~~~~~~~~~~~~
../../../../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/include\variant(923,7): note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'DWORD' (aka 'unsigned long') to 'const variant<basic_string<wchar_t>, int> &' for 1st argument
  923 | class variant : private _SMF_control<_Variant_destroy_layer<_Types...>, _Types...> { // discriminated union
      |       ^~~~~~~
```

Commands:

```
 ./flutter/tools/gn --runtime-mode release --no-rbe
ninja -C .\out\host_release windows gen_snapshot flutter/build/archives:windows_flutter
```

Explicitly casting `::GetLastError` to an int fixes this issue.

I'm running on Windows 11 (Version 10.0.26100 Build 26100) with VS 2022
Community Edition.

@loic-sharma

Co-authored-by: Eric Seidel <eric@shorebird.dev>
2024-12-11 17:23:11 -08:00
Jonah Williams
b6064c9224 Manual Skia roll from 79a7b95e32fe to 0aec6f7bfbc8 (flutter/engine#57134)
skia-flutter-autoroll
Member
[skia-flutter-autoroll](https://github.com/skia-flutter-autoroll) commented [1 hour ago](https://github.com/flutter/engine/pull/57131#issue-2733701367)
https://skia.googlesource.com/skia.git/+log/79a7b95e32fe..0aec6f7bfbc8

2024-12-11 [jvanverth@google.com](mailto:jvanverth@google.com) [graphite] Force ordered recordings in nanobench.
2024-12-11 [nicolettep@google.com](mailto:nicolettep@google.com) [graphite] Rename snippet requirement flag to more clearly express purpose
2024-12-11 [skia-autoroll@skia-public.iam.gserviceaccount.com](mailto:skia-autoroll@skia-public.iam.gserviceaccount.com) Roll Skia Infra from a42d0274444b to 0849df86a686 (7 revisions)
2024-12-11 [vigneshv@google.com](mailto:vigneshv@google.com) Revert "Reland "Reland "SkCodec: Remove the sysprop guard for SkCrabbyAvifCodec"""
2024-12-11 [fmalita@google.com](mailto:fmalita@google.com) Clamp index values in SkVertices factories
2024-12-11 [skia-autoroll@skia-public.iam.gserviceaccount.com](mailto:skia-autoroll@skia-public.iam.gserviceaccount.com) Manual roll vulkan-deps from b5e5616193ec to 769bd5140c26 (8 revisions)
2024-12-11 [skia-autoroll@skia-public.iam.gserviceaccount.com](mailto:skia-autoroll@skia-public.iam.gserviceaccount.com) Manual roll Dawn from 052be48b9a1a to 01d91c0571a2 (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 [jonahwilliams@google.com](mailto:jonahwilliams@google.com),[kjlubick@google.com](mailto:kjlubick@google.com),[maxhudnell@google.com](mailto:maxhudnell@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-12-12 01:08:19 +00:00
gaaclarke
6aeeb645df Removed heap allocations for conical, radial and sweep gradients (flutter/engine#57143)
fixes https://github.com/flutter/flutter/issues/154650

## 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/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-11 15:45:13 -08:00
Jonah Williams
c576a7c716 [Impeller] remove std::vector usage in render pass vk. (flutter/engine#57132)
Remove std::vector usage in vulkan render pass. Fixed size array + offsets, should be faster than heap allocations.
2024-12-11 22:15:33 +00:00
Balint Rozgonyi
41009bcda1 [Linux] Add Multi-Touch Support for Linux (flutter/engine#54214)
This draft PR aims to address the lack of multi-touch support under Linux, leveraging the existing implementation used for Windows. As I am not an expert in this domain, I would greatly appreciate feedback on the implementation.

https://github.com/flutter/flutter/issues/133239
https://github.com/flutter/flutter/issues/52202

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-12-11 22:05:04 +00:00
skia-flutter-autoroll
8cfbdd7174 Roll Dart SDK from be9c98daf9df to aa03dca5beb2 (1 revision) (flutter/engine#57136)
https://dart.googlesource.com/sdk.git/+log/be9c98daf9df..aa03dca5beb2

2024-12-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-237.0.dev

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

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-11 21:54:56 +00:00
Jason Simmons
381cd71316 Make Felt unzip Chrome into a temporary directory next to the final location of the files (flutter/engine#57109)
The Web Felt script downloads a Chrome zip archive, extracts it to a temporary directory, and then moves the files to a location expected by the script.

Previously Felt used a temporary directory based on io.Directory.systemTemp.  This may not work because the FileSystemEntity.rename operation used to move the files can fail if the system temp directory is located in a different filesystem from the destination directory.
2024-12-11 21:28:16 +00:00
Jonah Williams
f8a0105146 [engine] changes to DlVertices::Builder and Stopwatch visualizer. (flutter/engine#57031)
Collection of changes to DlVertices::Builder and the stopwatch visualizer.

At a high level:

* improve performance of the stopwatch visualizer by pre-allocating storage (and sharing it across both visualizers), lookup up font once, and cache the debug frame rate used. Updates to use Dl types instead of SkTypes.

* Change DlVerticesBuilder to allow storing the bounds and use that in the visualizer, since we already know them. Make FML_CHECKS into dchecks, as the dart:ui vertices will already bounds check correctly - so these should only be necessary for debugging engine changes.
2024-12-11 21:03:06 +00:00
Jonah Williams
7a2260956f [Impeller] avoid expensive texture labeling w/ no validation layers. (flutter/engine#57130)
Labelling textures shows up in all of our profiles because of the cost to lock the context weak ptr and then call into both the image and image view. remove this if no layers are present that would read the label.
2024-12-11 20:51:20 +00:00
Jonah Williams
68142a735d [Impeller] set UniformBlockBinding once. (flutter/engine#57094)
gl.UniformBlockBinding only needs to be set once when the pipeline is linked, and not on every draw.
2024-12-11 18:08:16 +00:00
skia-flutter-autoroll
9fd0734154 Roll Fuchsia Linux SDK from 5taAI9-tnFN84ZJvr... to HJ57Y3zxqDamI8qkY... (flutter/engine#57125)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jonahwilliams@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-12-11 17:57:48 +00:00
gaaclarke
17b5cbe28d Removed linear gradient heap allocation for color conversions between dart and display list (flutter/engine#57108)
issue: https://github.com/flutter/flutter/issues/154650

## 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/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/engine/blob/main/docs/testing/Testing-the-engine.md
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
2024-12-11 09:32:04 -08:00
Jason Simmons
03acf8c635 Dispose pictures created in HtmlViewEmbedder.submitFrame (flutter/engine#57102)
See https://github.com/flutter/flutter/issues/153678
2024-12-11 17:14:14 +00:00