29204 Commits

Author SHA1 Message Date
Zachary Anderson
adbac02b99 Retry mac_unopt one time in presubmit (flutter/engine#56319)
While we mitigate https://github.com/flutter/flutter/issues/157636.
2024-11-04 10:47:12 -08:00
Jonah Williams
b1bf47b924 [Impeller] faster descriptor type mapping. (flutter/engine#56351)
This is a dumb performance optimization. because we only use the DescriptorType enum to represent vk descriptor types, lets just make the enum values match. Then we can static cast instead of switch.

I do see this function showing up in profiles, though a very small slice.
2024-11-04 17:55:19 +00:00
skia-flutter-autoroll
ae88464a44 Roll Skia from 75740b68a282 to e2ad60ea8039 (8 revisions) (flutter/engine#56354)
https://skia.googlesource.com/skia.git/+log/75740b68a282..e2ad60ea8039

2024-11-04 bungeman@google.com [pdf] Avoid entires in both unicode maps
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from 980a9b0e0fba to 2c4f822f9e78 (3 revisions)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3c1e98a3120a to 2f8ad9c1042c (1 revision)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 91cb9c1a7ec7 to ae5ea7b95745 (1 revision)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 2e11bb731c4a to 064137920a75 (6 revisions)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from e0dd04eb7f86 to 980a9b0e0fba (2 revisions)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from 78a100c8c999 to e0dd04eb7f86 (6 revisions)
2024-11-04 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Dawn from a0239e7d364c to 78a100c8c999 (14 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,kjlubick@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-11-04 17:29:23 +00:00
yaakovschectman
97152fcaf0 Move detection of cutouts in Android engine to onApplyWindowInsets (flutter/engine#55992)
Stop including the translation of window insets cutouts to Flutter
cutout DisplayFeatures in the window info listener method, which would
not necessarily receive changes in the correct order/state when they
update, e.g. when the screen orientation changes.

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

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

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-11-04 11:45:57 -05:00
skia-flutter-autoroll
0479842fe1 Roll Dart SDK from 69cec5dc51f9 to f238183cf168 (1 revision) (flutter/engine#56353)
https://dart.googlesource.com/sdk.git/+log/69cec5dc51f9..f238183cf168

2024-11-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-98.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-04 15:48:06 +00:00
skia-flutter-autoroll
c404d4f8b7 Roll Fuchsia Linux SDK from 07KmbdEtnhkg_tUhe... to amgHXcqtplha8LuI_... (flutter/engine#56348)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC chinmaygarde@google.com,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-11-04 15:37:48 +00:00
skia-flutter-autoroll
71fb5456bd Roll Dart SDK from 61bf0877807e to 69cec5dc51f9 (2 revisions) (flutter/engine#56335)
https://dart.googlesource.com/sdk.git/+log/61bf0877807e..69cec5dc51f9

2024-11-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-97.0.dev
2024-11-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-96.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-02 06:12:22 +00:00
Tong Mu
f10ac1e27e Multiple touches of a stylus should be considered from the same device (flutter/engine#56075)
This PR fixes https://github.com/flutter/flutter/issues/156223.

**Problem:** The issue above only occurred when using stylus on Web. Multiple touches were treated as different devices: new devices were added and former devices that had the pointer lifted were never removed. This was further caused by the design that Flutter uses JS's `PointerEvent.pointerId` as the device ID, which increases for each touch.

Flutter had to use `PointerEvent.pointerId` because JS doesn't provide a way to distinguish between multiple styluses. This PR fixes this issue by simply supporting only one stylus, since support for multi-stylus can be really hard. How multi-stylus should be supported can be discussed upon such demands in the future, but at least for now, iPad doesn't support multi-stylus and it's not something I can test.

This PR also rewrote some comments that I got confused by while reading the code.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-02 05:38:23 +00:00
skia-flutter-autoroll
e24e24fe1e Roll Skia from 89ac72bb4922 to 6944cd128603 (2 revisions) (flutter/engine#56331)
https://skia.googlesource.com/skia.git/+log/89ac72bb4922..6944cd128603

2024-11-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a52547961655 to b54c68a30790 (1 revision)
2024-11-01 borenet@google.com Roll Skia Infra from 65468f93b38c to 2e11bb731c4a (9 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,jamesgk@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-11-02 03:03:29 +00:00
Juanjo Tugores
b78aaca24c [web] Transfer focus to view rootElement on blur/remove. (flutter/engine#55045)
The `safeBlur`/`safeRemove`/`safeRemoveSync` methods in the view manager should become the standard way to "blur" and "remove" elements within the web engine.

Calling these method ensures the blur operation doesn't disrupt the framework's view focus management because these methods transfer the focus from the current element to its containing EngineFlutterView's `rootElement`, so focus never abandons the Flutter view unless the user wants to.

This is a generalization of the former `DefaultTextEditingStrategy.scheduleFocusFlutterView`, which turns out is needed in anything that touches elements that may receive focus in the engine, not just text editing.

## Issue

(Maybe) Part of https://github.com/flutter/flutter/issues/157387
(Opportunistically) Fixes https://github.com/flutter/flutter/issues/46638

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-02 00:51:13 +00:00
Matan Lurey
6066418415 Refactor BuildPlan, better document and explain --config. (flutter/engine#56324)
Closes https://github.com/flutter/flutter/issues/156591.
Closes https://github.com/flutter/flutter/issues/156355.

I also moved some functions only used as implementation details :)
2024-11-02 00:10:06 +00:00
skia-flutter-autoroll
944481977b Roll Fuchsia Linux SDK from MjcuejuzYvYGobbFM... to 07KmbdEtnhkg_tUhe... (flutter/engine#56322)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC chinmaygarde@google.com,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-11-01 23:05:46 +00:00
Jonah Williams
deaddd1ed9 [Impeller] implement external texture gl for embedder. (flutter/engine#56277)
Fixes https://github.com/flutter/flutter/issues/143809
2024-11-01 23:04:06 +00:00
skia-flutter-autoroll
dd3e8a173c Roll Dart SDK from 789763468d6b to 61bf0877807e (2 revisions) (flutter/engine#56323)
https://dart.googlesource.com/sdk.git/+log/789763468d6b..61bf0877807e

2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-95.0.dev
2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-94.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-01 23:00:16 +00:00
Jonah Williams
57c3c6af5d [Impeller] fix downsample with decal tile mode. (flutter/engine#56316)
Fixes https://github.com/flutter/flutter/issues/157956
Fixes https://github.com/flutter/flutter/issues/157959

Decal tile mode needs to be emulated on platforms that don't support it.
2024-11-01 22:45:14 +00:00
skia-flutter-autoroll
12f4c6f39b Roll Skia from dfbb0e6bc974 to 89ac72bb4922 (6 revisions) (flutter/engine#56320)
https://skia.googlesource.com/skia.git/+log/dfbb0e6bc974..89ac72bb4922

2024-11-01 kjlubick@google.com Add job to test rust png codec
2024-11-01 fmalita@google.com [viewer] Initial mesh gradient slide
2024-11-01 briansalomon@gmail.com [Ganesh] Test for valid GL sync before deleting
2024-11-01 bungeman@google.com [pdf] Augment glyph to unicode map
2024-11-01 briansalomon@gmail.com Fix glClientWaitSync and glWaitSync on WebGL2
2024-11-01 egdaniel@google.com [Graphite] Unmap vulkan instrinsic buffers.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,jamesgk@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-11-01 22:28:45 +00:00
Jackson Gardner
53f8d48270 Remove superfluous dart2wasm test suites/bundles. (flutter/engine#56315)
When dart2wasm was still in early stages and unstable, we wanted to run dart2wasm on as many unit tests and code paths as possible. However, dart2wasm is much more stable now, and there are some configurations that users simply cannot not use and are not worth testing. Specifically, users cannot use renderers other than skwasm with dart2wasm, so we should avoid running test suites specific to those renderers.

* `dart2wasm-html-html` and `dart2wasm-canvaskit-canvaskit` bundles and their associated suites are removed. These are tests specifically for the `html` and `canvaskit` renderers, which are run with those renderers. Users can't use these renderers in dart2wasm mode, so it's not useful to run these tests.
* `dart2wasm-html-ui` and `dart2wasm-canvaskit-ui` and their associated suites are also removed. These are tests that can run on any renderer, and they are being run with the `html` and `canvaskit` renderers. We don't need to run against these renderers on `dart2wasm` since users can't actually use these renderers in dart2wasm mode.
* Notably, `dart2wasm-html-engine` and associated suites are staying. These run against the `html` renderer, but only incidentally. These tests are supposed to be exercising logic that doesn't actually pertain to rendering, and it's logic that will be running for the end user in dart2wasm mode. So it makes sense to continue running these tests against dart2wasm.
2024-11-01 21:38:52 +00:00
Jason Simmons
90c1427af1 Write run_tests console logs to stdout instead of stderr (flutter/engine#56312)
Users of this script typically expect that the normal output of the tests will be written to stdout.  However, the logging.StreamHandler writes to stderr by default unless another stream is specified.
2024-11-01 21:34:53 +00:00
Jonah Williams
1351637b59 [impeller] use greater equal rather than greater depth compare. (flutter/engine#56310)
Marking ready for review for golden testing

Fixes https://github.com/flutter/flutter/issues/153504
Fixes some other ones too?

It seems like metal and vulkan are already behaving like they are using greater equal depth compare. GL behaves correctly like greater compare, but that leads to rendering bugs. Just switch it to greater equal
2024-11-01 21:03:19 +00:00
Jackson Gardner
8cced6a0ac Reland single threaded Skwasm (flutter/engine#56282)
This attempts to reland the single-threaded Skwasm PR: https://github.com/flutter/engine/pull/56206

The main changes here are in the second commit:
* We need to actually bundle the `skwasm_st` artifacts in `flutter_web_sdk.zip`
* The `locateFile` hack no longer works since emscripten doesn't actually create a worker.js file anymore. So instead, that has been modified to use the `mainScriptUrlOrBlob` module API to do a very similar hack.

Note: I did presubmit testing with the framework CI and it appears the pertinent tests pass. See https://github.com/flutter/flutter/pull/157967
2024-11-01 19:00:08 +00:00
skia-flutter-autoroll
b5ad9f2580 Roll Skia from 3b50199d27bb to dfbb0e6bc974 (2 revisions) (flutter/engine#56305)
https://skia.googlesource.com/skia.git/+log/3b50199d27bb..dfbb0e6bc974

2024-11-01 fmalita@google.com Reland "Add verb measurement utils to SkContourMeasure"
2024-11-01 drott@chromium.org [Fontations] Fix lifecycle of SkData objects in scanner

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,jamesgk@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-11-01 16:15:18 +00:00
skia-flutter-autoroll
6d7e1fc0e4 Roll Dart SDK from 09c8281e66cc to 789763468d6b (2 revisions) (flutter/engine#56303)
https://dart.googlesource.com/sdk.git/+log/09c8281e66cc..789763468d6b

2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-93.0.dev
2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-92.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-01 13:39:09 +00:00
Chris Bracken
0be1987e1a fml: Delete weak_nsobject.h,mm (flutter/engine#56289)
These classes are no longer necessary now that the entire codebase has been migrated to ARC.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-01 12:05:11 +00:00
skia-flutter-autoroll
4c5d89d9d4 Roll Dart SDK from 32bebf22c765 to 09c8281e66cc (1 revision) (flutter/engine#56298)
https://dart.googlesource.com/sdk.git/+log/32bebf22c765..09c8281e66cc

2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-91.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-01 06:59:20 +00:00
Matan Lurey
252109e82c Further de-duplicate and refactor build_plan_test. (flutter/engine#56284)
Closes https://github.com/flutter/flutter/issues/157870.

Looks a lot better - I even noticed a few places where I was doing
unnecessary (copy/pasted) configuration.

> `1 file changed, 240 insertions(+), 768 deletions(-)`
2024-10-31 20:10:36 -07:00
skia-flutter-autoroll
5422cde24c Roll Dart SDK from bd93105c4fb6 to 32bebf22c765 (2 revisions) (flutter/engine#56290)
https://dart.googlesource.com/sdk.git/+log/bd93105c4fb6..32bebf22c765

2024-11-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-90.0.dev
2024-10-31 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-89.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-11-01 02:54:56 +00:00
Jason Simmons
04ec84e0d2 Remove the quiet flag from invocations of run_tests.py on macOS CI builders (flutter/engine#56288)
The quiet flag filters out most of the script's output.  In particular, it excludes the output of child processes launched by the script.
2024-11-01 02:44:22 +00:00
Jason Simmons
09c811781d [Impeller] Fix handling of destination opacity in advanced blends (flutter/engine#56251)
The framebuffer blend pipeline needs to support a dst_input_alpha parameter in order to implement the AbsorbOpacity flag.

Also, dst_input_alpha should only be applied to the alpha channel of the unpremultiplied destination color.

Fixes https://github.com/flutter/flutter/issues/157716
2024-11-01 01:02:10 +00:00
gaaclarke
f81ed55e63 reland: Allow BufferViews to have non-owning references to DeviceBuffers (flutter/engine#56286)
relands https://github.com/flutter/engine/pull/56224

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 23:46:55 +00:00
skia-flutter-autoroll
bad046bd6e Roll Skia from 9168ad248c69 to a5e3b3556739 (1 revision) (flutter/engine#56283)
https://skia.googlesource.com/skia.git/+log/9168ad248c69..a5e3b3556739

2024-10-31 egdaniel@google.com [Graphite] Use PushConstants instead of VBO for load msaa draws.

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-10-31 23:25:13 +00:00
auto-submit[bot]
528967bfae Reverts "Allow BufferViews to have non-owning references to DeviceBuffers (#56224)" (flutter/engine#56285)
Reverts: flutter/engine#56224
Initiated by: jonahwilliams
Reason for reverting: merge issue.
Original PR Author: gaaclarke

Reviewed By: {jonahwilliams}

This change reverts the following previous change:
issue: https://github.com/flutter/flutter/issues/157538

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 22:48:46 +00:00
Chris Bracken
e1c05b7dd8 macOS: migrate third_party/accessibility to ARC (flutter/engine#56281)
Migrates all Objective-C++ translation units under third_party/accessibility to ARC.

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

No test changes because this change introduces no semantic changes.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 22:32:22 +00:00
gaaclarke
1d90823917 Allow BufferViews to have non-owning references to DeviceBuffers (flutter/engine#56224)
issue: https://github.com/flutter/flutter/issues/157538

## 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-10-31 15:28:10 -07:00
Jim Graham
861a9a4ac8 [Impeller] Do not use fast mask blur for stroked shapes (flutter/engine#56247)
A compound test for whether to use the fast blur mechanism for shapes was failing to check for a stroked shape due to misplaced parentheses.
2024-10-31 21:33:18 +00:00
Jonah Williams
14df054f9c [Impeller] make desktop GL render. (flutter/engine#56274)
Fixes https://github.com/flutter/flutter/issues/143387

Will be tested in https://github.com/flutter/flutter/pull/157888
2024-10-31 21:33:15 +00:00
Matan Lurey
018d53a74f Vastly rewrite and expand et/README.md (flutter/engine#56250)
Closes https://github.com/flutter/flutter/issues/157876.

/cc @dcharkes @jensjoha as well (documented `--gn-args`)
2024-10-31 21:27:54 +00:00
skia-flutter-autoroll
1d4bbcfd1f Roll Fuchsia Linux SDK from dDWvmfG4AxSEs0BQA... to MjcuejuzYvYGobbFM... (flutter/engine#56280)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC chinmaygarde@google.com,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-10-31 21:26:24 +00:00
skia-flutter-autoroll
cf02c21dc5 Roll Dart SDK from f3e3dc44b1dc to bd93105c4fb6 (2 revisions) (flutter/engine#56278)
https://dart.googlesource.com/sdk.git/+log/f3e3dc44b1dc..bd93105c4fb6

2024-10-31 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-88.0.dev
2024-10-31 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-87.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-10-31 21:14:17 +00:00
Chris Bracken
deb7a64a76 Embedder: migrate Metal surfaces to ARC (flutter/engine#56279)
Migrate Skia and Impeller surface translation units to ARC.

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

No changes to tests since no semantic changes.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 21:03:04 +00:00
Chris Bracken
8a97900ef4 iOS: migrate Metal testing types to ARC (flutter/engine#56156)
This migrates Flutter's TestMetalContext and TestMetalSurface to ARC.

Also migrates to using `sk_cfp::retain` (which retains the passed in pointer) rather than `sk_cfp::reset`, which only releases the previous pointer but doesn't retain the incoming pointer.

No changes to tests since no semantic changes.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 20:50:03 +00:00
Chris Bracken
998761eb14 iOS,macOS: migrate shell/gpu to ARC (flutter/engine#56157)
Migrates Objective-C code in shell/gpu to ARC.

Migrate `sk_cfp::reset(__bridge_retained ptr)` to `sk_cfp::retain(__bridge ptr)`. `reset` `CFRelease`s the previously held pointer and sets the pointer to the new pointer. `retain` `CFRetain`s the new pointer prior to setting it.

No changes to tests since this makes no semantic changes.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-31 18:55:48 +00:00
skia-flutter-autoroll
d98bd1ab81 Roll Skia from 3c628426f85f to 9168ad248c69 (3 revisions) (flutter/engine#56272)
https://skia.googlesource.com/skia.git/+log/3c628426f85f..9168ad248c69

2024-10-31 michaelludwig@google.com [mac] Update build target to for x86 to be 10.15
2024-10-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1d891d46a65c to 37d41da69cc4 (2 revisions)
2024-10-31 michaelludwig@google.com Revert "Add verb measurement utils to SkContourMeasure"

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-10-31 17:54:09 +00:00
Jonah Williams
6eed502b8b [Impeller] Reland: disable AHBs on devices that were upgraded to 29. (flutter/engine#56221)
Uses ro.product.first_api_level to disable AHBs on devices that began life pre 29.

Fixes https://github.com/flutter/flutter/issues/157113
2024-10-31 17:42:12 +00:00
Matan Lurey
c7df7b1cce Add timeout to local_engine. (flutter/engine#56271)
See https://ci.chromium.org/ui/p/flutter/builders/luci.flutter.prod/Linux%20local_engine_builds.
2024-10-31 17:00:50 +00:00
Matan Lurey
f89c4fd346 Refactor ArgParser.usage tests for BuildPlan to reduce duplication. (flutter/engine#56254)
Part of https://github.com/flutter/flutter/issues/157870.

I figured I'd tackle a theme of tests at a time - easier for me to do in little spurts between other tasks.
2024-10-31 16:44:06 +00:00
auto-submit[bot]
38f7a81e37 Reverts "Skwasm single threaded (#56206)" (flutter/engine#56264)
Reverts: flutter/engine#56206
Initiated by: jonahwilliams
Reason for reverting: failing to roll into framework: https://github.com/flutter/flutter/pull/157919 
Original PR Author: eyebrowsoffire

Reviewed By: {harryterkelsen}

This change reverts the following previous change:
This PR creates a single-threaded version of the skwasm renderer, appropriate for non-crossOriginIsolated browsing contexts.
* The single threaded renderer is essentially the same as the multi-threaded renderer, except instead of spawning a web worker and posting messages to it, it simply schedules microtasks on the main thread in their place.
* The new renderer is vended as `skwasm_st.js` and `skwasm_st.wasm` in the same location as multithreaded skwasm. In order to properly build and function, we needed some fixes I put into emscripten that landed in version 3.1.70. That version also changed some behavior that required a few fixes to the CanvasKit build files.
* The skwasm loader in flutter.js has been modified to use the skwasm_st variants when encountering a non-crossOriginIsolated context but a browser and configuration that otherwise would allow the use of skwasm. I also added a new `forceSingleThreadedSkwasm` option to the flutter configuration so that we can override this behavior, especially so that we can accurately benchmark the single threaded renderer in a crossOriginIsolated environment.
* I also consolidated a bunch of our shards that run tests to just have one per browser/platform combination, so four total. This will address https://github.com/flutter/flutter/issues/124682
2024-10-31 14:12:47 +00:00
skia-flutter-autoroll
85cce650a0 Roll Skia from 4f8f2ecadfb6 to 3c628426f85f (1 revision) (flutter/engine#56261)
https://skia.googlesource.com/skia.git/+log/4f8f2ecadfb6..3c628426f85f

2024-10-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 548705375403 to 65468f93b38c (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,chinmaygarde@google.com,jamesgk@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-10-31 10:47:12 +00:00
skia-flutter-autoroll
ac26403b3e Roll Dart SDK from 6a8058eef22c to f3e3dc44b1dc (1 revision) (flutter/engine#56253)
https://dart.googlesource.com/sdk.git/+log/6a8058eef22c..f3e3dc44b1dc

2024-10-31 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-86.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-10-31 03:41:31 +00:00
Jonah Williams
8b0392d282 [Impeller] use primitive restart for faster tessellation: write directly into host buffer. (flutter/engine#56173)
Using primitive restart we can avoid tracking even odd or inserting degenerate triangles. Instead a special index value `0xFFFF` is used to signal a break. This can be combined with triangle fan on vulkan for a dramatically simpler tessellation.

Additionally, switches to a two pass system where we first estimate the storage required by the path so tha the host buffer can be written to directly.
2024-10-31 02:27:28 +00:00
Jackson Gardner
1a4f588e1f Skwasm single threaded (flutter/engine#56206)
This PR creates a single-threaded version of the skwasm renderer, appropriate for non-crossOriginIsolated browsing contexts.
* The single threaded renderer is essentially the same as the multi-threaded renderer, except instead of spawning a web worker and posting messages to it, it simply schedules microtasks on the main thread in their place.
* The new renderer is vended as `skwasm_st.js` and `skwasm_st.wasm` in the same location as multithreaded skwasm. In order to properly build and function, we needed some fixes I put into emscripten that landed in version 3.1.70. That version also changed some behavior that required a few fixes to the CanvasKit build files.
* The skwasm loader in flutter.js has been modified to use the skwasm_st variants when encountering a non-crossOriginIsolated context but a browser and configuration that otherwise would allow the use of skwasm. I also added a new `forceSingleThreadedSkwasm` option to the flutter configuration so that we can override this behavior, especially so that we can accurately benchmark the single threaded renderer in a crossOriginIsolated environment.
* I also consolidated a bunch of our shards that run tests to just have one per browser/platform combination, so four total. This will address https://github.com/flutter/flutter/issues/124682
2024-10-31 00:42:07 +00:00