26807 Commits

Author SHA1 Message Date
gaaclarke
d65bd10007 [Impeller] cleaned up semantics for RenderPipelineT and added docstrings (flutter/engine#52237)
I just tried to capture all thing things I found confusing about these
and clean them up. We were mixing up Pipeline and RenderPipelineT in our
generics arguments and RenderPipelineT wasn't clear since it was named
like a template parameter but was a runtime type.

Summary of edits:
-  RenderPipelineT -> RenderPipelineHandle
- Added docstrings for RenderPipelineHandle and Variants
- cleaned up generics parameters to ContentContext methods and Variants
- replaced references that called the variant's default pipeline handle
a "prototype" since it clashed with places that just call it the
"default".

## 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-04-19 09:15:08 -07:00
skia-flutter-autoroll
f7456a3d4a Roll Skia from 0bdd0daaa3fc to d01e53b8beb7 (2 revisions) (flutter/engine#52260)
https://skia.googlesource.com/skia.git/+log/0bdd0daaa3fc..d01e53b8beb7

2024-04-19 bungeman@google.com Roll depot_tools and recipes-py
2024-04-19 brianosman@google.com Always pin the sweepAngle in CreateDrawArcPath

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-19 15:36:06 +00:00
skia-flutter-autoroll
3a1fc298b3 Roll Dart SDK from 3e139f5d0720 to 1c49f17b5437 (1 revision) (flutter/engine#52259)
https://dart.googlesource.com/sdk.git/+log/3e139f5d0720..1c49f17b5437

2024-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-79.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,jsimmons@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-04-19 14:22:17 +00:00
skia-flutter-autoroll
27147c0d9e Roll Fuchsia Linux SDK from peYcbx9eguHcbhMP0... to RruZA4WorQDkGpz25... (flutter/engine#52252)
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 jsimmons@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-19 06:35:44 +00:00
skia-flutter-autoroll
b0969ac415 Roll Dart SDK from a46161eec56d to 12e49f395fd9 (1 revision) (flutter/engine#52251)
https://dart.googlesource.com/sdk.git/+log/a46161eec56d..12e49f395fd9

2024-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-77.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,jsimmons@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-04-19 06:34:00 +00:00
skia-flutter-autoroll
e2c4bd0002 Roll Skia from ca5481ebd0fb to 7ad507eca0bd (2 revisions) (flutter/engine#52249)
https://skia.googlesource.com/skia.git/+log/ca5481ebd0fb..7ad507eca0bd

2024-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 764410d4d655 to 9aec4b969291 (2 revisions)
2024-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from e3ade2b88835 to dcb627bc133f (17 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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-19 06:28:33 +00:00
skia-flutter-autoroll
d0ff3fa1a4 Roll Dart SDK from 62b85ea79bce to a46161eec56d (1 revision) (flutter/engine#52243)
https://dart.googlesource.com/sdk.git/+log/62b85ea79bce..a46161eec56d

2024-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-76.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,jsimmons@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-04-19 02:27:05 +00:00
Brian Quinlan
13be0415cf Add a dependency on package:web_socket in pkg_demo_test (flutter/engine#52239)
`package:web_socket` is used by newer versions `package:web_socket_channel`.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-19 01:35:00 +00:00
skia-flutter-autoroll
514dbb18a7 Roll Skia from 8fd4d8eaadc2 to fef9f270935c (7 revisions) (flutter/engine#52240)
https://skia.googlesource.com/skia.git/+log/8fd4d8eaadc2..fef9f270935c

2024-04-18 nscobie@google.com [graphite] Refactor VULKAN_CALL_RESULT to call checkVkResult
2024-04-18 bungeman@google.com [pdf] Emit FontFamily/Stretch/Weight for Type3
2024-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aa20d192b8c4 to 707349d2ea9e (3 revisions)
2024-04-18 bungeman@google.com Run gn_to_bp.py with python3
2024-04-18 michaelludwig@google.com [graphite] Add TextureProxyView::replaceSwizzle()
2024-04-18 michaelludwig@google.com Revert "[graphite] Remember last snapped task for scratch devices"
2024-04-18 johnstiles@google.com Implement ASAN poisoning for TArray reserved capacity.

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-19 00:25:37 +00:00
Jonah Williams
44f81fa6e8 [Impeller] dont use half precision constants / Fixes for SPIRV tools roll (flutter/engine#52213)
See b/335381180

In an upcoming version of SPIRV tools, these constants are being flagged as invalid. Due to some combination of the macros + inlining we're ending up with multiple precision modifiers on the constants:

```
third_party/flutter_engine/impeller/entity/shaders/radial_gradient_fill.frag: GLSL to SPIRV failed; Compilation error. 0 error(s) and 1 warning(s).
third_party/flutter_engine/impeller/entity/shaders/radial_gradient_fill.frag:14: warning: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
third_party/flutter_engine/impeller/entity/shaders/radial_gradient_fill.frag:          "precision mediump int; precision highp float;" 
shaderc: internal error: compilation succeeded but failed to optimize: ID '112' decorated with RelaxedPrecision multiple times is not allowed.
  %float_n0_474999994 = OpConstant %float -0.474999994
  ```
  
  We don't really benefit from half precision on these, since we're either using them for equality or can cheaply convert to half precision anyway.
2024-04-18 23:08:02 +00:00
skia-flutter-autoroll
450d9a8036 Roll Skia from edece87ce734 to 8fd4d8eaadc2 (1 revision) (flutter/engine#52238)
https://skia.googlesource.com/skia.git/+log/edece87ce734..8fd4d8eaadc2

2024-04-18 johnstiles@google.com Move SkFloatBits.h into src/base instead of include/private.

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 22:56:57 +00:00
Tong Mu
1e085fee4c [macOS] Rename viewId to viewIdentifier (flutter/engine#52202)
This PR adds `FlutterViewController` with new API `viewIdentifier` and
renames all occasions that mention "viewId" to "viewIdentifier", to
align with the requirement for the iOS shell.

A new typedef `FlutterViewIdentifier` is also added. ~~The problem is,
we don't have a file to contain this typedef. Currently I put them in a
new file called `common.h`. I'm open to other suggestions.~~ It has been
moved to `FlutterViewController.h`.
* Another alternative is to not use the type def, but use `int64_t`
directly. I'm ok with this choice too, since honestly it's just a 64
int.

Also, macOS's definition for `kFlutterImplicitViewId` has been removed
in favor of the one in `common/constants.h`.

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] 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-04-18 15:05:01 -07:00
skia-flutter-autoroll
f11a13edac Roll Skia from 1af1e478ef85 to edece87ce734 (5 revisions) (flutter/engine#52233)
https://skia.googlesource.com/skia.git/+log/1af1e478ef85..edece87ce734

2024-04-18 johnstiles@google.com Fix crash in nanobench IsFinite benchmark.
2024-04-18 michaelludwig@google.com [graphite] Add Image_YUVA::Wrap factory to handle validation
2024-04-18 kjlubick@google.com Add EGL factory
2024-04-18 johnstiles@google.com Update format strings in docs/examples for correct signedness.
2024-04-18 johnstiles@google.com Round up SkSTArray storage to an 8 byte multiple.

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 20:49:09 +00:00
Chinmay Garde
3bba94a45f Suppress in-actionable warnings in the iOS profiler. (flutter/engine#52227)
This is a benign log that is not actionable to the end user. The profiler checker for this and tries again anyway.

Fixes https://github.com/flutter/flutter/issues/116193
2024-04-18 19:50:27 +00:00
gaaclarke
75b0fe2aad [Impeller] sorted commonly used default pipelines first (flutter/engine#52231)
A minor optimization that places default pipelines that are synchronized
upon in the `InitializeCommonlyUsedShadersIfNeeded` first in the queue
to be created.

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

sequence diagram of the synchronization:

![pipeline-seq](https://github.com/flutter/engine/assets/30870216/b70d84fb-2e8e-4d08-a404-ae1434ad03da)

## 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-04-18 12:37:52 -07:00
skia-flutter-autoroll
b5ac544d30 Roll Skia from dc6df9137614 to 1af1e478ef85 (10 revisions) (flutter/engine#52230)
https://skia.googlesource.com/skia.git/+log/dc6df9137614..1af1e478ef85

2024-04-18 nscobie@google.com [graphite] Remove merge error comment from QueueManager
2024-04-18 jvanverth@google.com Fix backquotes in iOS docs.
2024-04-18 johnstiles@google.com Remove sk_float|double macros which mirror <cmath> functions.
2024-04-18 johnstiles@google.com Remove dependency on SkFloatBits.h from SkFloatingPoint.h.
2024-04-18 johnstiles@google.com Remove code from docs/examples which uses SkBits2Float.
2024-04-18 jvanverth@google.com Update iOS docs to include new GN signing variable.
2024-04-18 brianosman@google.com Add snapshot and detach to SkPath
2024-04-18 michaelludwig@google.com [graphite] Remember last snapped task for scratch devices
2024-04-18 bungeman@google.com Move to vpython 3.11
2024-04-18 kjlubick@google.com Minor Bazel rule fixes

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 19:02:20 +00:00
Michael Goderbauer
9d5b33fff8 Fix docs for SemanticsAction (flutter/engine#52229)
The old rendering:

![image](https://github.com/flutter/engine/assets/1227763/201c1bed-b27b-40de-8abf-0c091fb20d3f)

This changes uses markdown syntax introduced in 5fab3a7bc8

Fixes https://github.com/flutter/flutter/issues/94494.
2024-04-18 18:32:03 +00:00
skia-flutter-autoroll
0241272a8b Roll Dart SDK from a0caf3de902d to 8d834bbb2163 (1 revision) (flutter/engine#52228)
https://dart.googlesource.com/sdk.git/+log/a0caf3de902d..8d834bbb2163

2024-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-74.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,jsimmons@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-04-18 18:09:13 +00:00
Jonah Williams
41346b0801 [Impeller] Reland: remove most temporary allocation during polyline generation. (flutter/engine#52180)
Part of https://github.com/flutter/flutter/issues/143077

Only allocate into reused arenas instead of allocating a new vector of data. Fixes https://github.com/flutter/flutter/issues/133348

Also moves tessellation logic into the c/tessellator and out of the impeller tessellator. This was necessary to fix a compilation error. introduced by including host_buffer -> allocator -> fml mapping -> window.h include which has a function definition that conflicts with the c tessellator definition.

Fixes missing points in case a filled path is not explicitly closed.
2024-04-18 16:50:07 +00:00
skia-flutter-autoroll
5399f62f03 Roll Skia from 1f74f67959f2 to dc6df9137614 (2 revisions) (flutter/engine#52224)
https://skia.googlesource.com/skia.git/+log/1f74f67959f2..dc6df9137614

2024-04-18 johnstiles@google.com Fix Clang warning in release about unused variables.
2024-04-18 bungeman@google.com Remove add_codereview_message.py

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 16:46:12 +00:00
skia-flutter-autoroll
9daf77caa9 Roll Skia from d7f79d7183cd to 1f74f67959f2 (3 revisions) (flutter/engine#52223)
https://skia.googlesource.com/skia.git/+log/d7f79d7183cd..1f74f67959f2

2024-04-18 kjlubick@google.com Add public interface to create iOS GrGLInterface
2024-04-18 kjlubick@google.com Add public interface to create Mac GrGLInterface
2024-04-18 kjlubick@google.com Remove shim GrBackendDrawableInfo.h

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 14:53:20 +00:00
skia-flutter-autoroll
1cc5cedd4e Roll Dart SDK from 415669e2604d to a0caf3de902d (1 revision) (flutter/engine#52222)
https://dart.googlesource.com/sdk.git/+log/415669e2604d..a0caf3de902d

2024-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-73.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,jsimmons@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-04-18 13:56:15 +00:00
skia-flutter-autoroll
5b2d86cec7 Roll Skia from 4fb772942c5c to d7f79d7183cd (1 revision) (flutter/engine#52221)
https://skia.googlesource.com/skia.git/+log/4fb772942c5c..d7f79d7183cd

2024-04-18 johnstiles@google.com Remove unreferenced function in SkFloatingPoint.

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 13:56:12 +00:00
skia-flutter-autoroll
34909e420f Roll Skia from d221c1591d59 to 32a36614f879 (1 revision) (flutter/engine#52217)
https://skia.googlesource.com/skia.git/+log/d221c1591d59..32a36614f879

2024-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 758eb2157020 to e3ade2b88835 (2 revisions)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-18 05:44:34 +00:00
skia-flutter-autoroll
6cc6197d6d Roll Dart SDK from 45dd87c2329c to 415669e2604d (1 revision) (flutter/engine#52216)
https://dart.googlesource.com/sdk.git/+log/45dd87c2329c..415669e2604d

2024-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-72.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,jsimmons@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-04-18 05:08:22 +00:00
skia-flutter-autoroll
afdb0a9661 Roll Skia from a3a016537a8c to d221c1591d59 (2 revisions) (flutter/engine#52210)
https://skia.googlesource.com/skia.git/+log/a3a016537a8c..d221c1591d59

2024-04-17 johnstiles@google.com Update SkBits2Float and SkFloat2Bits to use uint32_t.
2024-04-17 bungeman@google.com Revert "Roll depot_tools, recipes-py, python 3.11"

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 23:25:39 +00:00
Jim Graham
5d22912344 DisplayList tracks maximum render op depths (flutter/engine#52070)
The DisplayList will now track the "render depth" of all rendering ops and provide the total content depth for DisplayList and save[Layer]/restore pairs to enable depth clipping in the back ends.

The depth accounting process is described in the class comment for `DlOpReceiver`
2024-04-17 23:13:28 +00:00
Jonah Williams
bccb307c2c [Impeller] Off by default experimental canvas. (flutter/engine#52035)
Canvas implementation that renders directly, requires ENABLE_EXPERIMENTAL_CANVAS to be set to true and only wired up for android/vulkan.

Currently missing:
* Clips
* backdrop filters
* opacity peephole
* More?

This will eventually allow us to delete the aiks layer and cut out most conversion costs. Part of https://github.com/flutter/flutter/issues/142054
2024-04-17 22:38:16 +00:00
skia-flutter-autoroll
cdf8ac73f1 Roll Skia from 5958cd52db48 to a3a016537a8c (3 revisions) (flutter/engine#52208)
https://skia.googlesource.com/skia.git/+log/5958cd52db48..a3a016537a8c

2024-04-17 bungeman@google.com Roll depot_tools, recipes-py, python 3.11
2024-04-17 bungeman@google.com Remove SkRemotableFontMgr
2024-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from cfb2d3940fbd to afa5f1b307bd

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 22:26:13 +00:00
skia-flutter-autoroll
728e164f0e Roll Dart SDK from bd7627bca67b to 45dd87c2329c (1 revision) (flutter/engine#52207)
https://dart.googlesource.com/sdk.git/+log/bd7627bca67b..45dd87c2329c

2024-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-71.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,jsimmons@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-04-17 22:10:11 +00:00
Jason Simmons
faf78247cb Fix CkBrowserImageDecoder conversion of images to ImageByteFormat.rawRgba and rawStraightRgba (flutter/engine#52089)
VideoFrames of decoded images typically contain BGRA format.  The CkBrowserImageDecoder implementation of toByteData needs to convert that into RGBA format.  If the output format is rawRgba then it also needs to apply premultipled alpha.

Also fixes an issue where _bgrToRgba was not converting all pixels in the image.

Fixes https://github.com/flutter/flutter/issues/135409
Fixes https://github.com/flutter/flutter/issues/144770
2024-04-17 21:44:47 +00:00
skia-flutter-autoroll
e9c8bbee6c Roll Skia from a78dec0c0538 to 5958cd52db48 (2 revisions) (flutter/engine#52206)
https://skia.googlesource.com/skia.git/+log/a78dec0c0538..5958cd52db48

2024-04-17 johnstiles@google.com Update format strings to take signedness into account.
2024-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6bcdc072b044 to 6066c0d57a8b (4 revisions)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 21:30:05 +00:00
Robert Ancell
2ba71d60e9 Fix incorrect function name in documentation (flutter/engine#52184) 2024-04-18 09:23:21 +12:00
skia-flutter-autoroll
4d35fda4c8 Roll Skia from 0c56bd472923 to a78dec0c0538 (4 revisions) (flutter/engine#52205)
https://skia.googlesource.com/skia.git/+log/0c56bd472923..a78dec0c0538

2024-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll Skia Infra from 61056bfd26b3 to 758eb2157020 (9 revisions)
2024-04-17 brianosman@google.com Add chaining capability to SkPath offset and transform
2024-04-17 jamesgk@google.com Move some Ganesh circle blur code to gpu/
2024-04-17 johnstiles@google.com Initialize more fields in VulkanBackendContext.

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 20:31:08 +00:00
Brandon DeRosier
03328509fe [Impeller] Delete EntityPass::AddSubpassInline. (flutter/engine#52182)
This is dead code now that we don't handle pictures with Aiks.
2024-04-17 19:54:07 +00:00
skia-flutter-autoroll
7419220286 Roll Skia from 2790777048d3 to 0c56bd472923 (4 revisions) (flutter/engine#52203)
https://skia.googlesource.com/skia.git/+log/2790777048d3..0c56bd472923

2024-04-17 michaelludwig@google.com [graphite] Combine YUVA and regular promise image callbacks
2024-04-17 jcgregorio@google.com Remove all Mac 10.13 and 10.14 jobs.
2024-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from 9727f56830b9 to cfb2d3940fbd
2024-04-17 michaelludwig@google.com Discard data written to a null BufferWriter

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 19:29:03 +00:00
Matej Knopp
e016cf4d04 [macOS] Handle interleaved movement and gesture events (flutter/engine#52201)
Fixes https://github.com/flutter/flutter/issues/146893

The crash happens, because with magic mouse, it is quite common to
receive `mouseExited:` event while the gesture event is still in
progress. This would reset the gesture state while the gesture event is
still active, leading to assertion when the gesture event ends.

The state machine assumes that when mouse exists that also ends any
gesture events. However that is not the case with magic mouse, which
handles the movement and gesture events separately.

## 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-04-17 21:25:18 +02:00
Brandon DeRosier
00b651e46a [Impeller] Remove old clip height tracking from Entity. (flutter/engine#52178)
And rename clip depth accessors and members.

After this, I'm going to attempt to remove the need for tracking clip
height altogether in EntityPass as well.
2024-04-17 11:46:30 -07:00
Gray Mackall
49b9556e68 Replace LinkedLists that are used as a queue in android FlutterRenderer with ArrayDeques (flutter/engine#51494)
Inspired by https://github.com/flutter/engine/pull/50767.

[As their documentation notes](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html), `ArrayDeque`s are generally faster than LinkedList when used as a queue.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-17 18:43:57 +00:00
Brandon DeRosier
df1248e088 [Impeller] Use booleans instead of counting backdrop reads. (flutter/engine#52181)
We don't need to track the actual number of reads anymore now that clips
are replayed (since we no longer ever store the stencil or depth
buffers).

Also, we don't need to pass this into `InlinePassContext` anymore.
2024-04-17 11:43:17 -07:00
bungeman
5c2ff391b5 Update Skia's BUILD.gn (flutter/engine#52194)
Remove references to `SkFontMgr_indirect` and `SkFontMgrRemotable`.
These are not used by Flutter and Skia is removing them.
2024-04-17 13:48:09 -04:00
Alexander Markov
4b268e1ac8 Cleanup obsolete Dart VM flags (flutter/engine#52197)
Remove obsolete Dart VM flags from the lists of allowed Dart VM flags in
the engine.
2024-04-17 10:18:19 -07:00
skia-flutter-autoroll
f6936d2baf Roll Skia from 4b3b84c0beeb to 2790777048d3 (3 revisions) (flutter/engine#52198)
https://skia.googlesource.com/skia.git/+log/4b3b84c0beeb..2790777048d3

2024-04-17 bungeman@google.com Update documented minimum supported OSes
2024-04-17 borenet@google.com [recreate-skps] Sync depot_tools to most recent commit
2024-04-17 brianosman@google.com Remove unused constant from SkPathRef

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,jsimmons@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 17:08:19 +00:00
Yegor
2affc5230f [web] move AccessibilityAnnouncements into SemanticsOwner (flutter/engine#52138)
Move `AccessibilityAnnouncements` into `SemanticsOwner`, effectively making it a singleton (because `SemanticsOwner` is).

Fixes https://github.com/flutter/flutter/issues/139272
2024-04-17 16:49:07 +00:00
Loïc Sharma
e1b38345d3 [Windows] Add/remove view failures should not hang (flutter/engine#52164)
If the embedder API's `FlutterEngineAddView` and `FlutterEngineRemoveView` don't return `kSuccess`, their callbacks won't be invoked. See: [flutter.dev/go/multi-view-embedder-apis](https://flutter.dev/go/multi-view-embedder-apis).

Previously, the Windows embedder would hang in this scenario as it blocks until the callbacks are invoked. Now, the Windows embedder only blocks if these embedder APIs return `kSuccess`.

Kudos to @dkwingsmt for catching this!

Part of https://github.com/flutter/flutter/issues/144810
Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-04-17 16:44:28 +00:00
gaaclarke
e22b8448cb [Impeller] added static check that fragment shader and vertex shaders slots match (flutter/engine#52174)
fixes https://github.com/flutter/flutter/issues/146452

## 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-04-17 08:18:40 -07:00
Matej Knopp
4eb6676253 [macOS] FlutterSurfaceManager should not return surfaces that are in use (flutter/engine#52082)
Fixes https://github.com/flutter/flutter/issues/138936

Currently the engine hold a single backbuffer per flutter view layer,
which gets swapped with front buffer. This however is too optimistic, as
the front buffer in some cases might not get immediately picked up by
the compositor. When that happens, during next frame the cache may
return a backbuffer that is in fact still being used by the compositor.
Rendering to such surface will result in artifacts seen in the video.
This seems more likely to happen with busy platform thread. It is also
more likely to happen with the presence of "heavy" platform views such
as `WKWebView`.

IOSurface is able to report when it is being used by the compositor
(`IOSurfaceIsInUse`). This PR ensures that the backing store cache never
returns surface that is being used by compositor. This may result in
transiently keeping more surfaces than before, as the compositor
sometimes seems to holds on to the surface longer than it is displayed,
but that's preferable outcome to visual glitches.

This PR adds `age` field to `FlutterSurface`. When returning buffers to
the surface cache (during compositor commit), the age of each surface
currently present in cache increases by one, while the newly returned
surfaces have their age set to 0.

When returning surfaces from cache, a surface with lowest age that is
not in use by compositor is returned.

Surfaces with age that reaches 30 are evicted from the pool. Reaching
this age means one of two things:
- When surface is still in use at age 30 it means the compositor is
holding on to it much longer than we expect. In this case just forget
about the surface, we can't really do anything about it.
- When surface is not in use at age 30, it means it hasn't been removed
from cache for 29 subsequent frames. That means the cache is holding more
surfaces than needed.

Removing all surfaces from cache after idle period remains unchanged.

Before: 


https://github.com/flutter/engine/assets/96958/ba2bfc43-525e-4a88-b37c-61842994d3bc

After:


https://github.com/flutter/engine/assets/96958/8b5d393e-3031-46b1-b3f0-cb7f63f8d960


*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 `///`).
- [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-04-17 15:22:20 +02:00
Matej Knopp
0dc6ed3af1 [macOS] FlutterView should not override platform view cursor (flutter/engine#52159)
This fixes an edge case that I've overlooked in
https://github.com/flutter/engine/pull/43101.

It is possible to configure `FlutterViewController` tracking area with
`FlutterMouseTrackingModeAlways` option, in which case the tracking area
will call `[FlutterView cursorUpdate:]` unconditionally even if the
mouse cursor is over platform view and the platform view has already
handled the mouse update.

The solution is to prevent the `FlutterView` from updating the cursor
when the cursor is over a platform view. This can be accomplished by
doing a hitTest inside `[FlutterView cursorUpdate:]`.

## 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-04-17 15:17:53 +02:00
Matej Knopp
ef0bc66c15 [macOS] Handle reparenting platform views (flutter/engine#52152)
Fixes https://github.com/flutter/flutter/issues/146810

This handles situation where the platform view reparents and replaces
itself with a placeholder view. This commonly happens with WKWebView
entering full screen.

## 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-04-17 13:05:38 +02:00
skia-flutter-autoroll
1e6cdf37bd Roll Skia from f404603cc9e7 to 2b32391252f3 (1 revision) (flutter/engine#52189)
https://skia.googlesource.com/skia.git/+log/f404603cc9e7..2b32391252f3

2024-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 80097301710b to 61056bfd26b3 (4 revisions)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-17 06:28:22 +00:00