Commit Graph

23500 Commits

Author SHA1 Message Date
Brandon DeRosier
cdab07b84a [Impeller] Supply a text backend to the AiksContext at runtime. (flutter/engine#44884)
Resolves https://github.com/flutter/flutter/issues/130947.

- Allow for setting the text renderer (`TextRenderContext`) when the
`AiksContext` is built. Previously, the text renderer was selected at
build time through linking a `TextRenderContext::Create` symbol.
- Support using Impeller without a text backend. Throw a clear error
when trying to render text if no text backend is present.
- Don't track the Impeller context in `TextRenderContext`. Just let the
renderer supply its context when generating atlases.
- Allow for overriding the `TextRenderContext` for individual Aiks
playground tests/goldens.
2023-08-21 21:55:28 -07:00
Matan Lurey
af5d8338a9 Disallow using ./tools/gn --enable-unittests --android (or --ios) (flutter/engine#44930)
Closes https://github.com/flutter/flutter/issues/132611.

As seen on https://github.com/flutter/flutter/issues/132611, this will
never succeed compiling.

I tried to update the Wiki as well:

https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment#vscode-with-cc-intellisense-cc
2023-08-21 20:20:01 -07:00
Chinmay Garde
94a01878aa [Impeller] Document rendering backend selection on Android. (flutter/engine#44933)
Also add cross-references to some docs from the main README.
2023-08-21 17:19:15 -07:00
LongCatIsLooong
649a1e181c Reland "Implementing TextScaler for nonlinear text scaling (#42062)" (flutter/engine#44907)
The original PR crashes because of a JNI signature mismatch (`(FJ)F` -> `(FI)F`). Update the signature in a415da5619

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-21 23:16:10 +00:00
Dan Field
2a7a0fa977 [Impeller] Disable Impeller on Fuchsia (flutter/engine#44925)
In some build variations, `is_mac` or `is_linux` is true, but `target_os == "fuchsia"`.

We should explicitly disable Impeller in those variants.

Fixes https://github.com/flutter/flutter/issues/132793
2023-08-21 22:59:48 +00:00
gaaclarke
ef99e4345d [Impeller] Added recycled command buffers. (flutter/engine#44904)
Recycles command buffers instead of deleting them when they are done
being used.

@jonahwilliams profiled the Gallery on the Pixel 7 pro and saw that
sometimes `RenderPassVK::OnEncodeCommands` takes a long time in
https://github.com/flutter/flutter/issues/132690. After adding adding
more tracing it was found that the culprit was deleting the
CommandBuffers on the raster thread. This PR removes the deletion of the
CommandBuffers and instead resets and recycles them.


![unnamed](https://github.com/flutter/engine/assets/30870216/2136dda0-6747-43a7-9a94-a0223c55b704)

> where GARBO2 is
> ```c++
> void CommandPoolVK::GarbageCollectBuffersIfAble() {
>   TRACE_EVENT0("impeller", "CommandPoolVK::GARBO2");
>    if (std::this_thread::get_id() != owner_id_) {    
>      return;  
>    }
>    buffers_to_collect_.clear();
> }
> ```

This approach matches the guidances from ["Vulkan Best Practice for
Mobile
Developers"](https://arm-software.github.io/vulkan_best_practice_for_mobile_developers/samples/performance/command_buffer_usage/command_buffer_usage_tutorial.html)
where it is preferable to recycle command buffers than delete them.
Also, the recommendation is that if you are not reusing command buffers
that you should periodically reset the pool, which we weren't doing.

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


## 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 Hixie said 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
[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-08-21 15:54:26 -07:00
skia-flutter-autoroll
948ca1521d Roll Dart SDK from 1859f7202bba to 00f6f69187df (1 revision) (flutter/engine#44922)
https://dart.googlesource.com/sdk.git/+log/1859f7202bba..00f6f69187df

2023-08-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-94.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 22:43:21 +00:00
godofredoc
54d7aeb6db Use arm64 machines for ios_debug_sim_arm64 test. (flutter/engine#44920)
The test is failing when running on a x64 machine and we are pinning this test to use arm64.

Bug: https://github.com/flutter/flutter/issues/132993

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-21 22:25:05 +00:00
skia-flutter-autoroll
964564d2b8 Roll Skia from ca891e495da1 to da6b74568ece (3 revisions) (flutter/engine#44917)
https://skia.googlesource.com/skia.git/+log/ca891e495da1..da6b74568ece

2023-08-21 lovisolo@google.com [bazel] Run Go tests with Bazel in CI.
2023-08-21 brianosman@google.com Increase default alpha tolerance in ImageAsyncReadPixels
2023-08-21 egdaniel@google.com [Graphite] Add support for sampling BottomLeft origin wrapped textures.

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,lovisolo@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 20:29:30 +00:00
Brian Osman
41be06b59f Include GrVkTypes where necessary (flutter/engine#44916)
IWYU fix to be able to use GrVkImageInfo. An incoming Skia change will otherwise fail to compile here.
2023-08-21 19:50:04 +00:00
godofredoc
04efc39b8a Remove explicit mac cpu dimensions (flutter/engine#44836)
Running builds and tests on x64 machines is causing long queue times even when there is plenty of arm64 machines. This PR is removing most of the cpu pinned dimensions and it is separating some of the test to global tests to allow to select x64 machines only for the tests part.
2023-08-21 19:31:58 +00:00
John McCutchan
55d598886f [Impeller] Initial Android Impeller docs on backend selection and platform views. (flutter/engine#44815)
Fixes https://github.com/flutter/flutter/issues/132716
2023-08-21 12:14:00 -07:00
skia-flutter-autoroll
73902d21ac Roll Skia from 7e5a3009a8d4 to da3bb89a5d88 (9 revisions) (flutter/engine#44906)
https://skia.googlesource.com/skia.git/+log/7e5a3009a8d4..da3bb89a5d88

2023-08-21 johnstiles@google.com Add extended option [wgsl=true] to enable WGSL in DM.
2023-08-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aa121378c102 to c1234c5f930e (1 revision)
2023-08-21 jamesgk@google.com [graphite] Generate new mipmaps when copying mipmapped texture
2023-08-21 johnstiles@google.com Add Caps bit to enable WGSL code generator.
2023-08-21 ccameron@chromium.org SkXMLParser::parse: Optimize memory-backed streams
2023-08-21 johnstiles@google.com Move unneeded constants out of header.
2023-08-21 johnstiles@google.com Remove SK_ENABLE_SKSL.
2023-08-21 brianosman@google.com Remove GrBackendRenderTargetData::isValid
2023-08-21 johnstiles@google.com Remove unused argument from WGSL ctor functions.

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,lovisolo@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 18:06:05 +00:00
Zachary Anderson
c9f9d56adf Don't run clang_tidy --lint-all in presubmit (flutter/engine#44833)
Instead, this PR runs clang_tidy only on files that have been changed.

Related https://github.com/flutter/flutter/issues/105068
2023-08-21 17:51:10 +00:00
Greg Spencer
2bcecf60c9 Change Doxyfile options to not create subdirs (flutter/engine#44855)
## Description

This turns off the Doxyfile option `CREATE_SUBDIRS` because it prevents deep link URLs from being stable. It means that thousands of files will be in the main directory, but the filesystem should be able to handle that.

I got rid of the header/footer files for doxygen (because Doxygen will generate them anyhow) and fixed where it was looking for the Flutter logo.

I also ran Doxygen on the Doxyfile template and Doxyfile and updated all the options to correspond with the latest Doxygen.
2023-08-21 17:39:06 +00:00
Jonah Williams
9883398f4c [Impeller] Remove sync switch (flutter/engine#44885)
Adding back the waitUntilScheduled introduced a regression with this sync switch behavior. Because we block on all previous cmd buffer submission, if the sync switch fires partially through the raster thread workload, then some of our cmd buffers won't be submitted and waitUntilScheduled won't terminate.

But since we added back the waitUntilScheduled, we don't actually need these guards, as this ensures that the raster thread doesn't finish until all worker threads have finished.
2023-08-21 17:31:20 +00:00
skia-flutter-autoroll
8b1023ba27 Roll Skia from 475f07f5ca14 to 7e5a3009a8d4 (1 revision) (flutter/engine#44900)
https://skia.googlesource.com/skia.git/+log/475f07f5ca14..7e5a3009a8d4

2023-08-21 johnstiles@google.com Use unsigned chars in Lexer.

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 armansito@google.com,brianosman@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 15:36:22 +00:00
Jim Graham
5774ccf84f Split DisplayListBuilder into DlCanvas optimizer and DlOp recorder classes (flutter/engine#44718)
DisplayListBuilder grew over time from a class that implemented a developer-unfriendly stateful API into one that implemented both the developer-friendly DlCanvas API as well as its original stateful API. Over time, the stateful API was buried under a "testing only" facade.

In the meantime, the optimization features that it applies to the DlCanvas calls before it records the operations in a DlOp store are useful without the recording process and so I've been wanting to break those into 2 parts for a while with the goal of removing all stateful APIs from DisplayListBuilder (see https://github.com/flutter/flutter/issues/108303).

This PR takes a major step along that direction by splitting DisplayListBuilder into essentially a convenience class that marries 2 new classes together to achieve its old functionality:
- `DlCanvasToReceiver` - a class that implements DlCanvas, optimizes common situations, and then sends commands to any object that implements `DlOpReceiver`
- `DlOpRecorder` - an implementation of DlOpReceiver that records the operations in a buffer from which to create a `DisplayList` object
- `DisplayListBuilder` now inherits from DlCanvasToReceiver to get the optimizations and provides it with an instance of `DlOpRecorder` as the receiver that it will send its results to
- Similarly, a `DlCanvasToReceiver` instance could be directed to an `impeller:DlDispatcher` to achieve a more straight-through path from the DlCanvas interface to impeller Pictures.
2023-08-21 07:17:19 +00:00
skia-flutter-autoroll
67876049a1 Roll Skia from d2369dac4a1d to fca8fac08117 (1 revision) (flutter/engine#44888)
https://skia.googlesource.com/skia.git/+log/d2369dac4a1d..fca8fac08117

2023-08-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 228e9620e667 to 572e236a3608 (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 armansito@google.com,brianosman@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 05:49:30 +00:00
skia-flutter-autoroll
84297427ed Roll Dart SDK from 632c8cccd30c to c839eea7f0fa (1 revision) (flutter/engine#44886)
https://dart.googlesource.com/sdk.git/+log/632c8cccd30c..c839eea7f0fa

2023-08-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-90.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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-21 01:45:23 +00:00
skia-flutter-autoroll
25e5a6c9e8 Roll Skia from 4f6b9d08b6d1 to d2369dac4a1d (6 revisions) (flutter/engine#44883)
https://skia.googlesource.com/skia.git/+log/4f6b9d08b6d1..d2369dac4a1d

2023-08-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 86b1009b1e55 to aa121378c102 (1 revision)
2023-08-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a8c25b53a106 to 86b1009b1e55 (1 revision)
2023-08-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from af77dd0a5da0 to a8c25b53a106 (1 revision)
2023-08-19 sunnyps@chromium.org graphite: Implement onReinterpretColorSpace for Image_YUVA
2023-08-18 scroggo@google.com SkQP bash scripts: use python3
2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2542ba0a2d7e to af77dd0a5da0 (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 armansito@google.com,brianosman@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-20 22:19:10 +00:00
Brandon DeRosier
d6ab095556 [Impeller] Fix clip management for DrawPicture. (flutter/engine#44835)
Solves two problems:
1. Fix the debug crash by restoring the clip after the `EntityPass`
merge. I initially surrounded the merge with a `Save` and `Restore`,
which was a mistake and is a no-op in this situation. This should have
no excess impact on performance, since we ignore clips in `EntityPass`
when we detect that they won't do anything.
2. Picture subpasses weren't getting their stencil depth adjusted during
the merge, which can result in subpass entities potentially receiving a
clip depth that's too high.
2023-08-20 15:03:11 -07:00
Chinmay Garde
6f57ec0293 [Impeller] Document threading configuration with Vulkan. (flutter/engine#44874)
Moving bits and pieces of the presentation this morning into docs so we can keep them up to date.
2023-08-20 21:36:00 +00:00
skia-flutter-autoroll
b5d9f17cee Roll Dart SDK from a4908f67b63e to 632c8cccd30c (2 revisions) (flutter/engine#44872)
https://dart.googlesource.com/sdk.git/+log/a4908f67b63e..632c8cccd30c

2023-08-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-89.0.dev
2023-08-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-88.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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-20 21:32:51 +00:00
skia-flutter-autoroll
034aaf2680 Roll Fuchsia Linux SDK from pSqQ556xmZp7S4np5... to iQbvLoFBbhU8pkkqw... (flutter/engine#44878)
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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-20 21:32:49 +00:00
skia-flutter-autoroll
ebfc7f9b33 Roll Skia from e9cf3f1740eb to 4f6b9d08b6d1 (2 revisions) (flutter/engine#44868)
https://skia.googlesource.com/skia.git/+log/e9cf3f1740eb..4f6b9d08b6d1

2023-08-18 johnstiles@google.com Add parentheses around ambiguous WGSL binary-op intrinsics.
2023-08-18 johnstiles@google.com Fix precedence level for WGSL ternary ops.

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-20 21:31:35 +00:00
Jonah Williams
6f3b341232 Revert "Implementing TextScaler for nonlinear text scaling" (flutter/engine#44882)
Reverts flutter/engine#42062

Failing due to:

>>>>>>>> 08-18 15:59:41.350 3439 3484 E flutter :
[ERROR:flutter/shell/platform/android/platform_view_android_jni_impl.cc(902)]
Could not locate FlutterJNI#getScaledFontSize method
>>>>>>>> 08-18 15:59:41.350 3439 3484 F flutter :
[FATAL:flutter/shell/platform/android/library_loader.cc(26)] Check
failed: result.
2023-08-20 14:10:13 -07:00
Loïc Sharma
80c1ee246e [Embedder API] Add semantic string attributes (flutter/engine#44616)
Flutter's `SemanticNode`s use [`StringAttribute`](https://api.flutter.dev/flutter/dart-ui/StringAttribute-class.html)s to provide additional information on text values for assistive technologies. This exposes the string attributes on the embedder API so that embedders can apply string attributes to their semantics trees.

Addresses https://github.com/flutter/flutter/issues/119970
Part of https://github.com/flutter/flutter/issues/98948

Previous pull request: https://github.com/flutter/engine/pull/44553

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-18 22:49:58 +00:00
LongCatIsLooong
7d07749fdd Implementing TextScaler for nonlinear text scaling (flutter/engine#42062)
`platformTextScaler` doesn't need to be per window, assuming the SP -> DiP mapping is always the same on the same device (unless the user changes the preference), and does not depend on the display device's pixel density (it's confirmed).

Design doc: https://docs.google.com/document/d/1-DlElw3zWRDlqoc9z4YfkU9PbBwRTnc7NhLM97ljGwk/edit#

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-18 22:22:16 +00:00
Jackson Gardner
ab84ec613c Allow optional codepoints to be expressed to the font subset generator. (flutter/engine#44864)
This is the engine side change to fix https://github.com/flutter/flutter/issues/132711. There will be a subsequent framework change to express the space character as an "optional" character.
2023-08-18 22:08:10 +00:00
skia-flutter-autoroll
01b6977163 Roll Skia from 2dd1ed0baa7d to 2ddec49abd5c (2 revisions) (flutter/engine#44860)
https://skia.googlesource.com/skia.git/+log/2dd1ed0baa7d..2ddec49abd5c

2023-08-18 jvanverth@google.com Use rescale for asyncReadPixels colorspace conversion.
2023-08-18 scroggo@google.com Converge on ANDROID_NDK_HOME

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 21:14:12 +00:00
skia-flutter-autoroll
569e02584c Roll Dart SDK from 8109103e041b to a4908f67b63e (2 revisions) (flutter/engine#44858)
https://dart.googlesource.com/sdk.git/+log/8109103e041b..a4908f67b63e

2023-08-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-87.0.dev
2023-08-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-86.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 20:17:17 +00:00
skia-flutter-autoroll
25b2c86bb0 Roll Skia from edf0c0ecc7b1 to cf37d99d844d (1 revision) (flutter/engine#44857)
https://skia.googlesource.com/skia.git/+log/edf0c0ecc7b1..cf37d99d844d

2023-08-18 jamesgk@google.com [graphite] Fix overlap with dst read

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 19:44:00 +00:00
skia-flutter-autoroll
1260aa383d Roll Skia from e3adabdd0511 to edf0c0ecc7b1 (3 revisions) (flutter/engine#44854)
https://skia.googlesource.com/skia.git/+log/e3adabdd0511..edf0c0ecc7b1

2023-08-18 jvanverth@google.com Skip some colortypes for ImageAsyncReadPixels and SurfaceAsyncReadPixels
2023-08-18 jvanverth@google.com [graphite] Some asyncReadPixels cleanup.
2023-08-18 johnstiles@google.com Change the WGSL entrypoint name to 'main'.

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 18:35:46 +00:00
Jason Simmons
8c77e605e6 Flush pending graphics commands when the unref queue is drained on the IO thread (flutter/engine#44831)
See https://github.com/flutter/flutter/issues/131524
2023-08-18 18:31:04 +00:00
skia-flutter-autoroll
d696c29f5a Roll Skia from 31baf15e8f2c to e3adabdd0511 (2 revisions) (flutter/engine#44851)
https://skia.googlesource.com/skia.git/+log/31baf15e8f2c..e3adabdd0511

2023-08-18 brianosman@google.com Remove deprecated Vulkan GrBackendRenderTarget constructor
2023-08-18 scroggo@google.com Convert skqp_app to skqp_jni

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 17:49:47 +00:00
skia-flutter-autoroll
633ec70213 Roll Skia from c9294edc03b9 to 31baf15e8f2c (10 revisions) (flutter/engine#44850)
https://skia.googlesource.com/skia.git/+log/c9294edc03b9..31baf15e8f2c

2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-base from 07e20fbc7bee to 2e999b8eedf7
2023-08-18 brianosman@google.com Check mutable state when comparing GrBackendRenderTargets
2023-08-18 brianosman@google.com Remove GrVkBackendSurfaceInfo
2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-base from 3590e8eac703 to 07e20fbc7bee
2023-08-18 jamesgk@google.com [graphite] Enable LCD blending
2023-08-18 johnstiles@google.com Fix ImageFilterCropRect_Gpu test disable.
2023-08-18 brianosman@google.com Remove GrBackendSurfaceMutableState
2023-08-18 johnstiles@google.com Replace deprecated GetAdapters() API.
2023-08-18 jvanverth@google.com Reland "Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms."
2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f84bc95c7dfa to 2542ba0a2d7e (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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 17:03:47 +00:00
Zachary Anderson
3c29bdfb0f Update Impeller benchmarks.md with a Pixel 7 link (flutter/engine#44834) 2023-08-18 09:39:55 -07:00
skia-flutter-autoroll
93c76a072e Roll Fuchsia Linux SDK from 7xOzci7fempFgHNk9... to pSqQ556xmZp7S4np5... (flutter/engine#44846)
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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 16:26:36 +00:00
skia-flutter-autoroll
c83bb404ab Roll Dart SDK from 121fcbd8124c to 8109103e041b (1 revision) (flutter/engine#44844)
https://dart.googlesource.com/sdk.git/+log/121fcbd8124c..8109103e041b

2023-08-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-85.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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 16:25:43 +00:00
Jonah Williams
539e3833d2 [Impeller] add trace events for VkRenderPass and VkFrameBuffer creation. (flutter/engine#44837)
To help diagnose https://github.com/flutter/flutter/issues/129392 , which seems to be just as bad on the Pixel 7s:

We're not blocking in allocation anymore thanks to our previous allocator clean ups, but something else is blocking. I think it might be one of these methods.

![image](https://github.com/flutter/engine/assets/8975114/b768b5d7-b8c1-4acd-b518-bfd83486d6b2)
2023-08-18 16:24:50 +00:00
skia-flutter-autoroll
f442094303 Roll Skia from 1e62a2d4c429 to c9294edc03b9 (2 revisions) (flutter/engine#44843)
https://skia.googlesource.com/skia.git/+log/1e62a2d4c429..c9294edc03b9

2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 228e9620e667 to b0469a9c40c7
2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from f1d21dc58818 to 228e9620e667 (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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 16:20:36 +00:00
Bruno Leroux
4f50825d26 [Android] Expose channel buffer resize and overflow calls (flutter/engine#44434)
## Description

This PR updates the Android engine in order to provide a more efficient implementation for `BasicMessageChannel.resizeChannelBuffer` (helper to call the `resize` control command).
It also adds a new helper called`BasicMessageChannel.allowChannelBufferOverflow` to call the `overflow` control command.

## Related Issue

Fixes https://github.com/flutter/flutter/issues/132048
Android implementation for https://github.com/flutter/flutter/issues/132386

## Tests

Adds 2 tests.
2023-08-18 06:16:22 +00:00
skia-flutter-autoroll
216984de1a Roll Dart SDK from 7101eb7569ac to 121fcbd8124c (1 revision) (flutter/engine#44832)
https://dart.googlesource.com/sdk.git/+log/7101eb7569ac..121fcbd8124c

2023-08-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-84.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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-18 02:32:22 +00:00
skia-flutter-autoroll
0cf43bffee Roll Dart SDK from 7e4e5796ee99 to 7101eb7569ac (2 revisions) (flutter/engine#44828)
https://dart.googlesource.com/sdk.git/+log/7e4e5796ee99..7101eb7569ac

2023-08-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-83.0.dev
2023-08-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-82.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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-17 22:43:21 +00:00
skia-flutter-autoroll
436cb62d3e Roll Skia from bfd45173e5e3 to e4be2cab442f (3 revisions) (flutter/engine#44824)
https://skia.googlesource.com/skia.git/+log/bfd45173e5e3..e4be2cab442f

2023-08-17 lehoangquyen@chromium.org GraphiteDawn: use Dawn's MSAARenderToSingleSampled feature.
2023-08-17 johnstiles@google.com Fill out list of WGSL reserved words.
2023-08-17 jmbetancourt@google.com add skottie image slot support to CanvasKit's ManagedAnimation

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,egdaniel@google.com,jsimmons@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-08-17 21:02:06 +00:00
Greg Spencer
fc5b70b5d4 Add Doxygen doc generation for iOS, macOS, Linux, Windows, and Impeller (flutter/engine#43915)
## Description

This starts generating Doxygen docs for iOS, macOS, Linux, Windows, and Impeller. It doesn't remove the existing generation for iOS for now, until we can migrate the API docs to include these instead of those.

## Related Issues
 - https://github.com/flutter/flutter/issues/130999
 - Fixes https://github.com/flutter/flutter/issues/124833
2023-08-17 20:49:05 +00:00
Jason Simmons
1c573b5165 Fix FlutterInjectorTest assumptions about how the executor service assigns tasks to threads (flutter/engine#44775) 2023-08-17 20:37:59 +00:00
John McCutchan
5c518f77f3 Reenable HardwareBuffer backed Android Platform Views on SDK >= 29 (flutter/engine#44790)
- Fix a bug in the SDK < 33 ImageReader construction code path.
- Fix a bug that resulted in references to Images produced by a closed
ImageReader.
- Fix an order of operations bug in ImageReaderPlatformViewRenderTarget
release/finalizer code path.
- Enable HardwareBuffer backed Android Platform Views on SDK >= 29

Manually tested on device rotating and shutting down the app.
2023-08-17 13:15:25 -07:00
Tong Mu
177a6128c1 Basic view management for engine classes (flutter/engine#42991)
_This PR is part of the multiview engine project. For a complete roadmap, see [this doc](https://docs.google.com/document/d/10APhzRDR7XqjWdbYWpFfKur7DPiz_HvSKNcLvcyA9vg/edit?resourcekey=0-DfGcg4-XWRMMZF__C1nmcA)._

------

This PR adds view management to all engine classes that need it. View management here basically means `AddView` and `RemoveView` methods, and most importantly, how to handle the implicit view.

The implicit view is a special view that's handled differently than all the other "regular views", since it keeps the behavior of the current single view of Flutter. Detailed introduction can be found in `Settings.implicit_view_enabled`.

The following two graphs show the difference between initializing with/without the implicit view and creating regular views.

<img width="879" alt="image" src="https://github.com/flutter/engine/assets/1596656/31244685-d9d3-4c9a-9a9e-6e8540a5711e">

<img width="864" alt="image" src="https://github.com/flutter/engine/assets/1596656/e2dd4b8c-57e3-428d-8547-834fb270052b">

<img width="860" alt="image" src="https://github.com/flutter/engine/assets/1596656/58dae687-8c17-434e-ae24-a48c2d8fa5fa">

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-17 20:06:25 +00:00