23577 Commits

Author SHA1 Message Date
Jim Graham
5a9d0ee712 Reland "Split DisplayListBuilder into DlCanvas optimizer and DlOp recorder classes #44718" (flutter/engine#45085)
Fixes: https://github.com/flutter/flutter/issues/133200
2023-08-25 00:22:14 +00:00
skia-flutter-autoroll
eb6be31280 Roll Skia from 99a76ea8e1b2 to 1428f16fc0de (1 revision) (flutter/engine#45086)
https://skia.googlesource.com/skia.git/+log/99a76ea8e1b2..1428f16fc0de

2023-08-24 egdaniel@google.com [Graphite] Add support for Context and Recorder freeGpuResources call.

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,jimgraham@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-24 23:08:48 +00:00
skia-flutter-autoroll
e834e86cdc Roll Skia from 25fafff5b32c to 99a76ea8e1b2 (2 revisions) (flutter/engine#45083)
https://skia.googlesource.com/skia.git/+log/25fafff5b32c..99a76ea8e1b2

2023-08-24 nscobie@google.com Parameterize ImageAsyncReadPixels by renderability and origin
2023-08-24 johnstiles@google.com Revert "Factor out ContextType from GrContextFactory."

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,jimgraham@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-24 22:27:16 +00:00
Jackson Gardner
9727494b65 Revert "Turn on the skia_enable_optimize_size flag to save a bit of binary size" (flutter/engine#45082)
Reverts flutter/engine#45029

It appears this is causing a regression in the length of time some of our integration tests are taking, causing them to take twice as long, which is causing timeouts in CI. We should revert while we investigate.
2023-08-24 22:00:47 +00:00
skia-flutter-autoroll
df43f88eed Roll Skia from d7d56885a49b to 25fafff5b32c (1 revision) (flutter/engine#45081)
https://skia.googlesource.com/skia.git/+log/d7d56885a49b..25fafff5b32c

2023-08-24 michaelludwig@google.com Move Gaussian blur utility functions into skgpu::BlurUtils

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,jimgraham@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-24 21:40:10 +00:00
Dan Field
62a0c52e78 [Impeller] Do not build scene unless 3d define is true (flutter/engine#45028)
Fixes https://github.com/flutter/flutter/issues/133193
2023-08-24 21:38:19 +00:00
skia-flutter-autoroll
0f760efe37 Roll Skia from 177e8477faf9 to d7d56885a49b (1 revision) (flutter/engine#45078)
https://skia.googlesource.com/skia.git/+log/177e8477faf9..d7d56885a49b

2023-08-24 johnstiles@google.com Factor out ContextType from GrContextFactory.

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,jimgraham@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-24 20:55:19 +00:00
Tong Mu
6351b8a111 Reland: [Rasterizer] Make resubmit information temporary (flutter/engine#45037)
Relands https://github.com/flutter/engine/pull/42001.

The previous attempt was reverted due to post-submit flakeness, some mysterious crashes. I didn't change anything this time, but now that PR https://github.com/flutter/engine/pull/44973 is merged that fixes some racing issues, I wonder if the crashes of this change are resolved as well.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-24 20:44:59 +00:00
Gray Mackall
424b1c3829 Add case checking to android sdk cipd upload script (flutter/engine#45063)
See https://github.com/flutter/flutter/pull/131901#issuecomment-1690252455 for the reason for this PR.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-24 20:43:05 +00:00
Jackson Gardner
8cd127938f Turn on the skia_enable_optimize_size flag to save a bit of binary size (flutter/engine#45029)
This flag removes some code from CanvasKit to reduce size by a little bit. I went ahead and did a run of the benchmarks (https://github.com/flutter/flutter/pull/133208) to see if it negatively affected anything, and there was no difference beyond noise between the current benchmark numbers and the benchmarks with this flag enabled.

The size differences are as follows:
Before the change:
```
total 30616
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:33 .
drwxr-xr-x   7 jacksongardner  primarygroup      224 Aug 10 18:14 ..
-rw-r--r--@  1 jacksongardner  primarygroup     6148 May 12 17:41 .DS_Store
-rw-r--r--   2 jacksongardner  primarygroup    94899 Aug 23 14:23 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  6631693 Aug 23 14:23 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  2102151 Aug 23 14:23 canvaskit.wasm.br
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:33 chromium
-rw-r--r--   2 jacksongardner  primarygroup   161478 Aug 23 14:28 skwasm.js
-rwxr-xr-x   2 jacksongardner  primarygroup  3296038 Aug 23 14:28 skwasm.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1101502 Aug 23 14:28 skwasm.wasm.br
-rw-r--r--   2 jacksongardner  primarygroup     3095 Aug 23 14:28 skwasm.worker.js

./chromium:
total 15520
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:33 .
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:33 ..
-rw-r--r--   2 jacksongardner  primarygroup    94545 Aug 23 14:25 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  5223378 Aug 23 14:25 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1492433 Aug 23 14:25 canvaskit.wasm.br
```

After the change:
```
total 28568
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:42 .
drwxr-xr-x   7 jacksongardner  primarygroup      224 Aug 10 18:14 ..
-rw-r--r--@  1 jacksongardner  primarygroup     6148 May 12 17:41 .DS_Store
-rw-r--r--   2 jacksongardner  primarygroup    94899 Aug 23 14:37 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  6401703 Aug 23 14:37 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  2038390 Aug 23 14:37 canvaskit.wasm.br
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:42 chromium
-rw-r--r--   2 jacksongardner  primarygroup   161478 Aug 23 14:41 skwasm.js
-rwxr-xr-x   2 jacksongardner  primarygroup  3143431 Aug 23 14:41 skwasm.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1050854 Aug 23 14:41 skwasm.wasm.br
-rw-r--r--   2 jacksongardner  primarygroup     3095 Aug 23 14:41 skwasm.worker.js

./chromium:
total 15392
drwxr-xr-x   5 jacksongardner  primarygroup      160 Aug 23 14:42 .
drwxr-xr-x  11 jacksongardner  primarygroup      352 Aug 23 14:42 ..
-rw-r--r--   2 jacksongardner  primarygroup    94545 Aug 23 14:39 canvaskit.js
-rwxr-xr-x   2 jacksongardner  primarygroup  4993586 Aug 23 14:39 canvaskit.wasm
-rwxr-xr-x   1 jacksongardner  primarygroup  1427979 Aug 23 14:39 canvaskit.wasm.br
```

The brotli-compressed wasm modules save about 50-70kb each with this flag.
2023-08-24 18:52:22 +00:00
skia-flutter-autoroll
194647c93f Roll Skia from b17ee34f3378 to 007386294889 (1 revision) (flutter/engine#45075)
https://skia.googlesource.com/skia.git/+log/b17ee34f3378..007386294889

2023-08-24 johnstiles@google.com Remove support for Dawn in Ganesh.

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,jimgraham@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-24 18:52:20 +00:00
skia-flutter-autoroll
5fa54d93d1 Roll Skia from 8b0fd320865e to b17ee34f3378 (1 revision) (flutter/engine#45073)
https://skia.googlesource.com/skia.git/+log/8b0fd320865e..b17ee34f3378

2023-08-24 johnstiles@google.com Reject shaders which mark textures/samplers as 'uniform.'

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,jimgraham@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-24 18:00:05 +00:00
Zachary Anderson
ab3a9f6ac7 Revert Dart SDK to 3.2.0-97.0.dev (flutter/engine#45072)
For failures in https://github.com/flutter/flutter/pull/133261
2023-08-24 10:54:00 -07:00
skia-flutter-autoroll
4b4241c8d3 Manual roll Dart SDK from 87a5a26b25fc to bcad589d5d81 (4 revisions) (flutter/engine#45065)
Manual roll requested by asiva@google.com

https://dart.googlesource.com/sdk.git/+log/87a5a26b25fc..bcad589d5d81

2023-08-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-105.0.dev
2023-08-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-104.0.dev
2023-08-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-103.0.dev
2023-08-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-102.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 asiva@google.com,dart-vm-team@google.com,jimgraham@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-24 17:09:49 +00:00
skia-flutter-autoroll
1c9af448b6 Roll Skia from e008ee76b890 to 8b0fd320865e (3 revisions) (flutter/engine#45067)
https://skia.googlesource.com/skia.git/+log/e008ee76b890..8b0fd320865e

2023-08-24 nscobie@google.com Fix missing allocUsage int cast in log
2023-08-24 johnstiles@google.com Make 'uniform' modifier on SkSL samplers/textures optional.
2023-08-24 nscobie@google.com Log VkResult != success when checkVkResult is called from lambda

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,jimgraham@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-24 16:34:54 +00:00
Zachary Anderson
328f1fb459 Revert "[Impeller] Add debug captures and inspector." (flutter/engine#45062)
Reverts flutter/engine#43764

Broke the wide gamut test on framework CI
https://github.com/flutter/flutter/pull/133255


https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios%20wide_gamut_ios/3186/overview
2023-08-24 08:50:42 -07:00
Jonah Williams
3959803727 [Impeller] Don't place vertex buffer bindings in the Binding map. (flutter/engine#45040)
The metal backend is the only backend that doesn't treat binding the vertex buffer specially. For the GLES and Vulkan backend, we can instead pull it out of the cmd map entirely.

This will make it easier to partially inline the map into the bindings object.

https://github.com/flutter/flutter/issues/133199
2023-08-24 15:41:47 +00:00
Jonah Williams
6cbcea5081 Revert "[Impeller] add trace events for VkRenderPass and VkFrameBuffe… (flutter/engine#45047)
…r creation. (#44837)"

This reverts commit 539e3833d2a2b9d89ba813c97f2951c07fc84275.

*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one issue.*

These trace events aren't super useful, since we've tracked down the issues as either 1) phone is overloaded due to image decoding at large size or 2) https://github.com/flutter/flutter/issues/133198
2023-08-24 15:33:33 +00:00
skia-flutter-autoroll
2a13456e11 Roll Fuchsia Linux SDK from XoUnFqSvX9mhbXqBJ... to 0kEa4JczTMD0Xus08... (flutter/engine#45060)
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 jimgraham@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-24 15:14:04 +00:00
skia-flutter-autoroll
71e70d3a77 Roll Skia from 13a050278b1a to 68700a1a2be9 (1 revision) (flutter/engine#45058)
https://skia.googlesource.com/skia.git/+log/13a050278b1a..68700a1a2be9

2023-08-24 johnstiles@google.com Disable Metal warnings in SkSL.

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,jimgraham@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-24 14:22:31 +00:00
skia-flutter-autoroll
8eae9f42b9 Roll Skia from 02eecda395ba to 82472773892d (1 revision) (flutter/engine#45049)
https://skia.googlesource.com/skia.git/+log/02eecda395ba..82472773892d

2023-08-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 07afc72c35f0 to 16dd437ab329 (4 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jimgraham@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-24 05:39:39 +00:00
skia-flutter-autoroll
30819ecf03 Manual roll Dart SDK from ab417bc74bb1 to 87a5a26b25fc (4 revisions) (flutter/engine#45043)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/ab417bc74bb1..87a5a26b25fc

2023-08-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-101.0.dev
2023-08-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-100.0.dev
2023-08-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-99.0.dev
2023-08-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-98.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,jimgraham@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://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-24 02:26:19 +00:00
Brandon DeRosier
1a753d8ca2 [Impeller] Add debug captures and inspector. (flutter/engine#43764)
Weekend project! Press `C` to capture in the Aiks playground.

Decided to finally give this a go and attempt to relieve some of the print debugging/mindfuck around investigation of coverage-related issues lately. :)

Captures:
* Capture documents from anywhere in Impeller.
* Easily implement inspectors for those documents.
* Replay documents with live editing.
* No overhead when capturing is build time disabled (that's the idea, anyway).
* Low overhead when capturing is runtime disabled.

Aiks inspector:
* Outline passes and rendered entities.
* Identify collapsed passes.
* Visibly highlight coverage.
* Live edit scene properties.

Possible future work:
* Filters!
* Blend mode property.
* Pointer + release proc property.
* Support captures in the DL playground.
* Text atlas visualization.
* Multi-frame capture and scrubbing.
* Menus instead of key bindings?

https://github.com/flutter/engine/assets/919017/a7a63e24-f72f-4140-a21e-6ca02a05fc20
2023-08-24 02:02:06 +00:00
skia-flutter-autoroll
7d82b4742d Roll Skia from e3ee267859a7 to 02eecda395ba (1 revision) (flutter/engine#45042)
https://skia.googlesource.com/skia.git/+log/e3ee267859a7..02eecda395ba

2023-08-24 michaelludwig@google.com [skif] Update Blur imagefilter to use new bounds APIs

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,jimgraham@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-24 01:52:04 +00:00
Jason Simmons
bdc7ac47a4 Remove a clang-tidy test that launches a full run of clang-tidy (flutter/engine#45033)
This can take a lot of time or be overly dependent on configuration details of the local git repository.
2023-08-24 01:24:26 +00:00
Dan Field
23f05787e0 [Impeller] Fix stencil buffer format selection on Vulkan backend, add support for D24UnormS8Uint (flutter/engine#45025)
Vulkan was checking for D24 and using D32. This is part of the problem on the Samsung A02. There is still some other problem.

Fixes https://github.com/flutter/flutter/issues/133188
2023-08-24 01:09:47 +00:00
Jason Simmons
b282036ee6 Fix a clang-tidy error seen in the latest toolchain roll (flutter/engine#45039) 2023-08-23 17:34:52 -07:00
Zachary Anderson
774441e2c2 Roll clang with fix for ABI change (flutter/engine#44711)
In the change here b653a2823f, an intentional ABI breaking change was introduced to the clang runtime library for macOS and iOS. That change caused a symbol requiring dynamic linkage to be exposed that triggers iOS App Store checks for usage of private API.

This PR resolves that issue by rolling clang forward and introducing a definition of `_availability_version_check`. The declaration with weak linkage in the clang runtime library [here](b653a2823f/compiler-rt/lib/builtins/os_version_check.c (L89)) will then be resolved against the definition introduced in this PR. Since the declaration in the clang runtime library will now be resolved by static linking, the Flutter dylib will no longer require it to be dynamically linked, and will therefore not trigger the App Store check for using private API.

The definition of `_availability_version_check` is implemented using the `dlsym` strategy used by the old version of clang [here](f9ac557567/compiler-rt/lib/builtins/os_version_check.c (L97)).

Fixes https://github.com/flutter/flutter/issues/132130
2023-08-23 22:37:03 +00:00
Jonah Williams
90acd88d7e [Impeller] combine uniform metadata and buffer slots. (flutter/engine#45021)
Follow up from https://github.com/flutter/engine/pull/44990

We're spending a ton of time deallocating mostly empty maps, by reducing the number of maps we reduce the amount of memory used, and reduce map lookups.
2023-08-23 22:18:47 +00:00
skia-flutter-autoroll
acd4195c2a Roll Skia from 76898dad9fda to a631fefdba37 (2 revisions) (flutter/engine#45027)
https://skia.googlesource.com/skia.git/+log/76898dad9fda..a631fefdba37

2023-08-23 johnstiles@google.com Disable Graphite SkSL tests on Linux in Release.
2023-08-23 herb@google.com Implement and document intersection

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,jimgraham@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-23 22:09:03 +00:00
Zachary Anderson
ad1a04dea2 Revert "FontVariation.lerp, custom FontVariation constructors, and more documentation" (flutter/engine#45023)
Reverts flutter/engine#44996

Analysis failures on rolling to the framework
https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20analyze/62884/overview
2023-08-23 14:36:08 -07:00
Brandon DeRosier
87e5da3ff4 [Impeller] Dat rvalue reference (fix engine head) (flutter/engine#45024)
Not sure why we didn't catch this on presubmits. I think there was a
merge order problem.
2023-08-23 13:39:01 -07:00
Brandon DeRosier
cf500170ce Revert "Enable clang-tidy for pre-push (opt-out), exclude performance-unnecessary-value-param" (flutter/engine#45020)
Reverts flutter/engine#44936
2023-08-23 20:17:13 +00:00
Brandon DeRosier
e5c4a38d8b [Impeller] Add STB text backend. (flutter/engine#44887)
Pull the STB text backend into the engine from impeller-cmake.
2023-08-23 13:06:50 -07:00
Reid Baker
5b4a05fa89 Followup to https://github.com/flutter/engine/pull/44982 (flutter/engine#45018)
One change was missing from https://github.com/flutter/engine/pull/44982 when I applied auto submit.
2023-08-23 20:04:17 +00:00
skia-flutter-autoroll
b8ff2574a3 Roll Skia from 5428f147e632 to 4e42b51cfe27 (4 revisions) (flutter/engine#45016)
https://skia.googlesource.com/skia.git/+log/5428f147e632..4e42b51cfe27

2023-08-23 robertphillips@google.com Add cache key value extraction for LazyPicture Images
2023-08-23 bungeman@google.com Update DWriteCore to 1.4-preview2
2023-08-23 brianosman@google.com Add placeholder GrVkBackendSurface.h
2023-08-23 robertphillips@google.com Add SkImage_Picture::replay method

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,jimgraham@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-23 19:33:04 +00:00
Reid Baker
c9b1f6d63c Eliminate android test log spam (flutter/engine#44982)
Set gradle to treat warnings as errors and suppress or fix all warnings in engine android tests. 

Fixes flutter/flutter/133070

After doing this work I was disappointed to realized that the only lint turned on was deprecration but this is still a step in the right direction. 

- Remove usages of deprecated junit.framework and replace with org.junit in KeyboardManagerTest, PlatformViewsControllerTest and SinglePresentationViewTest
- Annotate deprecated usages of Registrar
- Suppress warnings for getSystemWindowInsets and ensure roboletric config consistant with targetApi lint annotation, bump itDescribesTextFieldsWithTextAndHint to 28 because test actually fails on api 26
- Suppress warnings for DartExecutor.send
- Suppress warnings for ClipboardManager.set/hasText
- Suppress warnings for getWindowSystemUiVisibility, setMessageHandler, DartExecutor.send, InputMethodSubtype, and proof of concept migration from Roboletric.setupActivity
- Suppress deprecation warnings, set minsdk on tests that were checking for sdk version
- Suppress deprecation warnings in SpellCheckPluginTest
- Suppress deprecation warnings in MouseCursorPluginTest, set minsdk config to match target api
- Stop calling RuntimeEnvrionment.application and insted a call ApplicationProvider.getApplicationContext() in SingleViewPresentationTest
- Start calling FlutterView(Context, FlutterSurfaceView)
- Suppress deprecation warnings in PlatformPluginTest, getText, Robolectric.setup/buildActivity, system ui flags
- Suppress deprecation warnings in PlayStoreDeferredComponentManagerTest
- Suppress deprecation warnings in KeyboardChannelTest
- Suppress deprecation warnings in SettingsChannelTest
- Suppress deprecation warnings in ApplicationInfoLoaderTest
- Stop calling RuntimeEnvrionment.application and insted a call ApplicationProvider.getApplicationContext() in FlutterEngineGroupCacheTest
- Suppress deprecation warnings in FlutterAndroidComponentTest
- Suppress deprecation warnings in FlutterFragmentTest, more robolectric setup activity calls
- Suppress deprecation warnings in FlutterActivityAndFragmentDelegateTest
- Shadow.directlyOn is incompatible with java 17+, refactor to use reflectors and direct following https://github.com/robolectric/robolectric/pull/6598/files as an example Unsure if SplashShadowResources is used anywhere
- Enable warnings as errors
- Formatting
2023-08-23 19:22:04 +00:00
Mouad Debbar
8dfbed3af4 [web] Remove some unused functions (flutter/engine#44505) 2023-08-23 19:18:54 +00:00
Michael Ludwig
9cec508891 Use decal TileMode in blur image_filter_test.dart (flutter/engine#45004)
The expected color values appear to match the output of Skia's raster
backend's blur. Historically, that doesn't support any tile mode other
than decal, so while the `makeBlur()` function defaulted to clamp
tiling, the output was decal and thus showed the blur fading to
transparent.

The test draws a 1x1 green rectangle in the center of a 3x3 image. Clamp
tiling would actually cause the output of the blur to just copy the
central green color to the remaining 8 pixels. This is the output of
Skia's GPU blur. I am working to land changes in Skia that make the
raster backend handle all tile modes, which then has it match the
existing GPU blur's behavior of a constant output for clamp tiling in
this test (so it then fails).

Decal tiling appears to be more useful for this test case anyways
because it creates per-pixel variations that can be validated against.

This is needed to land Skia-side fixes for skbug.com/40039877 and
skbug.com/40039025

## 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-23 14:32:50 -04:00
Ian Hickson
190343a2bb FontVariation.lerp, custom FontVariation constructors, and more documentation (flutter/engine#44996)
This should aid with implementing the framework side of https://github.com/flutter/flutter/issues/105120.
This should also address https://github.com/flutter/flutter/issues/28543.

This is a reland of https://github.com/flutter/engine/pull/43750 with two changes, one to fix a typo mentioned in https://github.com/flutter/engine/pull/43750#issuecomment-1689299114, and one to fix the analysis error found when rolling this to the framework (https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20analyze/62845/overview). The latter change is temporary and can be relaxed when FontVariations is reexported from dart:ui. I plan to do that when fixing https://github.com/flutter/flutter/issues/105120.
2023-08-23 18:05:53 +00:00
Jonah Williams
def71edad1 [impeller] combine sampler and texture maps. (flutter/engine#44990)
Simplify command encoding and reduce binding size by placing all texture/sampler data in a single map instead of 3. We don't currently (nor do we plan to) support separate textures and samplers.

The vulkan backend is particularly bad, because there are 3 map lookups to pull all of the texture and sampler data out of the bindings.

Also see [go/impeller-vulkan-cmd-recording-performance](http://goto.google.com/impeller-vulkan-cmd-recording-performance)
2023-08-23 17:13:46 +00:00
Brandon DeRosier
1c861eb04f [Impeller] Flutter GPU: Add HostBuffer. (flutter/engine#44696)
Resolves https://github.com/flutter/flutter/issues/132516.

Add `impeller::HostBuffer` wrapper to Flutter GPU.
* Allows for lazy batch uploads of sparse host data to the GPU.
* Handles platform alignment requirements.
* API returns buffer view handles that will be fed to commands.
2023-08-23 10:09:01 -07:00
skia-flutter-autoroll
1737bdc79b Roll Skia from 2111e8126c08 to 5428f147e632 (2 revisions) (flutter/engine#45008)
https://skia.googlesource.com/skia.git/+log/2111e8126c08..5428f147e632

2023-08-23 robertphillips@google.com Make SkImage_Picture::props() thread-safe
2023-08-23 johnstiles@google.com Remove unused dehydrated-SkSL file.

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,jimgraham@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-23 16:21:56 +00:00
skia-flutter-autoroll
26d5ab855a Roll Skia from d0c369eaa637 to 2111e8126c08 (1 revision) (flutter/engine#45002)
https://skia.googlesource.com/skia.git/+log/d0c369eaa637..2111e8126c08

2023-08-23 johnstiles@google.com Apply basic dead-code stripping to unoptimized modules.

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,jimgraham@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-23 15:34:04 +00:00
skia-flutter-autoroll
7403fde1b0 Roll Fuchsia Linux SDK from VSvpNFoFjqXIQTcs6... to -HcyJtxGxUDcqX-jo... (flutter/engine#44999)
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 jimgraham@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-23 13:50:03 +00:00
Zachary Anderson
c187b9fcfd Revert "FontVariation.lerp, custom FontVariation constructors, and more documentation" (flutter/engine#44993)
Reverts flutter/engine#43750

Looks like this is having trouble rolling into the framework: https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20analyze/62845/overview
2023-08-23 05:55:13 +00:00
skia-flutter-autoroll
45f3e0b6ab Roll Skia from aa208c8a2d60 to eac8f8ea2660 (1 revision) (flutter/engine#44992)
https://skia.googlesource.com/skia.git/+log/aa208c8a2d60..eac8f8ea2660

2023-08-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from fd820e605b8a to 07afc72c35f0 (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,jimgraham@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-23 05:45:26 +00:00
Tong Mu
f26ad84d14 Move Rasterizer::Draw's discard_callback to Delegate (flutter/engine#44813)
This PR `Rasterizer::Draw`'s `discard_callback` parameter, which is
assigned by `Shell`, to `Delegate`, which is also implemented by
`Shell`. This refactory makes the API cleaner.

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or Hixie said the PR is test-exempt. See [testing the engine]
for instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[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-22 21:25:30 -07:00
Ian Hickson
2a18cbd604 FontVariation.lerp, custom FontVariation constructors, and more documentation (flutter/engine#43750)
This should aid with implementing the framework side of https://github.com/flutter/flutter/issues/105120 This should also address https://github.com/flutter/flutter/issues/28543.
2023-08-23 03:35:20 +00:00
Ian Hickson
9881f4846b Make web tests start with an empty title (flutter/engine#43846)
Fixes https://github.com/flutter/flutter/issues/39159
2023-08-23 03:22:59 +00:00