33266 Commits

Author SHA1 Message Date
skia-flutter-autoroll
604e25ec96 Roll Dart SDK from f1e37ed8917e to bb1b67b78b8d (1 revision) (flutter/engine#49073)
https://dart.googlesource.com/sdk.git/+log/f1e37ed8917e..bb1b67b78b8d

2023-12-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.3.0-232.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
2023-12-15 05:51:25 +00:00
Matan Lurey
23f7b463ef Move third_party/json to flutter/third_party/json. (flutter/engine#48844)
As part of eliminating the Flutter buildroot
(https://github.com/flutter/flutter/issues/67373), we are moving all
third-party dependencies from `//third_party` to
`//flutter/third_party`.
2023-12-14 20:54:37 -08:00
Matan Lurey
3aae0411b7 Automatically fix header guards in the rest of the flutter/engine repo. (flutter/engine#49059) 2023-12-15 04:11:06 +00:00
skia-flutter-autoroll
75b1c8d19a Roll Skia from 79f23e8d8b5d to cd2f06086c96 (1 revision) (flutter/engine#49069)
https://skia.googlesource.com/skia.git/+log/79f23e8d8b5d..cd2f06086c96

2023-12-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d4bd313283e0 to 65af791e6a06 (5 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,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
2023-12-15 03:34:05 +00:00
skia-flutter-autoroll
c770714926 Roll Dart SDK from 0471164827b9 to f1e37ed8917e (1 revision) (flutter/engine#49065)
https://dart.googlesource.com/sdk.git/+log/0471164827b9..f1e37ed8917e

2023-12-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.3.0-231.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
2023-12-15 01:43:15 +00:00
Dan Field
a9b85c6bcb [Impeller] impellerc: delete unused code (flutter/engine#49061) 2023-12-15 01:12:55 +00:00
gaaclarke
a53bf6a572 [Impeller] split out gradient tests from aiks_unittests (flutter/engine#49050)
issue https://github.com/flutter/flutter/issues/140106

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-15 01:12:53 +00:00
gaaclarke
b526c0726e Revert "[Impeller] Turned on new blur." (flutter/engine#49062)
Reverts flutter/engine#48472

This is causing memory crashes in the device lab:
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios%20backdrop_filter_perf_ios__timeline_summary/14324/overview
```
[2023-12-14 15:55:20.660354] [STDOUT] stdout: [+1764 ms] Process 611 stopped
[2023-12-14 15:55:20.662620] [STDOUT] stdout: [   +2 ms] * thread #12, name = 'io.flutter.1.raster', stop reason = EXC_RESOURCE (RESOURCE_TYPE_MEMORY: high watermark memory limit exceeded) (limit=2098 MB)
[2023-12-14 15:55:20.662686] [STDOUT] stdout: [        ]     frame #0: 0x0000000106705e78 Flutter`void std::_LIBCPP_ABI_NAMESPACE::allocator<impeller::Command>::construct[abi:v15000]<impeller::Command, impeller::Command>(impeller::Command*, impeller::Command&&) + 8
[2023-12-14 15:55:20.662784] [STDOUT] stdout: [        ] Flutter`std::_LIBCPP_ABI_NAMESPACE::allocator<impeller::Command>::construct[abi:v15000]<impeller::Command, impeller::Command>:
[2023-12-14 15:55:20.662883] [STDOUT] stdout: [        ] ->  0x106705e78 <+8>:  str    x8, [x0]
[2023-12-14 15:55:20.662932] [STDOUT] stdout: [        ]     0x106705e7c <+12>: ldr    x8, [x1, #0x8]
[2023-12-14 15:55:20.663033] [STDOUT] stdout: [        ]     0x106705e80 <+16>: str    x8, [x0, #0x8]
[2023-12-14 15:55:20.663097] [STDOUT] stdout: [        ]     0x106705e84 <+20>: ldr    x8, [x1, #0x10]
[2023-12-14 15:55:20.663194] [STDOUT] stdout: [        ] Target 0: (Runner) stopped.
[2023-12-14 15:55:20.663309] [STDOUT] stdout: [        ] thread backtrace all
[2023-12-14 15:55:20.663403] [STDOUT] stdout: [        ] process detach
```
2023-12-14 16:36:27 -08:00
Matan Lurey
02f6c46771 Fix header-guard naming convention in shell/. (flutter/engine#49006)
Part of landing https://github.com/flutter/engine/pull/48903.

Some of these actually seem like potential owchy spots, i.e. `#ifndef FLUTTER_FLUTTER_H_`.
2023-12-14 23:37:22 +00:00
Jason Simmons
1edcdb5db2 Manual roll of Dart SDK from a677378ae254 to 0471164827b9 (flutter/engine#49054)
Includes an update for a deprecated FFI API
(see https://dart.googlesource.com/sdk/+/efb60eac5999e47853505f2e3fc3eaf19f56f495)
2023-12-14 23:22:20 +00:00
Matan Lurey
2ecbd2ff7d Rename font-subset to font_subset. (flutter/engine#49051)
For consistency, I don't think we have any other tools with `-`'s.

I'll be honest - this seemed easier than teaching the header guard tool
how to handle `-`'s in directory names, but if you feel strongly about
it I can revert.
2023-12-14 15:16:09 -08:00
skia-flutter-autoroll
10bb1d87b6 Roll Skia from 92935b91193a to 79f23e8d8b5d (1 revision) (flutter/engine#49056)
https://skia.googlesource.com/skia.git/+log/92935b91193a..79f23e8d8b5d

2023-12-14 michaelludwig@google.com [skif] Refine SkSpecialImage::asShader() API for fast constraints

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
2023-12-14 23:11:49 +00:00
Lau Ching Jun
2363abacfe Suppress warning for the new Activity library. (flutter/engine#49046)
Context: cl/582573869
2023-12-14 23:09:54 +00:00
Jonah Williams
d036f2a352 [Impeller] distinguish between no clear color and transparent black clear color. (flutter/engine#49038)
If we clear to transparent black, we're not forcing the pass to be constructed. Change the entity pass API so that we can tell the difference between clearing transparent black and not having a clear color.

In https://github.com/flutter/flutter/issues/139571 , the app is creating a layer that is clearing to a transparent color, which is getting skipped. That invalid texture is fed into a blend which produces either black or magenta error texture.

Fixes https://github.com/flutter/flutter/issues/139571
2023-12-14 21:37:29 +00:00
Victoria Ashworth
117716f199 Unpin mac_toolchain version (flutter/engine#48994)
mac_toolchain has been updated to no longer have 2 minute slowdown (https://github.com/flutter/flutter/issues/138109), so unpin to use the latest version.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 21:27:04 +00:00
gaaclarke
9ca6bd8786 [Impeller] Turned on new blur. (flutter/engine#48472)
This new blur should perform faster since it scales down the image
before blurring it. Jonah did early testing of it and found it to be
faster. Scrolling around with the blur perf bug it seems faster. It also
has a wider test bed and is hopefully easier to maintain since it
contains all of its logic for both directions.

testing: There are existing blur tests and we've backfilled more as
we've added features to this blur.

fixes https://github.com/flutter/flutter/issues/131580
fixes https://github.com/flutter/flutter/issues/138259

## 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
2023-12-14 13:09:32 -08:00
Jesse Seales
f441665d59 Remove unused metadata in DEPS from vuln scanning (flutter/engine#48995)
These upstream links (used in vulnerability scanning) are not needed since the references to the deps are no longer used. 
Part of simplifying metadata for the vuln scan process, context in b/248564768.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 21:05:34 +00:00
LongCatIsLooong
0be3f2d5d6 Fix a bug in the HTML render's getClosestGlyphInfo implementation (flutter/engine#48774)
`closestFragmentAtOffset` takes a horizontal offset from the start of the line, not the start of the paragraph. 

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 20:57:48 +00:00
Jenn Magder
2d0010fcb6 Fix NSPrivacyCollectedDataTypes array in privacy manifest (flutter/engine#49041)
In https://github.com/flutter/engine/pull/48951 `NSPrivacyCollectedDataTypes` is an array with an empty dictionary, but the privacy report wants an empty array or it errors:

<img width="523" alt="Screenshot 2023-12-14 at 10 02 52 AM" src="https://github.com/flutter/flutter/assets/682784/a128b384-db2f-49d7-8b71-7965f2826de8">

When this is fixed the privacy report is blank, but that seems to be an Xcode bug?  Will investigate.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 20:26:05 +00:00
skia-flutter-autoroll
a98c213612 Roll Skia from 5353de0c25b9 to 92935b91193a (1 revision) (flutter/engine#49044)
https://skia.googlesource.com/skia.git/+log/5353de0c25b9..92935b91193a

2023-12-14 briansalomon@gmail.com [graphite] Make Graphite/WebGPU build and run in Debug

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
2023-12-14 20:09:59 +00:00
Jason Simmons
9538c024ca Reland manual roll of Dart SDK from 82c4571bb2de to a677378ae254 (flutter/engine#49034)
Includes type annotations for JSArray/JSPromise
(see https://dart-review.googlesource.com/c/sdk/+/337923)
2023-12-14 20:01:01 +00:00
Loïc Sharma
d5968a10c0 [Windows] Remove header guard from generated key map (flutter/engine#48993)
No tests as this is a refactoring with no semantic changes.

The generator was updated by https://github.com/flutter/flutter/pull/140082
2023-12-14 19:50:05 +00:00
Jim Graham
a4a845b511 [Impeller] Round rects with circular ends should not generate ellipses (flutter/engine#49021)
Fixes https://github.com/flutter/flutter/issues/140118

A bad test caused round rects with completely rounded sides to become ellipses.
2023-12-14 19:36:07 +00:00
skia-flutter-autoroll
e1110df3ac Roll Skia from 0d5356a0f3cb to 5353de0c25b9 (1 revision) (flutter/engine#49040)
https://skia.googlesource.com/skia.git/+log/0d5356a0f3cb..5353de0c25b9

2023-12-14 kjlubick@google.com Remove type union from MutableTextureState

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
2023-12-14 19:24:59 +00:00
skia-flutter-autoroll
6fada5664e Roll Skia from 4170fba2d89f to 0d5356a0f3cb (1 revision) (flutter/engine#49036)
https://skia.googlesource.com/skia.git/+log/4170fba2d89f..0d5356a0f3cb

2023-12-14 briansalomon@gmail.com [graphite] Re-add support for BackendTexture from WGPUTextureView

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
2023-12-14 18:18:41 +00:00
Bruno Leroux
6162b4211f [Windows] Expose channel buffers 'resize' and 'overflow' control commands exposed by the control channel. (flutter/engine#47158)
## Description

This PR adds two helper functions to invoke the 'resize' and 'overflow' commands exposed by the control channel.
See:

c00c022036/lib/ui/channel_buffers.dart (L302-L309)

Implementation based on the discussion from https://github.com/flutter/engine/pull/46998.

## Related Issue

Windows implementation for https://github.com/flutter/flutter/issues/132386

## Tests

Adds 4 tests.
2023-12-14 15:56:56 +00:00
skia-flutter-autoroll
546ccf183b Roll Skia from 9746c141d66b to 4170fba2d89f (1 revision) (flutter/engine#49031)
https://skia.googlesource.com/skia.git/+log/9746c141d66b..4170fba2d89f

2023-12-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c7c60e7a0fa4 to d4bd313283e0 (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
2023-12-14 14:42:18 +00:00
skia-flutter-autoroll
77264a5781 Roll Skia from 47f84c5cf15d to 9746c141d66b (1 revision) (flutter/engine#49029)
https://skia.googlesource.com/skia.git/+log/47f84c5cf15d..9746c141d66b

2023-12-14 maryla@google.com Add support for gain map tone mapping in a different colorspace.

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
2023-12-14 13:48:33 +00:00
skia-flutter-autoroll
f7ee62a98f Roll Skia from 6c2b3d8cecf1 to 47f84c5cf15d (1 revision) (flutter/engine#49020)
https://skia.googlesource.com/skia.git/+log/6c2b3d8cecf1..47f84c5cf15d

2023-12-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b25ffe5a9775 to 524bcb8e3704 (6 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
2023-12-14 07:39:32 +00:00
skia-flutter-autoroll
48329058bd Roll Skia from 89ecb7c9cd2a to 6c2b3d8cecf1 (1 revision) (flutter/engine#49017)
https://skia.googlesource.com/skia.git/+log/89ecb7c9cd2a..6c2b3d8cecf1

2023-12-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 4cf9bb0363d3 to 429f18f034b1

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
2023-12-14 07:03:36 +00:00
skia-flutter-autoroll
dc6e3d8a72 Roll Skia from 188515347032 to 89ecb7c9cd2a (2 revisions) (flutter/engine#49016)
https://skia.googlesource.com/skia.git/+log/188515347032..89ecb7c9cd2a

2023-12-14 jamesgk@google.com [graphite] Support clip shaders
2023-12-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from de368ee1bf18 to c7c60e7a0fa4 (3 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
2023-12-14 06:04:11 +00:00
auto-submit[bot]
171873ec88 Reverts "[Windows] Move to FlutterCompositor for rendering" (flutter/engine#49015)
Reverts flutter/engine#48849
Initiated by: loic-sharma
This change reverts the following previous change:
Original Description:
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.

<details>
<summary>Tests...</summary>

* Verify OpenGL compositor's raster time isn't regressed and memory increase is reasonable
* Software compositor's raster time and memory isn't regressed

Test device configurations
* [x] Windows 11 (hardware acceleration enabled/disabled)
* [x] Windows Arm64 (hardware acceleration enabled/disabled)
* [x] Windows 7 (hardware acceleration enabled/disabled, DWM enabled/disabled)

</details>

Addresses https://github.com/flutter/flutter/issues/128904

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 05:03:20 +00:00
Jenn Magder
85abc44624 Add xcprivacy privacy manifest to iOS framework (flutter/engine#48951)
Create a `PrivacyInfo.xcprivacy` (this name is required) plist and move it to the top-level of the iOS framework bundle.  `NSPrivacyTracking*` and `NSPrivacyCollectedDataTypes` keys are required, but the values are blank.

Apple [now requires](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files) that third-party frameworks must include this manifest to document usage of particular APIs and [how they are used](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).

> Starting in fall 2023, when you upload a new app or app update to App Store Connect that uses an API (including from third-party SDKs) that requires a reason, you’ll receive a notice if you haven’t provided an approved reason in your app’s privacy manifest. And starting in spring 2024, in order to upload your new app or app update to App Store Connect, you’ll be required to include an approved reason in the app’s privacy manifest which accurately reflects how your app uses the API.

https://developer.apple.com/news/?id=z6fu1dcu

@stuartmorgan [audited](https://github.com/flutter/flutter/issues/131494#issuecomment-1852718759) the engine and third_party:

> * File timestamps:
>   
>   * `C617.1` for app state restoration in `FlutterAppDelegate.mm`.
>   * `0A2A.1` for implementation of the relevant `File` wrappers.
> * System boot time:
>   
>   * `35F9.1` for various event timing and elapsed time calculations.

Note macOS frameworks do not need to declare `NSPrivacyAccessedAPITypes`.
I don't think this will require recipe or conductor codesign changes since this is a file copied as a resource into the framework, just as the modulemap and Info.plist aren't referenced anywhere.

I'm not quite sure how to test this other than letting it build and generate a `Generate Privacy Report` in a Flutter app in Xcode.  There's no where we check that, say, the Info.plist is copied to the right place in Flutter.framework (even in flutter/flutter).  When this rolls into the framework I will add a check to [ios_content_validation_test.dart](3da9bc1698/dev/devicelab/bin/tasks/ios_content_validation_test.dart)

On this PR the `PrivacyInfo.xcprivacy` was written to the expected location in the Flutter.framework:
d45cd08094/516/tree

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 01:37:59 +00:00
gaaclarke
1538923d6e [Impeller] Made the new blur support 1D blurs (flutter/engine#49001)
issue: https://github.com/flutter/flutter/issues/131580

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-14 01:16:04 +00:00
skia-flutter-autoroll
a49c240301 Roll Skia from 69c02c9d56b2 to 188515347032 (1 revision) (flutter/engine#49005)
https://skia.googlesource.com/skia.git/+log/69c02c9d56b2..188515347032

2023-12-13 egdaniel@google.com Require explicit dawn backend configs.

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
2023-12-14 00:55:52 +00:00
Brandon DeRosier
3ddcbc7940 [Impeller] Add golden for clipped+transformed blur. (flutter/engine#48886)
This is a simple golden intended to smoketest potential issues when applying the coverage hint in the blur. Expected results:
![Screenshot 2023-12-11 at 12 03 50 PM](https://github.com/flutter/engine/assets/919017/251978b7-e6b4-4863-97f0-9a9a236f05ea)
2023-12-14 00:54:24 +00:00
Brandon DeRosier
b5725a4a83 [Flutter GPU] Runtime shader import. (flutter/engine#48875)
* Add `--shader-bundle` mode to impellerc that takes a simple JSON spec and produces a single flatbuffer with a pack of named shaders.
* Added "single invocation" mode to the impellerc GN templates.
* Record vertex attribute reflection information.
* Light refactoring of the compiler frontend to make compiler invocations easier to follow.

Example shader bundle spec (json form of the yaml spec as shown in the [Flutter GPU](https://docs.google.com/document/d/1Sh1BAC5c_kkuMVreo7ymBzPoMzb7lamZRPsI7GBXv5M/edit?resourcekey=0-5w8u2V-LS41tCHeoE8bDTQ#heading=h.a3gmnzue7wgq) doc):
```json
{
    "UnlitFragment": {
        "type": "fragment",
        "file": "shaders/flutter_gpu_unlit.frag"
    },
    "UnlitVertex": {
        "type": "vertex",
        "file": "shaders/flutter_gpu_unlit.vert"
    },
    "TextureFragment": {
        "type": "fragment",
        "file": "shaders/flutter_gpu_texture.frag"
    },
    "TextureVertex": {
        "type": "vertex",
        "file": "shaders/flutter_gpu_texture.vert"
    }
}
```

Example impellerc invocation:
```bash
impellerc \
  --include=~/projects/flutter/engine/src/flutter/impeller/compiler/shader_lib \
  --runtime-stage-metal \
  --sl=assets/TestLibrary.shaderbundle \
  --shader-bundle='{"UnlitFragment": {"type": "fragment", "file": "shaders/flutter_gpu_unlit.frag"}, "UnlitVertex": {"type": "vertex", "file": "shaders/flutter_gpu_unlit.vert"}, "TextureFragment": {"type": "fragment", "file": "shaders/flutter_gpu_texture.frag"}, "TextureVertex": {"type": "vertex", "file": "shaders/flutter_gpu_texture.vert"}}'
```

Runtime usage:
```dart
    /// Add a render pass encoder to the command buffer so that we can start
    /// encoding commands.
    final encoder = commandBuffer.createRenderPass(renderTarget);

    /// Load a shader bundle asset.
    final library =
        gpu.ShaderLibrary.fromAsset('assets/TestLibrary.shaderbundle')!;

    /// Create a RenderPipeline using shaders from the asset.
    final vertex = library['TextureVertex']!;
    final fragment = library['TextureFragment']!;
    final pipeline = gpu.gpuContext.createRenderPipeline(vertex, fragment);

    encoder.bindPipeline(pipeline);
```

https://github.com/flutter/engine/assets/919017/6f3e9a59-d180-4ba6-b14c-fa6d7056965c
2023-12-14 00:48:00 +00:00
Loïc Sharma
d5a40e1093 [Windows] Move to FlutterCompositor for rendering (flutter/engine#48849)
This migrates the Windows embedder to `FlutterCompositor` so that the engine renders off-screen to a framebuffer instead of directly onto the window's surface. This will allow us to support platform views and multiple views on Windows.

<details>
<summary>Tests...</summary>

* Verify OpenGL compositor's raster time isn't regressed and memory increase is reasonable
* Software compositor's raster time and memory isn't regressed

Test device configurations
* [x] Windows 11 (hardware acceleration enabled/disabled)
* [x] Windows Arm64 (hardware acceleration enabled/disabled)
* [x] Windows 7 (hardware acceleration enabled/disabled, DWM enabled/disabled)

</details>

Addresses https://github.com/flutter/flutter/issues/128904

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 23:21:56 +00:00
gaaclarke
a8e57675d6 [Impeller] Made the new blur work on devices without the decal address mode (flutter/engine#48899)
This also adds a new mechanism of override the device capabilities.

fixes https://github.com/flutter/flutter/issues/139773

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 20:04:47 +00:00
Victoria Ashworth
1872d4bb32 Allow tests to run on macOS 13 (flutter/engine#48894)
Update macOS web tests to run on macOS 13 and arm64. Changed so test is consistent OS and architecture, which will cause less discrepancy in goldens.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 19:57:09 +00:00
Jonah Williams
5b67468e21 [Impeller] Compute ContextContentOptions key via bit manipulating (instead of hashing each property). (flutter/engine#48902)
The hash function we use for pipeline hashncash is actually pretty slow. Since all of the properties we hash on fit in 64 bits, we can compute a hash value directly. From local benchmarking this is about twice as fast, which still leaves quite a bit of room for future improvement (faster hashmap? not using a hashmap at all?)
2023-12-13 19:57:06 +00:00
skia-flutter-autoroll
be639e108f Roll Skia from f3401c6186c1 to 69c02c9d56b2 (1 revision) (flutter/engine#48992)
https://skia.googlesource.com/skia.git/+log/f3401c6186c1..69c02c9d56b2

2023-12-13 jamesgk@google.com [graphite][cleanup] Remove unused constructor

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
2023-12-13 19:46:26 +00:00
Jason Simmons
3f4ffc972b Revert Dart SDK back to 3.3.0-219.0.dev (flutter/engine#48990)
See https://github.com/flutter/flutter/issues/140074
See https://github.com/flutter/flutter/issues/140076
2023-12-13 11:34:27 -08:00
Jim Graham
4f3642b551 [Impeller] Use direct tessellation geometry for simple clip shapes (flutter/engine#48959)
This work leverages the recent work to directly tessellate the simple primitives for rendering and uses their geometry classes for equivalent clip primitives.
2023-12-13 18:06:49 +00:00
auto-submit[bot]
80bd5d4135 Reverts "[Android] Re-land "Add target to have linux_android_emulator_tests run on AVDs with Android 33 & 34"" (flutter/engine#48988)
Reverts flutter/engine#48936
Initiated by: loic-sharma
This change reverts the following previous change:
Original Description:
Re-lands https://github.com/flutter/engine/pull/48811 with corrected config file name.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 18:05:26 +00:00
LongCatIsLooong
63dabdd2e0 Add a constructor for GlyphInfo. (flutter/engine#48971)
Needed for https://github.com/flutter/flutter/pull/139717

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 18:01:47 +00:00
Loïc Sharma
5139925e3b [Windows] Refactor surface manager mocking (flutter/engine#48953)
See: https://github.com/flutter/engine/pull/48849#discussion_r1424535869
2023-12-13 17:42:52 +00:00
skia-flutter-autoroll
49e808ec80 Roll Skia from 6e5bd9b1d91d to f3401c6186c1 (2 revisions) (flutter/engine#48981)
https://skia.googlesource.com/skia.git/+log/6e5bd9b1d91d..f3401c6186c1

2023-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 50d52367e3b3 to de368ee1bf18 (4 revisions)
2023-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from f92827c3066c to 7b71af53266a

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
2023-12-13 13:08:09 +00:00
skia-flutter-autoroll
f2db785f13 Roll Skia from 1e63c048ded7 to 6e5bd9b1d91d (1 revision) (flutter/engine#48973)
https://skia.googlesource.com/skia.git/+log/1e63c048ded7..6e5bd9b1d91d

2023-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from de591cff0316 to b25ffe5a9775 (8 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,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
2023-12-13 07:29:23 +00:00
skia-flutter-autoroll
a011222e60 Roll Skia from 927f20598b11 to 1e63c048ded7 (1 revision) (flutter/engine#48968)
https://skia.googlesource.com/skia.git/+log/927f20598b11..1e63c048ded7

2023-12-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from cebf22738909 to 033f24e72cc0 (13 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
2023-12-13 05:49:21 +00:00