26218 Commits

Author SHA1 Message Date
Tong Mu
67603e5e32 Reland 5: Multiview pipeline (flutter/engine#51186)
This relands https://github.com/flutter/engine/pull/50931.

The crash that caused the 4th revert has been fixed by https://github.com/flutter/flutter/pull/144212.

[There has been discussion](https://github.com/flutter/engine/pull/51019) on why the benchmark in previous attempts show significant drop in build time. This PR addresses it using option a as described in [this comment](https://github.com/flutter/engine/pull/51186#issuecomment-1977820525).

This PR also addresses https://github.com/flutter/flutter/issues/144584 with option 1. A test is added.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-07 01:54:14 +00:00
Jonah Williams
1322186f32 [Impeller] add a per-frame trace event for heap usage on Vulkan. (flutter/engine#51246)
Part of https://github.com/flutter/flutter/issues/144617

Adds MemoryBudgetUsageMB which includes the MB of VMA allocated GPU and host memory, approximately per frame. This will be recorded in the devicelab and used to track how much memory pressure we're creating.

Split out from https://github.com/flutter/engine/pull/51187 since that was reverted (and doing big changes is a bad idea anyway).
2024-03-07 01:40:04 +00:00
Chris Bracken
0e6d56bc1c Move Abseil from src to flutter third_party dir (flutter/engine#51245)
In combination with:
* https://flutter-review.googlesource.com/c/third_party/abseil-cpp/+/55848
* https://github.com/flutter/buildroot/pull/831

this updates Flutter's references to Abseil from
//third_party/abseil-cpp to //flutter/third_party/abseil-cpp.

Issue: https://github.com/flutter/flutter/issues/144201
Part of: https://github.com/flutter/flutter/issues/67373

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-07 01:19:17 +00:00
skia-flutter-autoroll
049983fc56 Manual roll Dart SDK from 9ea8813ab4d4 to 3ad64881a209 (5 revisions) (flutter/engine#51242)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/9ea8813ab4d4..3ad64881a209

2024-03-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-205.0.dev
2024-03-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-204.0.dev
2024-03-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-203.0.dev
2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-202.0.dev
2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-201.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,zra@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-03-07 00:13:11 +00:00
auto-submit[bot]
afd7f9739b Reverts "[Impeller] disable blending in gaussian intermediate steps. (#51118)" (flutter/engine#51244)
Reverts: flutter/engine#51118
Initiated by: jonahwilliams
Reason for reverting: unexpected performance change

https://flutter-flutter-perf.skia.org/e/?queries=sub_result%3D90th_percentile_frame_rasterizer_time_millis%26sub_result%3D99th_percentile_frame_rasterizer_time_millis%26sub_result%3Daverage_frame_rasterizer_time_millis%26sub_result%3Dworst_frame_rasterizer_time_millis%26test%3Dbackdrop_filter_perf_ios__timeline_summary&selected=commit%3D39677%26name%3D%252Carch%253
Original PR Author: jonahwilliams

Reviewed By: {gaaclarke}

This change reverts the following previous change:
Noticed this while working on the StC debugging. We can disable blending on all intermediate gaussian steps. I don't know how much of an impact this has in practice.
2024-03-06 23:55:17 +00:00
auto-submit[bot]
e3e37f2bee Reverts "[Impeller] fold memory check into allocator_vk (#51187)" (flutter/engine#51243)
Reverts: flutter/engine#51187
Initiated by: jonahwilliams
Reason for reverting: unexpected benchmark regression

https://flutter-flutter-perf.skia.org/e/?queries=device_type%3DPixel_7_Pro%26sub_result%3D90th_percentile_frame_rasterizer_time_millis%26sub_result%3D99th_percentile_frame_rasterizer_time_millis%26sub_result%3Daverage_frame_rasterizer_time_millis%26sub_result%3Dworst_frame_rasterizer_time_millis%26test%3Dnew_gallery_impeller__transition_perf&selected=commit%3D396
Original PR Author: jonahwilliams

Reviewed By: {matanlurey}

This change reverts the following previous change:
Various cleanups to Vulkan allocator implementation:

1. Fixes https://github.com/flutter/flutter/issues/137454
2. Fold device transient cap check into allocator.
3. adds debug tracking for total memory usage in MB (a followup change needs to be made to driver to plumb it through)
4. Small cleanups to mock vulkan so an allocator can be created from it.
5. depth/stencil shouldn't be input attachments.

Part of https://github.com/flutter/flutter/issues/144617
2024-03-06 23:52:25 +00:00
skia-flutter-autoroll
149c31822f Manual roll Dart SDK from 50464546d92d to 9ea8813ab4d4 (5 revisions) (flutter/engine#51239)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/50464546d92d..9ea8813ab4d4

2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-200.0.dev
2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-199.0.dev
2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-198.0.dev
2024-03-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-197.0.dev
2024-03-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.4.0-196.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,zra@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-03-06 22:55:58 +00:00
Jesús S Guerrero
06c1e204da Skip impeller goldens on release branches (flutter/engine#51237)
https://github.com/flutter/flutter/issues/144700
2024-03-06 22:00:46 +00:00
Loïc Sharma
ece178965b [Windows] Allow plugins to get views (flutter/engine#51096)
Allow Flutter Windows plugins to get views by their ID.

Design doc: https://flutter.dev/go/desktop-multi-view-runner-apis

Part of https://github.com/flutter/flutter/issues/143767
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-03-06 21:19:19 +00:00
Jim Graham
5193a7bc02 add new builder benchmark with a global saveLayer (flutter/engine#51236)
The existing DisplayListBuilder benchmarks that have a SaveLayer call do so around each rendering call which stresses measuring the cost of the SaveLayer/Restore calls. This new benchmark does a single SaveLayer/Restore around the entire array of rendering ops to measure the performance of adding new calls inside an existing layer.

No tests because this is just a new benchmark.
2024-03-06 20:50:14 +00:00
Brandon DeRosier
80c055bfc9 [Flutter GPU] Move method tests to flutter_tester. (flutter/engine#51223)
Part of https://github.com/flutter/flutter/issues/144640.

I'll be moving the rest of the pipeline-dependent tests and packaging a shader bundle for flutter_tester once Flutter GPU works against Vulkan/swiftshader.
2024-03-06 20:33:01 +00:00
Zachary Anderson
2fdc3293eb Disable flaky linux desktop test (flutter/engine#51231)
For https://github.com/flutter/flutter/issues/138197
2024-03-06 20:27:00 +00:00
Jonah Williams
749903e027 [Impeller] fold memory check into allocator_vk (flutter/engine#51187)
Various cleanups to Vulkan allocator implementation:

1. Fixes https://github.com/flutter/flutter/issues/137454
2. Fold device transient cap check into allocator.
3. adds debug tracking for total memory usage in MB (a followup change needs to be made to driver to plumb it through)
4. Small cleanups to mock vulkan so an allocator can be created from it.
5. depth/stencil shouldn't be input attachments.

Part of https://github.com/flutter/flutter/issues/144617
2024-03-06 20:10:55 +00:00
skia-flutter-autoroll
8ea6cd44a4 Roll Fuchsia Linux SDK from ujOkbeYbrC8loPbfR... to y67DIBX84h7pAekIp... (flutter/engine#51233)
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 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-03-06 19:58:17 +00:00
Brandon DeRosier
841c2b4b1d [Impeller] Append fewer redundant points when bridging triangle strips between contours. (flutter/engine#51232)
Optimizes out 1-2 points per contour. Improvement to the TessellateConvex changes I made to get StC over the line.
2024-03-06 19:17:57 +00:00
Jason Simmons
a72fddf954 [Impeller] Apply padding for alignment when doing HostBuffer::Emplace with a callback (flutter/engine#51221) 2024-03-06 18:58:46 +00:00
Jason Simmons
1b1eaf37d5 [Impeller] Create a new render target with the specified attachment configs when reusing cached render target textures (flutter/engine#51208)
If the RenderTargetCache::Create methods reuse a cached RenderTarget as is, then the returned RenderTarget may contain AttachmentConfig parameters that do not match the ones passed to the create method.

This PR instead creates a new RenderTarget based on the existing textures from the cached RenderTarget.
2024-03-06 18:57:20 +00:00
Matan Lurey
feef93058c Re-stamp skia_gold_client e2e tests. (flutter/engine#51220)
Testing if `skia_gold_client` and pre-submit/post-submit is playing nice by triggering an update.

Generated via:

```sh
dart ./testing/skia_gold_client/tool/generate.dart
```

Related: https://github.com/flutter/flutter/issues/144352.
2024-03-06 18:33:05 +00:00
Loïc Sharma
8f1baa30bb [et] Allow users to update dependencies (flutter/engine#51177)
Allow users to update dependencies. Examples:

* `et fetch` Fetch dependencies

In the future, `et build` will update dependencies if it detects that they have changed.

Also:
* Updates the status in the README
* Adds instructions on how to run tests
* Fixes `et run`'s description
* Makes the `--verbose` flag global
2024-03-06 17:00:23 +00:00
skia-flutter-autoroll
faac7b1f6e Manual roll Dart SDK from 728fcf0bcbca to 50464546d92d (5 revisions) (flutter/engine#51228)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/728fcf0bcbca..50464546d92d

2024-03-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-195.0.dev
2024-03-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-194.0.dev
2024-03-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-193.0.dev
2024-03-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-192.0.dev
2024-02-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.4.0-191.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,zra@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-03-06 08:46:53 -08:00
skia-flutter-autoroll
63bb168431 Roll Skia from db3a36120ae2 to f17ec7494469 (3 revisions) (flutter/engine#51226)
https://skia.googlesource.com/skia.git/+log/db3a36120ae2..f17ec7494469

2024-03-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 756dffd9e74f to 20d29a6cac1b
2024-03-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 65414438feb7 to 756dffd9e74f (6 revisions)
2024-03-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from f7e1ef5d45e2 to 91a0358034d1 (16 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,herb@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 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-03-06 06:51:32 +00:00
skia-flutter-autoroll
7160bada6e Roll Skia from 1d1fd7fe1a89 to db3a36120ae2 (1 revision) (flutter/engine#51222)
https://skia.googlesource.com/skia.git/+log/1d1fd7fe1a89..db3a36120ae2

2024-03-05 penghuang@chromium.org dawn: fix DawnCaps.cpp compile errors with webgpu

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,herb@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 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-03-06 02:59:11 +00:00
Matan Lurey
31e26a1d52 Revamp the scenario_app/../README.md to encourage self-sustenance (flutter/engine#51196)
Feedback welcome, though if it is non-blocking and ambiguous consider a follow-up PR instead 😸
2024-03-06 01:26:13 +00:00
Jonah Williams
540cb080cc [Impeller] disable blending in gaussian intermediate steps. (flutter/engine#51118)
Noticed this while working on the StC debugging. We can disable blending on all intermediate gaussian steps. I don't know how much of an impact this has in practice.
2024-03-06 01:20:05 +00:00
Brandon DeRosier
98e6e399f1 [Impeller] Enable depth buffer clipping & Stencil-then-Cover path rendering. (flutter/engine#51219)
Turn the page, wash your hands.

Addresses the following issues:
* https://github.com/flutter/flutter/issues/143077
* https://github.com/flutter/flutter/issues/137714
* https://github.com/flutter/flutter/issues/138460
* https://github.com/flutter/flutter/issues/123671
* https://github.com/flutter/flutter/issues/141961
* https://github.com/flutter/flutter/issues/134432

Previous attempts:
1. https://github.com/flutter/engine/pull/50856
    - reverted with https://github.com/flutter/engine/pull/51191
    - fixed with https://github.com/flutter/engine/pull/51198
2. https://github.com/flutter/engine/pull/51209
    - reverted with https://github.com/flutter/engine/pull/51217
    - fixed with https://github.com/flutter/engine/pull/51218
2024-03-06 01:18:07 +00:00
skia-flutter-autoroll
85a60e33ae Roll Skia from 37947aec8c5c to 1d1fd7fe1a89 (1 revision) (flutter/engine#51216)
https://skia.googlesource.com/skia.git/+log/37947aec8c5c..1d1fd7fe1a89

2024-03-05 jvanverth@google.com [graphite] Use internal class to manage DrawAtlas in SmallPathAtlas.

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,herb@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 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-03-06 01:18:05 +00:00
Brandon DeRosier
843eedbe39 [Impeller] Fix path winding when bridging from contours with an odd number of points. (flutter/engine#51218)
If the previous contour has an odd number of points, insert a duplicate point to keep the winding order consistent across contours.

Before:

![Screenshot 2024-03-05 at 4 16 46 PM](https://github.com/flutter/engine/assets/919017/05306c92-78e9-4d16-88c1-6191d8ee1160)

After:

![Screenshot 2024-03-05 at 4 14 54 PM](https://github.com/flutter/engine/assets/919017/3743527f-d686-4c98-87f3-cb4db3c1a1ef)
2024-03-06 01:13:04 +00:00
auto-submit[bot]
b17b3772b8 Reverts "[Impeller] Enable depth buffer clipping & Stencil-then-Cover path rendering. (#51209)" (flutter/engine#51217)
Reverts flutter/engine#51209
Initiated by: bdero
Reason for reverting: Golden breakages on [engine roll](https://github.com/flutter/flutter/pull/144647) https://flutter-gold.skia.org/search?issue=144647&crs=github&patchsets=5&corpus=flutter
Original PR Author: bdero

Reviewed By: {jonahwilliams, chinmaygarde}

This change reverts the following previous change:
Original Description:
Turn the page, wash your hands.

Addresses the following issues:
* https://github.com/flutter/flutter/issues/143077
* https://github.com/flutter/flutter/issues/137714
* https://github.com/flutter/flutter/issues/138460
* https://github.com/flutter/flutter/issues/123671
* https://github.com/flutter/flutter/issues/141961
* https://github.com/flutter/flutter/issues/134432

Previous attempt:
- https://github.com/flutter/engine/pull/50856
    - reverted with https://github.com/flutter/engine/pull/51191
    - fixed with https://github.com/flutter/engine/pull/51198
2024-03-05 23:47:35 +00:00
gaaclarke
425aeca227 [Impeller] implement blur style solid (flutter/engine#50892)
fixes https://github.com/flutter/flutter/issues/134178

## 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-03-05 15:41:17 -08:00
Xilai Zhang
5b91595d3a [g3 roll] Revert "Remove unused drone_dimension field" (flutter/engine#51214)
Reverts flutter/engine#50893

issue: https://github.com/flutter/flutter/issues/144644
2024-03-05 23:07:04 +00:00
skia-flutter-autoroll
c715937d13 Roll Skia from 17677914dabf to 37947aec8c5c (5 revisions) (flutter/engine#51211)
https://skia.googlesource.com/skia.git/+log/17677914dabf..37947aec8c5c

2024-03-05 drott@chromium.org Iterate emoji color font tests over more color font formats
2024-03-05 penghuang@chromium.org Add Caps::getDepthAttachmentDimensions()
2024-03-05 brianosman@google.com Remove SK_LEGACY_SNAP_DRAW_IMAGE_TRANSLATION
2024-03-05 drott@chromium.org [Fontations-backend] Add an empty FontMgr for Fontations
2024-03-05 jvanverth@google.com [graphite] Atlas management fixes for SmallPathAtlas.

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,herb@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 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-03-05 22:57:48 +00:00
Loïc Sharma
d6bd7667e9 Fix git hooks on Windows (flutter/engine#51203)
Windows does not pre-install python3. Previously Windows users would just use Python from depot tools, but this was broken by https://github.com/flutter/engine/pull/51156.
2024-03-05 22:54:42 +00:00
Brandon DeRosier
29740b2b62 [Impeller] Enable depth buffer clipping & Stencil-then-Cover path rendering. (flutter/engine#51209)
Turn the page, wash your hands.

Addresses the following issues:
* https://github.com/flutter/flutter/issues/143077
* https://github.com/flutter/flutter/issues/137714
* https://github.com/flutter/flutter/issues/138460
* https://github.com/flutter/flutter/issues/123671
* https://github.com/flutter/flutter/issues/141961
* https://github.com/flutter/flutter/issues/134432

Previous attempt:
- https://github.com/flutter/engine/pull/50856
    - reverted with https://github.com/flutter/engine/pull/51191
    - fixed with https://github.com/flutter/engine/pull/51198
2024-03-05 21:23:00 +00:00
Brandon DeRosier
0fc45b3c73 [Impeller] Fix convex triangulation winding bug for multi-contour paths. (flutter/engine#51198)
An extra triangle needs to be inserted after bridging the triangle strip to a new contour, otherwise the triangle winding ends up getting inverted for each consecutive contour.

Before:

<img width="685" alt="image" src="https://github.com/flutter/engine/assets/919017/cef666c1-c188-4c83-ae93-fca117b0bc7f">

After:

<img width="685" alt="image" src="https://github.com/flutter/engine/assets/919017/0cf5e994-5366-4e73-8f9c-4fec1128b303">
2024-03-05 21:21:03 +00:00
skia-flutter-autoroll
d706543640 Roll Skia from 875b356e4d96 to 17677914dabf (2 revisions) (flutter/engine#51207)
https://skia.googlesource.com/skia.git/+log/875b356e4d96..17677914dabf

2024-03-05 jvanverth@google.com Reland "[graphite] Rasterize SmallPathAtlas paths to the Plot backing store."
2024-03-05 johnstiles@google.com Reland "Use nmad in pow/log computation."

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,herb@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 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-03-05 21:19:21 +00:00
Greg Spencer
f98269d78c Skip configuration dependency if unit tests are disabled (flutter/engine#51179)
## Description

This makes the GTK dependency only active if unit tests are enabled, so that it won't create an undesired dependency on embedded platforms.

## Related Issues
 - Fixes https://github.com/flutter/flutter/issues/144421
2024-03-05 20:57:01 +00:00
Chinmay Garde
db4a60e675 [Impeller] Implement YUV texture import and sampling for video player frames. (flutter/engine#50730)
This patch rounds out support for importing Android Hardware Buffers as Vulkan
images and sampling from them.

Not all Android Hardware Buffers are in formats that Vulkan (let alone Impeller)
understands. Some YUV textures have formats with no equivalent `vk::Format` enum
and need extra information on how to sample from them.

This patch adds support for correctly importing and sampling from such formats.

There are severe restrictions on how sampling from such external formats works.
For one, it isn’t possible to assign a combined image sampler in the render
pass. The pipeline itself needs to be rebuilt to reference a specially created
immutable sampler. This immutable sampler is a combination of the usual
information present in an Impeller SamplerDescriptor as well as a custom
“conversion” object obtained while importing the Android Hardware Buffer.

There is no way to predict what conversion object will be necessary ahead of
time as this will depend on the source of the Android Hardware Buffers and is
likely different for different video feeds, camera sources, and other Android
Hardware Buffer texture sources.

To handle this uncertainty, a new pipeline variant with a JIT determined
immutable sampler will be hashed and cached before being used in a render pass.
The number of pipeline variants created just-in-time will depend on the number
of sampler variants used in the render pass to sample from wrapped Image. For
instance, specifying a sampler with a different address mode will likely result
in a new pipeline variant being created.

In most cases however, there will just be one or two additional pipeline
variants per application. Impellers sampler diversity is very low with most
samplers being the usual NN samplers. It may be possible to preload even this
pipeline by trying known conversions. As said previously, there can only be a
handful of these conversions.

More restrictions on sampling from such images includes being limited to
`VK_FILTER_LINEAR` without additional format and extension wrangling and
performance penalties.

Fixes https://github.com/flutter/flutter/issues/142082.
2024-03-05 12:42:51 -08:00
Zachary Anderson
408b0a8231 Fix typo in githook message (flutter/engine#51205) 2024-03-05 12:02:54 -08:00
skia-flutter-autoroll
1af64b266a Roll Skia from 453cb0d04584 to 875b356e4d96 (2 revisions) (flutter/engine#51202)
https://skia.googlesource.com/skia.git/+log/453cb0d04584..875b356e4d96

2024-03-05 johnstiles@google.com Remove flag guard for SK_RASTER_PIPELINE_FASTER_HUE_SAT_CLR_LUM.
2024-03-05 kjlubick@google.com Migrate CanvasKit to use modular build

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,herb@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 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-03-05 19:51:22 +00:00
John McCutchan
5a25c24c43 Add device selection to et run (flutter/engine#51184)
- `et run` now detects the target device automatically and builds the
related engine builds.
- `et run -- -d <device-id>` also works.
2024-03-05 10:49:05 -08:00
skia-flutter-autoroll
a66c694ddf Roll Skia from de108a9c8b54 to 453cb0d04584 (2 revisions) (flutter/engine#51201)
https://skia.googlesource.com/skia.git/+log/de108a9c8b54..453cb0d04584

2024-03-05 coldpalelight@gmail.com Fix rounding error in non-AA curve edge smoothing
2024-03-05 nscobie@google.com Reland "Enforce explicit OWNERS.android approval for generated SkUserConfig.h files"

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,herb@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 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-03-05 18:32:13 +00:00
Zachary Anderson
6220641bde Adds githooks that reminds to run gclient sync -D (flutter/engine#51156)
This PR adds githooks for `post-checkout`, `post-merge`, `pre-rebase`
that remind to run `gclient sync -D`. This is probably going to print
the reminder too much. The `pre-rebase` hook runs before a `git pull
--rebase` that is actually going to update something, but the other
hooks may be needed to cover other workflows. The printed message will
also include the hook that it comes from, so we can remove the message
from hooks where it doesn't make sense.

<img width="670" alt="Screenshot 2024-03-04 at 18 36 15"
src="https://github.com/flutter/engine/assets/6343103/4d3e4661-035d-4ed6-8ed6-2a05b372bf65">
2024-03-05 10:23:34 -08:00
Zachary Anderson
8928d5284c Folds concurrent job calculation into tools/gn (flutter/engine#51193)
Folds the `get_concurrent_jobs.py` script into `tools/gn` and stops calling it with `exec_script()` during GN.

Part of https://github.com/flutter/flutter/issues/144430
2024-03-05 17:57:14 +00:00
skia-flutter-autoroll
46a92d295e Roll Skia from 10058142c8a2 to de108a9c8b54 (4 revisions) (flutter/engine#51199)
https://skia.googlesource.com/skia.git/+log/10058142c8a2..de108a9c8b54

2024-03-05 egdaniel@google.com Fix native graphite vk jobs to use correct config.
2024-03-05 nscobie@google.com Revert "Enforce explicit OWNERS.android approval for generated SkUserConfig.h files"
2024-03-05 robertphillips@google.com Yet more stable keys
2024-03-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fc440afa62a7 to b978974d98eb (7 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,herb@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 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-03-05 17:09:02 +00:00
skia-flutter-autoroll
f47498d99f Roll Skia from 5839a94bf28b to 10058142c8a2 (2 revisions) (flutter/engine#51197)
https://skia.googlesource.com/skia.git/+log/5839a94bf28b..10058142c8a2

2024-03-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 65414438feb7 to cc6c9c14800c
2024-03-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from f5ba03c10e1a to 65414438feb7 (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 aaclarke@google.com,brianosman@google.com,herb@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-03-05 15:58:23 +00:00
Brandon DeRosier
04d9268f98 [Impeller] Turn off StC. (flutter/engine#51191)
Turn it off to unblock the engine roll while investigating golden diffs: https://flutter-gold.skia.org/search?issue=144585&crs=github&patchsets=1&corpus=flutter
2024-03-05 03:57:24 +00:00
auto-submit[bot]
f29d809efb Reverts "Reland: [macOS] Use CVDisplayLink to drive repaint (#51126)" (flutter/engine#51192)
Reverts flutter/engine#51126
Initiated by: cbracken
Reason for reverting: looks like this regressed Skia benchmarks: https://flutter-flutter-perf.skia.org/e/?keys=Xbf8dce9c233bce34d20e2280e3f1d8db&selected=commit%3D39653%26name%3D%2Carch%3Dintel%2Cbranch%3Dmaster%2Cconfig%3Ddefault%2Cdevice_type%3Dnone%2Cdevice_version%3Dnone%2Chost_type%3Dmac%2Csub_result%3DtimeToFirstFrameRasterizedMicros%2Ctest%3Dflutter_gallery_macos__start_up%2C&xbaroffset=39569

The regression s
Original PR Author: knopp

Reviewed By: {cbracken}

This change reverts the following previous change:
Original Description:
This relands the PR reverted in https://github.com/flutter/engine/pull/51095

Changes since the original PR:
- The macOS embedder does not assume particular clock when calling the embedder API, but converts CAMediaTime to engine time and back (`FlutterTimeConverter`)
- `FlutterVSyncWaiter` does not wait for displaylink callback during warmup frame. This should prevent `timeToFirstFrameRasterizedMicros` regressions.
- When enforcing frame pacing the raster thread is not blocked. This should prevent `average_frame_rasterizer_time_millis` regressions.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-05 03:25:18 +00:00
skia-flutter-autoroll
9b21b47a8a Roll Skia from 9c62e7b382cf to a577399ed6fb (1 revision) (flutter/engine#51190)
https://skia.googlesource.com/skia.git/+log/9c62e7b382cf..a577399ed6fb

2024-03-05 johnstiles@google.com Revert "Use nmad in pow/log computation."

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,herb@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-03-05 02:40:22 +00:00
LongCatIsLooong
8fd9bbee17 Reland "Remove migration flag and unused header files #50216" (flutter/engine#50259)
Forgot to update a pinned dependency in the previous attempt: https://github.com/flutter/tests/pull/340

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-05 02:17:05 +00:00
Zachary Anderson
1d7737e0a0 Shift git version fetching to tools/gn (flutter/engine#51175)
Avoids GN invoking python scripts that run git commands to determine git
hashes.

Part of https://github.com/flutter/flutter/issues/144430
2024-03-04 18:14:04 -08:00