29717 Commits

Author SHA1 Message Date
skia-flutter-autoroll
ac1d299318 Roll Dart SDK from df716eaa6ed2 to 4b49546a1dfa (1 revision) (flutter/engine#56793)
https://dart.googlesource.com/sdk.git/+log/df716eaa6ed2..4b49546a1dfa

2024-11-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-184.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 aaclarke@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-25 21:59:28 +00:00
LongCatIsLooong
8a1d4c0a08 [iOS] Full keyboard access scrolling (flutter/engine#56606)
This PR adds basic FKA scrolling support: when the iOS focus (the focus state is maintained separately from the framework focus, see the previous PR) switches to an item in a scrollable container that is too close to the edge of the viewport, the container will scroll to make sure the next item is visible. 

Previous PR for context: https://github.com/flutter/engine/pull/55964

https://github.com/user-attachments/assets/84ae5153-f955-4d23-9901-ce942c0e98ac

### Why the UIScrollView subclass in the focus hierarchy

The iOS focus system does not provide an API that allows apps to notify it of focus highlight changes. So if we were to keep using the transforms sent by the framework as-is and not introducing any UIViews in the focus hierarchy, the focus highlight will be positioned at the wrong location after scrolling (via FKA or via framework). That does not seem to be part of the public API and the focus system seems to only know how to properly highlight focusable UIViews.

### Things that currently may not work

1. Nested scroll views (have not tried to verify) 

The `UIScrollView`s are always subviews of the `FlutterView`. If there are nested scrollables the focus system may not be able to properly determine the focus hierarchy (in theory the iOS focus system should never depend on `UIView.parentView` but I haven't tried to verify that).

2. If the next item is too far below the bottom of the screen and there is a tab bar with focusable items, the focus will be transferred to tab bar instead of the next item in the list

Video demo (as you can see the scrolling is really finicky):

https://github.com/user-attachments/assets/51c2bfe4-d7b3-4614-aa49-4256214f8978

I've tried doing the same thing using a `UITableView` with similar configurations but it seems to have the same problem. I'll try to dig a bit deeper into this and see if there's a workaround.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-25 21:05:18 +00:00
Jonah Williams
448ac0100b [android] remove fml_check from surface_texture_external_texture (flutter/engine#56760)
We may fail to acquire a new image from the external image source. When this happens, don't crash the app.

Fixes https://github.com/flutter/flutter/issues/159324
2024-11-25 20:16:10 +00:00
gaaclarke
5cc52a6055 removed unused variable for skia initialization (flutter/engine#56791)
fixes https://github.com/flutter/flutter/issues/159433

test exempt: no functional change, removes unused code

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-25 19:52:31 +00:00
Gray Mackall
2aae286c8d Bump versions of agp and robolectric, and configure to use SDK 35 (flutter/engine#56732)
Bumps the version of AGP used in the IDE-support `build.gradle`, as well as the robolectric version in both the IDE-support `build.gradle` and test-runner-`build.gradle`. 

This is the current latest robolectric: https://github.com/robolectric/robolectric/releases/tag/robolectric-4.14.1.

Also 
1. configures robolectric to use API 35, and 
2. removes the use of a deprecated class which (from what I could tell) looked like it was just used for setup, and the test still passes without it.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-25 18:24:05 +00:00
Jia Hao
a442db2c24 Add missing import for malloc (flutter/engine#56781)
Internal bug: b/380745221

The use of `malloc` in L70:

d48ceb1ba2/third_party/tonic/filesystem/filesystem/file.cc (L70)

Results in the following error, after an update to the internal toolchain. For some reason, this error only appears when targeting Linux.

```
tonic/filesystem/filesystem/file.cc:70:28: error: use of undeclared identifier 'malloc'
   70 |   uint8_t* ptr = (uint8_t*)malloc(file_size);
      |                            ^
1 error generated.
```

This PR fixes it by including the header file.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-25 16:47:19 +00:00
skia-flutter-autoroll
cc39b54c2a Roll Skia from 01a3a55f1d54 to 7588789d8fc6 (2 revisions) (flutter/engine#56784)
https://skia.googlesource.com/skia.git/+log/01a3a55f1d54..7588789d8fc6

2024-11-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 808d8a5c3b87 to f433991c6d8e (5 revisions)
2024-11-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from eef82f6f51a2 to d9e006bae4a7 (11 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC aaclarke@google.com,brianosman@google.com,danieldilan@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-25 10:10:06 +00:00
Jason Simmons
d48ceb1ba2 Fix the mapping from exit response strings to the FlPlatformChannelExitResponse enum (flutter/engine#56769) 2024-11-25 14:02:28 +13:00
skia-flutter-autoroll
add1d4273a Roll Fuchsia Linux SDK from XOyk4KAUqAnkgC2WY... to 9o0fWa2xVhmxV6Mtn... (flutter/engine#56780)
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 aaclarke@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-24 21:11:57 +00:00
gaaclarke
c1b6fd8c69 Replaces Resource's shared_ptr with unique_ptr (flutter/engine#56778)
A non-inconsequential amount of time is spent in ~shared_ptr for no reason in ~Resource

<img width="1057" alt="Screenshot 2024-11-23 at 3 22 11 PM" src="https://github.com/user-attachments/assets/fba73908-2e43-4908-8008-ddd78fd77831">

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-24 20:01:34 +00:00
gaaclarke
8fb4a66d39 Cleaned up BufferBindingsGLES::BindUniformBuffer (flutter/engine#56777)
* removes usages of auto
* adds a std::vector::reserve
* renames improperly named local variable

## 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-11-24 11:30:53 -08:00
skia-flutter-autoroll
948fdeee93 Roll Skia from ded8ab47ee69 to 01a3a55f1d54 (1 revision) (flutter/engine#56779)
https://skia.googlesource.com/skia.git/+log/ded8ab47ee69..01a3a55f1d54

2024-11-24 vigneshv@google.com Revert "Reland "SkCodec: Remove the sysprop guard for SkCrabbyAvifCodec""

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 aaclarke@google.com,brianosman@google.com,danieldilan@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-24 08:24:33 +00:00
gaaclarke
b23720bf68 Smaller reactor handle locks (flutter/engine#56768)
This reduces the amount of work that is happening inside the read/write
mutex for tracking handles in the Reactor.
1) Now gl cleanup calls happen outside of the write lock
1) Now setting gl debug texts are out of the write lock
1) Now creating objects with CreateHandle are out of the write lock

Jonah was seeing considerable time in the rwmutex, this should alleviate
some of that.


![setlabel](https://github.com/user-attachments/assets/6ebe247b-76f4-457f-b28b-70ddcd5615a8)

issue: https://github.com/flutter/flutter/issues/159177

tests: no functional change, just performance

## 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-11-23 14:14:52 -08:00
skia-flutter-autoroll
e0084fe36b Roll Fuchsia Linux SDK from D5CBHuB2c-v3Zai-c... to XOyk4KAUqAnkgC2WY... (flutter/engine#56775)
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 aaclarke@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-23 19:59:35 +00:00
skia-flutter-autoroll
57af1fa4fc Roll Dart SDK from 202083b79ac5 to df716eaa6ed2 (1 revision) (flutter/engine#56773)
https://dart.googlesource.com/sdk.git/+log/202083b79ac5..df716eaa6ed2

2024-11-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-183.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 aaclarke@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-23 08:08:37 +00:00
skia-flutter-autoroll
95bfdadec6 Roll Dart SDK from eb01a0430f72 to 202083b79ac5 (1 revision) (flutter/engine#56772)
https://dart.googlesource.com/sdk.git/+log/eb01a0430f72..202083b79ac5

2024-11-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-182.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 aaclarke@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-23 03:58:30 +00:00
Chris Bracken
2c1d5bbc8a iOS: Fix typo in fluttterViewController (flutter/engine#56770)
Ran into this typo during a separate refactoring. Breaking it out to avoid an already large patch getting any bigger.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-23 01:46:21 +00:00
skia-flutter-autoroll
f764f183dc Roll Skia from e7caf38140ce to c3d9596a93f8 (2 revisions) (flutter/engine#56765)
https://skia.googlesource.com/skia.git/+log/e7caf38140ce..c3d9596a93f8

2024-11-22 nscobie@google.com [graphite] Allow clients to configure active logging level
2024-11-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from a049ff55ff14 to c0ad379b6c58

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 aaclarke@google.com,brianosman@google.com,michaelludwig@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-22 23:57:27 +00:00
auto-submit[bot]
2805143dd5 Reverts "[engine] more consistently flush dart event loop, run vsync callback immediately (#56738)" (flutter/engine#56767)
Reverts: flutter/engine#56738
Initiated by: jonahwilliams
Reason for reverting: speculative revert for framework failures.
Original PR Author: jonahwilliams

Reviewed By: {jason-simmons}

This change reverts the following previous change:
Changes the following shell callbacks to flush the dart event loop:

* OnPlatformViewSetViewportMetrics
* OnPlatformViewDispatchPointerDataPacket
* OnPlatformViewDispatchPlatformMessage
* OnPlatformViewSetSemanticsEnabled
* OnPlatformViewSetAccessibilityFeatures

Using a new TaskRunner API RunNowAndFlushMessages. If the task runner can run tasks on the current thread, this will immediately invoke a callback and then post an empty task to the event loop to ensure dart listeners fire.

This also updates the vsync waiter to use RunNowOrPostTask, so that we start vsync events as early as possible.
2024-11-22 23:51:26 +00:00
skia-flutter-autoroll
3fca18a7a5 Roll Dart SDK from 8b65a7a628e2 to eb01a0430f72 (2 revisions) (flutter/engine#56764)
https://dart.googlesource.com/sdk.git/+log/8b65a7a628e2..eb01a0430f72

2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-181.0.dev
2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-180.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 aaclarke@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-22 23:35:15 +00:00
Jonah Williams
8aabbdf368 [Impeller] delete Impeller sim opt out. (flutter/engine#56706)
Impeller only on simulators.
2024-11-22 21:10:00 +00:00
Jason Simmons
d6095e5be3 [Impeller] Ensure that SnapshotControllerImpeller has a rendering context before creating the snapshot (flutter/engine#56743)
The Skia snapshot controller will activate the delegate's surface render context on the current thread.  If the delegate has no surface, then it will use the snapshot surface producer to create a temporary surface.

The Impeller snapshot controller needs to do the same in order to support OpenGL/GLES scenarios where the thread does not currently have an EGL context.
2024-11-22 20:46:39 +00:00
Jim Graham
dee413e427 [DisplayList] migrate DlColorSource objects to Impeller geometry (flutter/engine#56735)
The DlColorSource code uses Skia geometry classes for its internal computations. This PR switches those implementations to use the Impeller geometry classes for consistency and 3rd party header file independence.
2024-11-22 20:30:21 +00:00
Chinmay Garde
219060790d [Impeller] libImpeller: Tinker on the README. (flutter/engine#56761)
Also adds references to the C++ wrapper and examples.
2024-11-22 20:26:14 +00:00
Jonah Williams
4a17eac8a1 [Impeller] dont create temp vec for discard. (flutter/engine#56759)
This can have at most 3 entries so just use an array to avoid heap allocation.
2024-11-22 20:26:11 +00:00
skia-flutter-autoroll
a8b975b315 Roll Fuchsia Linux SDK from zhFzwYCH-N_wasTnM... to D5CBHuB2c-v3Zai-c... (flutter/engine#56757)
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 aaclarke@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-22 18:47:02 +00:00
skia-flutter-autoroll
cdaba7b7bc Roll Dart SDK from 141291fd570d to 8b65a7a628e2 (1 revision) (flutter/engine#56755)
https://dart.googlesource.com/sdk.git/+log/141291fd570d..8b65a7a628e2

2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-179.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 aaclarke@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-22 18:45:05 +00:00
Jonah Williams
7e786d8dc8 [Impeller] cache and reuse openGL framebuffer attachments. (flutter/engine#56746)
Creating and attaching textures/render buffers to a FBO is an expensive operation. Similar to how we cache vulkan framebuffers/render passes, we can cache the FBO object on the color0 texture to avoid extra state invalidation.

Part of https://github.com/flutter/flutter/issues/159177
2024-11-22 17:43:43 +00:00
skia-flutter-autoroll
d3a6012bfa Roll Skia from 700e685861c8 to e7caf38140ce (25 revisions) (flutter/engine#56756)
https://skia.googlesource.com/skia.git/+log/700e685861c8..e7caf38140ce

2024-11-22 jlavrova@google.com Reland "Making fontStyle and fixedPitch fields "virtual""
2024-11-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 1f0ac74a7a93 to 10c2dc7a1b4b (14 revisions)
2024-11-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from fc122129fa28 to 6c717e914923 (5 revisions)
2024-11-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 2b2d3ae5900c to 808d8a5c3b87 (6 revisions)
2024-11-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from d2ad5a36f4e6 to eef82f6f51a2 (16 revisions)
2024-11-21 jlavrova@google.com Revert "Making fontStyle and fixedPitch fields "virtual""
2024-11-21 jlavrova@google.com Making fontStyle and fixedPitch fields "virtual"
2024-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll vulkan-deps from 94069332c202 to fc122129fa28 (8 revisions)
2024-11-21 lukasza@chromium.org [rust png] Integrate `cICP` support into `SkPngRustCodec`.
2024-11-21 robertphillips@google.com [graphite] Remove deprecated Precompile API call
2024-11-21 robertphillips@google.com [graphite] Add more Test job suppressions for Dawn thread race
2024-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 74f74b63df26 to 1f0ac74a7a93 (13 revisions)
2024-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 7fb17334e756 to 2b2d3ae5900c (7 revisions)
2024-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 839eadc23139 to d2ad5a36f4e6 (15 revisions)
2024-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3c7156644de7 to 94069332c202 (11 revisions)
2024-11-20 vigneshv@google.com Reland "SkCodec: Remove the sysprop guard for SkCrabbyAvifCodec"
2024-11-20 kjlubick@google.com Fix Vello build rules
2024-11-20 robertphillips@google.com [graphite] Add a more robust threaded Compile/Precompile test
2024-11-20 jvanverth@google.com Fix verylarge_picture on Adreno Vulkan.
2024-11-20 kjlubick@google.com Reland "add triangulated gradient effect"
2024-11-20 lokokung@google.com Uses newer APIs for device.PopErrorScope in DawnErrorChecker.
2024-11-20 danieldilan@google.com Clamp alpha in SkScan_AAAPath to int32_max to avoid integer overflow.
2024-11-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 987cc0de1d4c to 74f74b63df26 (11 revisions)
2024-11-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 867065ecbb6a to 3c7156644de7 (4 revisions)
2024-11-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from b51256461a37 to 7fb17334e756 (10 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 aaclarke@google.com,brianosman@google.com,michaelludwig@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-22 17:42:02 +00:00
skia-flutter-autoroll
4e88679b4f Roll Dart SDK from c1106f7e4cde to 141291fd570d (1 revision) (flutter/engine#56748)
https://dart.googlesource.com/sdk.git/+log/c1106f7e4cde..141291fd570d

2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-178.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 aaclarke@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-22 07:59:26 +00:00
Jonah Williams
602ab9846d [engine] more consistently flush dart event loop, run vsync callback immediately (flutter/engine#56738)
Changes the following shell callbacks to flush the dart event loop:

* OnPlatformViewSetViewportMetrics
* OnPlatformViewDispatchPointerDataPacket
* OnPlatformViewDispatchPlatformMessage
* OnPlatformViewSetSemanticsEnabled
* OnPlatformViewSetAccessibilityFeatures

Using a new TaskRunner API RunNowAndFlushMessages. If the task runner can run tasks on the current thread, this will immediately invoke a callback and then post an empty task to the event loop to ensure dart listeners fire.

This also updates the vsync waiter to use RunNowOrPostTask, so that we start vsync events as early as possible.
2024-11-22 07:47:17 +00:00
Chris Bracken
39db174656 Extract backend-specific code in ShellTestPlatformView (flutter/engine#56722)
Moves code specific to each graphics backend into the (existing) translation unit associated with that backend.

Previously, we could not include any Objective-C types in `shell_test_platform_view_metal.h`, since that file was included into `shell_test_platform_view.cc`, which is pure C++. To work around this, we had encapsulated Objective-C Metal types in a `DarwinContextMetal` struct hidden in the implementation file with a pointer to it forward-declared in the header.

We now use Metal types directly in the header, without the workarounds.

Issue: https://github.com/flutter/flutter/issues/158998
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-22 07:40:29 +00:00
Chris Bracken
5883c1a69b Eliminate ShellTestPlatformView::BackendType::kDefaultBackendType (flutter/engine#56744)
`kDefaultBackendType` is intended to make life easier for authors of tests, but in any switch statement where it's used (currently just a single location), we rely on ordering it first and `#ifdef`ing out all backends that aren't available.

Instead, we define a static function that returns the default that callers can invoke instead. This avoids relinace on case ordering and fallthrough.

In https://github.com/flutter/engine/pull/56722 we split backends out into separate translation units, and ideally should remove the `#ifdef`s, which means we can't rely on this trick anymore.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-22 05:47:20 +00:00
skia-flutter-autoroll
de48b04e35 Roll Dart SDK from b36e4d731d67 to c1106f7e4cde (12 revisions) (flutter/engine#56742)
https://dart.googlesource.com/sdk.git/+log/b36e4d731d67..c1106f7e4cde

2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-177.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-176.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-175.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-174.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-173.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-172.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-171.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-170.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-169.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-168.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-167.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-166.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 aaclarke@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-22 02:52:08 +00:00
Chinmay Garde
13e15ab91b [Impeller] libImpeller: A C++ wrapper to the Impeller API. (flutter/engine#56682)
_`impeller.hpp` is to `impeller.h` what `vulkan.hpp` is to `vulkan.h`_

* A single header C++ 17 library that only depends on impeller.h and standard libc++ utilities.
* The C++ library proc. table is setup at runtime (via dlsym and related methods). Impeller users don't need to link against libimpeller.so as long as they can discover it at runtime.
* RAII wrappers for all opaque objects.
* Namespaces are configurable depending on target.
* Included in the distributed SDK next to impeller.h.
2024-11-22 00:56:32 +00:00
Chinmay Garde
daa09b9a64 [Impeller] Run simulator tests with Impeller enabled. (flutter/engine#56740)
The Info.plist override was missed earlier.

The main changes to the tests are due to the UI thread merge with the platform thread. The amendment to the "spawn" API are due to the fact that the assertions checked for the presence of GrDirectContext which will never exist with Impeller.

Unblocks https://github.com/flutter/engine/pull/56706
2024-11-21 23:48:59 +00:00
auto-submit[bot]
8958ff46da Reverts "[Impeller] support GLES 3.0 MSAA without extension. (#56705)" (flutter/engine#56741)
Reverts: flutter/engine#56705
Initiated by: jonahwilliams
Reason for reverting: goldens occassionally fail to render anything.
Original PR Author: jonahwilliams

Reviewed By: {gaaclarke}

This change reverts the following previous change:
Adds multisampling support for GLES devices without GL_EXT_multisampled_render_to_texture provided they are at least GLES 3.0 to support mutlisampled render buffers.

Fixes https://github.com/flutter/flutter/issues/158360
Fixes https://github.com/flutter/flutter/issues/157951

TBD: should we prefer renderbuffer 3.0 approach over multisample_render_to_texture?
2024-11-21 23:18:48 +00:00
skia-flutter-autoroll
0e426efd96 Roll Dart SDK from dde57dc75c15 to b36e4d731d67 (1 revision) (flutter/engine#56723)
https://dart.googlesource.com/sdk.git/+log/dde57dc75c15..b36e4d731d67

2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-165.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 aaclarke@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-21 22:30:33 +00:00
Daco Harkes
09e3b52bdf [native assets] Consume NativeAssetsManifest.json (flutter/engine#56727)
This PR introduces a `NativeAssetsManifest.json` next to the `AssetManifest.json` and `FontManifest.json`. This removes the need for embedding the native assets mapping inside the kernel file and will enable decoupling native assets building and bundling from the kernel compilation in flutter tools. This will then allow us to remove dry-run from the build hook protocol.

(It also means all isolate groups will have the same native assets. However, since Flutter does not support `Isolate.spawnUri` from kernel files anyways, this is not a regression.)

This manifest is parsed eagerly on startup by the engine in a manner similar to how the font manifest is parsed. The manifest contents need to be available in the callback for resolving assets, which does not have access to the engine. Therefore the parsed manifest is `NativeAssetsManager` stored in the `IsolateGroupData`. The engine passes it in on isolate group creation, and the FFI callbacks access it from the isolate group data.

Issue:

* https://github.com/flutter/flutter/issues/154425

Related PRs:

* https://dart-review.googlesource.com/c/sdk/+/388161

Follow up work:

* This PR does not yet remove the engine callbacks registered via the dart_api that rely on kernel embedding. If we were to do that in this PR, it would require a manual roll of the engine into flutter/flutter with the PR that switches flutter_tools to emit the native assets manifest instead of embedding in kernel, and a manual roll into g3 to switch emitting a manifest instead of embedding in kernel. A TODO is left in the code for those callbacks to be removed.

## Testing

Most of this PR cannot be tested in isolation. The code in this PR is heavily exercised in the follow up flutter_tools PR which creates the `NativeAssetsManifest.json` and removes the embedding of native assets in kernel files.

* This PR adds a unit test for parsing the JSON manifest.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-21 18:01:46 +00:00
Jonah Williams
47ba585ccf [Impeller] support GLES 3.0 MSAA without extension. (flutter/engine#56705)
Adds multisampling support for GLES devices without GL_EXT_multisampled_render_to_texture provided they are at least GLES 3.0 to support mutlisampled render buffers.

Fixes https://github.com/flutter/flutter/issues/158360
Fixes https://github.com/flutter/flutter/issues/157951

TBD: should we prefer renderbuffer 3.0 approach over multisample_render_to_texture?
2024-11-21 18:01:44 +00:00
gaaclarke
60378be0f6 Updated some impeller benchmark urls (flutter/engine#56721)
The urls that use keys seem to atrophy quickly

## 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-11-21 09:39:58 -08:00
skia-flutter-autoroll
eea27fa310 Roll Fuchsia Linux SDK from oq6Ztlu1b1mgdDSPH... to zhFzwYCH-N_wasTnM... (flutter/engine#56736)
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 aaclarke@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-21 15:42:09 +00:00
Mouad Debbar
b56fac41f9 [web] Make sure to include all split fonts (flutter/engine#56733)
The `csslib` parser was not reliably parsing all URLs in the CSS response. I'm switching to using a RegExp to extract all URLs reliably.

Fixes https://github.com/flutter/flutter/issues/159215
2024-11-21 14:35:18 +00:00
Mouad Debbar
3e281cda44 [web] Work around wrong pointerId in coalesced events in iOS Safari 18.2 (flutter/engine#56719)
In iOS 18.2, Safari [added support](https://developer.apple.com/documentation/safari-release-notes/safari-18_2-release-notes#Web-API) for the [`getCoalescedEvents`](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/getCoalescedEvents) API.

That being said, the API seems to be incomplete (or at least doesn't match other browsers' behavior). The coalesced events lack a [`pointerId`](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId) and [`target`](https://developer.mozilla.org/en-US/docs/Web/API/Event/target) properties.

I'm not sure if this issue will be fixed in the stable release of iOS 18.2, so in the meantime, this PR implements a workaround to avoid this issue.

Fixes https://github.com/flutter/flutter/issues/158299
Fixes https://github.com/flutter/flutter/issues/155987
2024-11-21 14:33:28 +00:00
AthulJoseph
4705535548 [Flutter GPU] Added support to set Scissor. (flutter/engine#56302)
Added support to set scissors. This resolves issue #157199
2024-11-21 05:52:54 +00:00
Juanjo Tugores
69da421d98 Enable view focus (flutter/engine#54966)
Enable view focus

https://github.com/flutter/flutter/issues/153022

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-21 05:49:05 +00:00
Robert Ancell
504bff9b26 Allow GTK style enum naming (flutter/engine#56731)
Remove the linting overrides for enum names and set this in the
clang-format file.
2024-11-21 15:16:43 +13:00
Tong Mu
de98354d8e Fix: Impeller playground's shapes should react to controllers (flutter/engine#56734)
Fixes https://github.com/flutter/flutter/issues/159213

I've went through all `static` in the file and removed the ones that I think are incorrect.

<img width="1136" alt="image" src="https://github.com/user-attachments/assets/29fe63ed-d077-4384-88ec-2f80dcc8c719">

I've experimented with all entity playgrounds to make sure their controllers work, except for `BlendingModeOptions`, which doesn't change whatsoever and I can't figure out.

This PR should not need tests, as it fixes the tests.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-20 21:58:22 +00:00
Jim Graham
e3d616ca84 [DisplayList] migrate DlImageFilter code to Impeller geometry classes (flutter/engine#56720)
The DlImageFilter code uses Skia geometry classes for its internal computations. This PR switches those implementations to use the Impeller geometry classes for consistency and 3rd party header file independence.
2024-11-20 20:47:37 +00:00
Robert Ancell
56686525b2 Split channel messaging out of handlers (flutter/engine#56667)
Split the channel messaging out of the system channels to make them
simpler to understand and refactor.

The new channel classes could be automatically generated in a second
phase, e.g. using Pigeon to reduce code usage.

The new classes don't have tests as they will already be covered by the
existing code.
2024-11-21 09:32:20 +13:00