23715 Commits

Author SHA1 Message Date
Matan Lurey
a330c4ff97 Update (flipping the default from false -> true) and deprecate Paint.enableDithering. (flutter/engine#44705)
Update: Blocked on https://github.com/flutter/engine/pull/44912 landing,
and merging into google3.

---

Partial work towards https://github.com/flutter/flutter/issues/112498.

_**tl;dr**: In Impeller's backend we intend to _always_ dither
gradients, and never allow any changes long-term (i.e., write your own
shader if you want different behavior) with the assumption that dithered
gradients look better most of the time, and don't typically hurt
elsewhere._

Note that, at the time of this writing, I couldn't find a single case of
this being set explicitly to `true` inside Google, and there are between
[100 and 200 publicly accessible on
GitHub](https://github.com/search?q=%22Paint.enableDithering%22+language%3ADart&type=code&l=Dart),
of which virtually all are setting it explicitly to `true`.

There are some (valid) concerns this would cause a lot of golden-file
image diffs, so I'm going to seek explicit approval from the Google
testing team as well as someone from the framework team before landing
this commit.
2023-09-01 10:19:59 -07:00
Jonah Williams
baa288096b [Impeller] EntityPass::Clone needs to clone harder (flutter/engine#45313)
Fixes https://github.com/flutter/flutter/issues/133731
2023-09-01 17:19:03 +00:00
Chris Yang
b3fc48b91b Reland "ios: remove shared_application and support app extension build #44732" (flutter/engine#45351)
Relands https://github.com/flutter/engine/pull/44732 with fix. 

The original PR returns nil when the assets is not reachable, in some cases, the assets are not loaded yet but will be loaded later, so we should return the asset URL regardless. 

Also added a fallback to main bundle to match the previous implementation. 

The original PR was failed in internal tests in b/297654739
Now with the fix, all tests passed: cl/561449914

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-01 16:56:49 +00:00
Brian Osman
19d37a310c Migrate Fuchsia VK calls of GrBackend* (flutter/engine#45380)
Follow-up to https://github.com/flutter/engine/pull/45325

No functional change.
2023-09-01 15:41:43 +00:00
Bruno Leroux
1dc91d901e [Linux] Fix channel buffers control commands error handling (flutter/engine#45056)
## Description

This PR fixes a mistake I made on https://github.com/flutter/engine/pull/44636 where the error handling code wrongly relied on `fl_method_channel_invoke_method_finish` instead of  `fl_binary_messenger_send_on_channel_finish`.
The error handling code was not called when running the tests added in https://github.com/flutter/engine/pull/44636 so this mistake did not pop up.

@robert-ancell I added a test that simulates an error response and I had to rely on `g_idle_add` to make it works. Is this approach ok?

## Related Issue

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

## Tests

Adds one test.
2023-09-01 07:40:25 +00:00
skia-flutter-autoroll
47242f91e0 Roll Skia from e585fdc18134 to 2916365d0fa6 (1 revision) (flutter/engine#45366)
https://skia.googlesource.com/skia.git/+log/e585fdc18134..2916365d0fa6

2023-09-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 4d381b7718fd to 2b76b0e00861 (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 aaclarke@google.com,brianosman@google.com,jlavrova@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-09-01 05:29:47 +00:00
Jonah Williams
bad97b052b [Impeller] use correct blend mode for performance overlay (flutter/engine#45365)
Man this is a sharp 🔪 

I literally pointed this out in the review and failed to notice the wrong parameter had the blend mode.
2023-09-01 03:47:52 +00:00
skia-flutter-autoroll
83ece1f3e3 Roll Skia from 818f20f3f653 to e585fdc18134 (1 revision) (flutter/engine#45363)
https://skia.googlesource.com/skia.git/+log/818f20f3f653..e585fdc18134

2023-09-01 michaelludwig@google.com [skif] Implement BlurImageFunctor for Graphite

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,jlavrova@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-09-01 02:25:57 +00:00
skia-flutter-autoroll
748ef893b0 Roll Dart SDK from 9f9bd8cddfb0 to 0c121a6431cc (1 revision) (flutter/engine#45362)
https://dart.googlesource.com/sdk.git/+log/9f9bd8cddfb0..0c121a6431cc

2023-09-01 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-128.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 aaclarke@google.com,dart-vm-team@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-09-01 02:22:47 +00:00
Jonah Williams
ff37fcdf5a [Impeller] copy data out of DlVertices. (flutter/engine#45355)
The implementation of DLVerticesGeometry is holding onto a raw ptr that it doesn't own nor does it know that the lifecycle is deterministic. My bad!

This mostly worked (ehhh) until the stopwatch visualizer change. I've confirmed that going back to copying the data fixes the issue with the stopwatch visualizer.
2023-08-31 23:58:04 +00:00
skia-flutter-autoroll
8d106930d6 Roll Skia from e1b27dcecd0a to 818f20f3f653 (2 revisions) (flutter/engine#45353)
https://skia.googlesource.com/skia.git/+log/e1b27dcecd0a..818f20f3f653

2023-08-31 robertphillips@google.com Check for a valid ProxyCache in ResourceCache::purgeResources
2023-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 557268622720 to 90907540b014 (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 aaclarke@google.com,brianosman@google.com,jlavrova@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-31 22:59:18 +00:00
Stephen Adams
182847ec84 [web] More efficient fallback font selection (flutter/engine#44526)
The PR improves the code size and runtime performance of fallback font selection.

### Performance improvements

Initialization of the data structures to support fallback font selection has been moved from creating the FallbackFontManager (first frame) to the first use, i.e. the first frame actually needing a fallback font.

The numbers reported below are for a lightly edited version of the counter demo that appends to the counter about ~300 missing code points that need ~25 fallback fonts to cover the missing code points. Timings taken from a few profiles on my performance workstation.

|  |  Before | After  | 
| --- | ---: | ---: |
| FallbackFontManager() |~100ms | <2ms |
| First need | 0ms | 12ms |
| Subsequent need | 20-30ms | <1ms |

### Size improvements

|  |  Before | After  | Δ |
| --- | ---: | ---: | ---: |
| main.dart.js | 1586405 | 1477319 | -109086 (-6.87%) |
| brotli -9 | 427304 | 401611 | -25693 (-6.01%) |

### Algorithm notes

#### Startup

The old algorithm built an interval tree from the code point ranges of the ~140 fallback fonts and uses the interval tree to build a list of fonts that support each missing code point. The new algorithm uses a binary search map that directly produces the list of fonts. There are fewer binary search ranges (~22k) than the aggregate ranges for all the fonts (~26k).
Most of the startup time gain comes from using a data unpacks directly into a useful form rather than needing processing to build an interval tree (~12ms vs ~100ms).

#### Running

The runtime for font selection is greatly improved for several reasons

- The code point space is partitioned into components so that code point counting can be batched.
- When a font is selected, the counts are updated incrementally rather than being recomputed.
- The counts are held in fields of the NotoFont and component objects rather than in Maps or Sets.

Batching, incremental update and avoiding hash tables are roughly multiplicative in effect.

## Issues

- https://github.com/flutter/flutter/issues/131440

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-31 22:42:20 +00:00
Ian Hickson
4366aa7092 Avoid saying exactly who can give test exemptions (flutter/engine#45343) 2023-08-31 21:46:04 +00:00
Zachary Anderson
a5bc143d64 Revert "Reland "Build iOS unittest target in unopt builds" (#44356)"" (flutter/engine#45346)
Reverts flutter/engine#44821

clang-tidy failures
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac%20Production%20Engine%20Drone/137227/overview
2023-08-31 14:05:21 -07:00
Jim Graham
8cbaba6a03 Lazily allocate RasterCacheItems only when caching is enabled (flutter/engine#45211)
Fixes https://github.com/flutter/flutter/issues/133377

The default allocation of RasterCacheItems in the layer tree was showing up in profiles of apps running on Impeller which don't actually use the raster cache.

In order to eliminate the overhead of those allocations, RasterCacheItems are now lazily allocated only when the layers encounter an actual raster_cache during the Preroll phase.
2023-08-31 20:32:06 +00:00
skia-flutter-autoroll
e92e5cd6a9 Roll Skia from 8ff4fd208c26 to 5d08dadd2ef4 (3 revisions) (flutter/engine#45340)
https://skia.googlesource.com/skia.git/+log/8ff4fd208c26..5d08dadd2ef4

2023-08-31 jvanverth@google.com Revert "[graphite] Remove GRAPHITE_TEST_UTILS from Recorder"
2023-08-31 robertphillips@google.com Add missing SK_API to Raster MakeWithFilter declaration
2023-08-31 kjlubick@google.com Add DateTime alias to SkPDFDocument

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,jlavrova@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-31 20:10:49 +00:00
Chris Yang
238fda902d Reland "Build iOS unittest target in unopt builds" (#44356)" (flutter/engine#44821)
Relands https://github.com/flutter/engine/pull/44301

The original PR was reverted in https://github.com/flutter/engine/pull/44356

The `assert flutter_dylib_time <= ios_test_lib_time, final_message` check is reverted in 0d8aebd040, so we are safe to land this again. 

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-31 20:05:34 +00:00
Hossein Yousefi
5409eadd3c Update comment const_finder.dart (flutter/engine#45180)
The arguments no longer seem to be all required and non-null. Updated the doc comment to reflect this.
2023-08-31 20:04:53 +00:00
Tong Mu
6207fce970 Replace an unnecessary util function with PostSync (flutter/engine#45190)
Fix an unnecessary util function that I created not knowing there's already `PostSync`.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-31 19:36:57 +00:00
skia-flutter-autoroll
2ca0d97895 Roll Skia from cda0cfaadfd7 to 8ff4fd208c26 (3 revisions) (flutter/engine#45337)
https://skia.googlesource.com/skia.git/+log/cda0cfaadfd7..8ff4fd208c26

2023-08-31 armansito@google.com [graphite][dawn] Enable compute unit tests on Dawn
2023-08-31 johnstiles@google.com Disallow `texture2D` without readonly/writeonly qualifier.
2023-08-31 johnstiles@google.com Change meaning of `texture2D` to refer to read-write 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 aaclarke@google.com,brianosman@google.com,jlavrova@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-31 19:23:09 +00:00
skia-flutter-autoroll
05ff4f8858 Roll Dart SDK from 0cea73a8d3c3 to ac3bc9f6351a (4 revisions) (flutter/engine#45336)
https://dart.googlesource.com/sdk.git/+log/0cea73a8d3c3..ac3bc9f6351a

2023-08-31 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-126.0.dev
2023-08-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-125.0.dev
2023-08-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-124.0.dev
2023-08-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-123.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 aaclarke@google.com,dart-vm-team@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-31 18:57:52 +00:00
Chris Bracken
9bf9453e26 [macOS] Link __availability_version_check (flutter/engine#45333)
Links in an implementation of _availability_version_check on macOS.                
This is required due to an upstream compiler builtin (runtime) change              
that marked this function as weakly-linked via `__attribute__((weak import))`   
As such, no linking failure occurs when the function is unavailable at             
link time.                                                                         
                                                                                   
By providing an implementation, the linker picks up our implementation,            
which looks up symbol in question at runtime (via dlsym) on the first              
invocation, caches it for later invocations, then invokes it. This is,             
in fact, precisely what the original clang builtin implementation did.             
                                                                                   
Upstream clang change: https://reviews.llvm.org/D150397                            
                                                                                   
Issue: https://github.com/flutter/flutter/issues/133777 

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-31 18:41:00 +00:00
skia-flutter-autoroll
e2b30eb181 Roll Skia from 8c05d5103d6b to cda0cfaadfd7 (3 revisions) (flutter/engine#45334)
https://skia.googlesource.com/skia.git/+log/8c05d5103d6b..cda0cfaadfd7

2023-08-31 michaelludwig@google.com Further increase over-sampling in blurs
2023-08-31 johnstiles@google.com Eliminate makeSampler2D() intrinsic.
2023-08-31 armansito@google.com [graphite][dawn] Support encoding compute dispatch commands

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,jlavrova@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-31 18:36:03 +00:00
Zachary Anderson
b308156778 Adds an --rbe option to tools/gn that works on Linux hosts (flutter/engine#45271)
This PR lands changes to `tools/gn` to use Flutter's RBE instance
instead of Goma. It is initially supported only for builds from a Linux
host.

1. Authenticate with `gcloud`
```
engine/src$ ./buildtools/linux-x64/gcloud/bin/gcloud auth application-default login --disable-quota-project
```

2. GN
```
engine/src$ ./flutter/tools/gn --android --android-cpu arm64 --no-lto --runtime-mode debug --rbe
```

3. Build
```
engine/src$ ninja -C out/android_debug_arm64 -j200
```
2023-08-31 11:31:17 -07:00
Brian Osman
c11672e29a Migrate VK calls of GrBackend* (flutter/engine#45325)
In https://skia-review.googlesource.com/c/skia/+/742797 Skia refactored
GrBackend* to not require #ifdefs. This changes
callsites in Flutter to use static functions instead of methods that
were conditionally compiled on those classes.

There should be no functional change.
2023-08-31 14:15:17 -04:00
Zachary Anderson
aad0b0f680 Revert dl split (flutter/engine#45326)
Reverting for https://github.com/flutter/flutter/issues/133525
fixes: https://github.com/flutter/engine/pull/45326
2023-08-31 17:46:12 +00:00
skia-flutter-autoroll
b1164e4d05 Roll Skia from d113402de2ce to 8c05d5103d6b (4 revisions) (flutter/engine#45331)
https://skia.googlesource.com/skia.git/+log/d113402de2ce..8c05d5103d6b

2023-08-31 michaelludwig@google.com Add X11/xcb packages to install_dependencies.sh
2023-08-31 jvanverth@google.com [graphite] Remove GRAPHITE_TEST_UTILS from Recorder
2023-08-31 armansito@google.com [graphite][dawn] Introduce DawnComputePipeline
2023-08-31 penghuang@chromium.org Update EGL-Registry

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,jlavrova@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-31 17:39:22 +00:00
skia-flutter-autoroll
a9ffc23f70 Roll Skia from a295ff96782a to d113402de2ce (1 revision) (flutter/engine#45324)
https://skia.googlesource.com/skia.git/+log/a295ff96782a..d113402de2ce

2023-08-31 herb@google.com Implement the Bentley-Ottmann event queue

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,jlavrova@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-31 16:05:07 +00:00
skia-flutter-autoroll
4689031519 Roll Skia from a13a9d6efbbc to a295ff96782a (2 revisions) (flutter/engine#45321)
https://skia.googlesource.com/skia.git/+log/a13a9d6efbbc..a295ff96782a

2023-08-31 johnstiles@google.com Update Ganesh D3D to use combined sampler-textures.
2023-08-31 johnstiles@google.com Add layout(direct3d) flag.

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,jlavrova@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-31 15:21:05 +00:00
skia-flutter-autoroll
9d8bb7e81b Roll Skia from 47a7d27ceb93 to a13a9d6efbbc (2 revisions) (flutter/engine#45319)
https://skia.googlesource.com/skia.git/+log/47a7d27ceb93..a13a9d6efbbc

2023-08-31 kjlubick@google.com Misc IWYU cleanups
2023-08-31 penghuang@chromium.org Set dawn_egl_registry_dir for dawn

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,jlavrova@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-31 14:32:03 +00:00
skia-flutter-autoroll
82b9f3d220 Roll Skia from 1fae612aee7d to 47a7d27ceb93 (1 revision) (flutter/engine#45318)
https://skia.googlesource.com/skia.git/+log/1fae612aee7d..47a7d27ceb93

2023-08-31 robertphillips@google.com Remove Skia-internal uses of SkImage::makeWithFilter

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,jlavrova@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-31 13:42:22 +00:00
Matej Knopp
3cb8e82909 [macOS] Implement unobstructed platform views (flutter/engine#42960)
Fixes https://github.com/flutter/flutter/issues/129073

## Changes to Embedder API

Introduced `FlutterRegion` to represent arbitrary region:
```cpp
typedef struct {
  /// The size of this struct. Must be sizeof(FlutterRegion).
  size_t struct_size;
  /// Number of rectangles in the region.
  size_t rects_count;
  /// The rectangles that make up the region.
  FlutterRect* rects;
} FlutterRegion;
```

Note that this is identical to struct `FlutterDamage` with more generic
naming. Maybe down the line we could deprecate `FlutterDamage` and use
`FlutterRegion` instead.

Introduced `FlutterBackingStorePresentInfo`:
```cpp

typedef struct {
  size_t struct_size;

  /// The area of the backing store that contains Flutter contents. Pixels
  /// outside of this area are transparent and the embedder may choose not
  /// to render them. Coordinates are in physical pixels.
  FlutterRegion* paint_region;
} FlutterBackingStorePresentInfo;
```
In future this struct may also contain more precise hit test region
(when framework supports it) and/or information relevant to partial
repaint (buffer damage, frame damage).

Added a `backing_store_present_info` field to `FlutterLayer`:

```cpp
typedef struct {
  ...
  /// Extra information for the backing store that the embedder may
  /// use during presentation.
  FlutterBackingStorePresentInfo* backing_store_present_info;
} FlutterLayer;
```

## Changes to the macOS embedder

This PR adds support for `FLTEnableSurfaceDebugInfo` flag in main bundle
`Info.plist` that enables visual indicators of overlay layers.

## Example of unobstructed platform views


https://github.com/flutter/flutter/assets/96958/09a75eee-316b-4d53-a8b4-d6bb4e1e52f7

## 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-31 08:02:29 +02:00
skia-flutter-autoroll
3c19ca33b4 Roll Skia from af7fb958e7f7 to adaad6716b2c (1 revision) (flutter/engine#45312)
https://skia.googlesource.com/skia.git/+log/af7fb958e7f7..adaad6716b2c

2023-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 3bbc85ea8f37 to 4d381b7718fd (3 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC aaclarke@google.com,brianosman@google.com,jlavrova@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-31 05:56:23 +00:00
skia-flutter-autoroll
e40a0a18e1 Roll Skia from 5f3ef5363dbd to af7fb958e7f7 (1 revision) (flutter/engine#45311)
https://skia.googlesource.com/skia.git/+log/5f3ef5363dbd..af7fb958e7f7

2023-08-31 armansito@google.com [graphite][dawn] Introduce error scope utility

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,jlavrova@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-31 03:16:37 +00:00
Jonah Williams
42f0f83acb [Impeller] CoverGeometry transforms its bounds. (flutter/engine#45308)
Thanks to @bdero 😎 

Fixes https://github.com/flutter/flutter/issues/132802
Fixes https://github.com/flutter/flutter/issues/123142

### Skia

![flutter_02](https://github.com/flutter/engine/assets/8975114/dfb46a22-8d37-40d3-8380-fe2ff3c46a36)

### Impeller

![flutter_01](https://github.com/flutter/engine/assets/8975114/353761b2-f883-4721-9a87-eb25e641ef2f)
2023-08-31 02:54:06 +00:00
Dan Field
ffa16ec08f [Impeller] Reland DlAiksCanvas (flutter/engine#45232)
Relands https://github.com/flutter/engine/pull/45131

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

Differences from last time:

- Some minor merge conflict fixes
- Use the RTree to get the bounds instead of recalculating the bounds
- Make the iOS platform view controller implementation use the impeller-aware slices instead of the display list ones. This has been fixed for Android and the desktop embedding, but I missed iOS. The unit tests weren't actually running before I branched for my PR, @zanderso fixed them up separately and this resulted in catching the failures on post submit last time.
2023-08-31 00:29:23 +00:00
Matan Lurey
293bca4e65 Add a build_bucket_golden_scraper tool. (flutter/engine#45243)
As discussed offline, this is best deleted when Skia-gold is used for
all of our engine tests.

However, this will be useful for unblocking some PRs until then :)

See README.md for details!
2023-08-30 17:26:01 -07:00
Matan Lurey
8a55ee5d07 Add a DlStopwatchVisualizer and conditionally use it for Impeller (flutter/engine#45259)
Closes https://github.com/flutter/flutter/issues/126009.

One major change, as-per @jonahwilliams's feedback, is that I created a helper class called `DlVertexPainter`, which provides a `DrawRect`-like API, but just builds a buffer of vertices, resulting into just a single:

```cc
// Actually draw.
canvas->DrawVertices(painter.IntoVertices(), DlBlendMode::kSrc, paint);
```

Also, added test for it, since there is no way to screenshot test to Impeller overlay yet.

# Impeller

![Screenshot 2023-08-30 at 2 08 51 PM](https://github.com/flutter/engine/assets/168174/13bb83a7-9a02-40ae-b9e4-d71a2e47b594)
2023-08-30 23:15:16 +00:00
skia-flutter-autoroll
1410d8beaa Roll Skia from 185fbe1a264d to 5f3ef5363dbd (9 revisions) (flutter/engine#45305)
https://skia.googlesource.com/skia.git/+log/185fbe1a264d..5f3ef5363dbd

2023-08-30 michaelludwig@google.com Experiment with over-looping blur kernels
2023-08-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 99e7ba4c04b8 to 0d228411886e (11 revisions)
2023-08-30 robertphillips@google.com Add SkImages::MakeWithFilter factories
2023-08-30 robertphillips@google.com Move MakeWithFilter_Shared to SkImageFilter_Base::makeImageWithFilter
2023-08-30 jvanverth@google.com [graphite] Reduce generated SkImage usage in testing code.
2023-08-30 johnstiles@google.com Remove SPIRVDawnCompatFlag from SkSL.
2023-08-30 johnstiles@google.com Enable WGSL when `--config grdawn` is used.
2023-08-30 penghuang@chromium.org Set dawn_opengl_registry_dir dawn build override
2023-08-30 johnstiles@google.com Rename layout(backend) qualifiers to APIs, not languages.

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,jlavrova@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-30 22:21:28 +00:00
Jackson Gardner
e9d2afd7d5 [web] Roll to most recent fallback font data (flutter/engine#45301) 2023-08-30 22:03:46 +00:00
Matan Lurey
b68134a74a Increase maximum length of function names from 30 to 60. (flutter/engine#45296)
Unblocks https://github.com/flutter/engine/pull/45243, which adds the function:

```py
def `gather_build_bucket_golden_scraper_tests`():
```
2023-08-30 20:24:03 +00:00
Jackson Gardner
c46824a2fa Add an API in ui_web to create a ui.Image from an ImageBitmap (flutter/engine#45256)
This API will help with situations in which the user has a browser
resource that they want to transform into a `ui.Image` and render
directly into the layer tree. Most browser resources can be converted to
an `ImageBitmap` via the `createImageBitmap` API.
2023-08-30 13:01:22 -07:00
Jason Simmons
204b2e9e9b [Impeller] Reorganize the glyph atlas to improve efficiency when looking up runs of glyphs in the same font (flutter/engine#45191)
The atlas will now store a separate map of glyph positions for each font/scale pair.  This avoids the cost of repeated hashing and copying of font objects for each glyph in a text run.

See https://github.com/flutter/flutter/issues/133201
2023-08-30 19:49:04 +00:00
skia-flutter-autoroll
667cd94c00 Roll Skia from 7a246c9eb086 to 185fbe1a264d (3 revisions) (flutter/engine#45289)
https://skia.googlesource.com/skia.git/+log/7a246c9eb086..185fbe1a264d

2023-08-30 kjlubick@google.com Remove unused SkFuzzLogging and SkAutoTime
2023-08-30 lovisolo@google.com //go.mod: Update to go 1.18 (same as the Go version in //WORKSPACE.bazel).
2023-08-30 michaelludwig@google.com Revert "Exact loops for all 1D blur kernels"

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,jlavrova@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-30 17:56:04 +00:00
gaaclarke
abd01ab3c2 Revert "Roll Dart SDK from 0cea73a8d3c3 to 96d3a79547fc" (flutter/engine#45285)
reverts: https://github.com/flutter/engine/pull/45262

issue: https://github.com/flutter/flutter/issues/133677
2023-08-30 10:21:23 -07:00
skia-flutter-autoroll
a31b07c61e Roll Skia from 3489b6d1d613 to 7a246c9eb086 (4 revisions) (flutter/engine#45286)
https://skia.googlesource.com/skia.git/+log/3489b6d1d613..7a246c9eb086

2023-08-30 michaelludwig@google.com [skif] Fix small-sigma threshold on GPU blurs
2023-08-30 sosotsertsvadze2@gmail.com fix: When installing skia on Windows, using emsdk.py, the option --permanent is required for setting environment variables.
2023-08-30 johnstiles@google.com Remove obsolete setting 'fAllowTraceVarInDebugTrace'.
2023-08-30 robertphillips@google.com Call makeImageFunctor explicitly in MakeWithFilter_Shared

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,jlavrova@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-30 16:56:50 +00:00
skia-flutter-autoroll
a5444bc48b Roll Skia from a58ccf8ae398 to 3489b6d1d613 (2 revisions) (flutter/engine#45283)
https://skia.googlesource.com/skia.git/+log/a58ccf8ae398..3489b6d1d613

2023-08-30 cmumford@google.com [skottie]: put CanvasKit in expected directory
2023-08-30 michaelludwig@google.com Exact loops for all 1D blur kernels

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,jlavrova@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-30 16:07:56 +00:00
skia-flutter-autoroll
5093f62ab8 Roll Skia from 6f4fd97d2f7e to a58ccf8ae398 (1 revision) (flutter/engine#45280)
https://skia.googlesource.com/skia.git/+log/6f4fd97d2f7e..a58ccf8ae398

2023-08-30 robertphillips@google.com Replace onCreateFilterContext virtual with explicit Functor creation

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,jlavrova@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-30 14:02:06 +00:00
skia-flutter-autoroll
4eddcaee70 Roll Skia from a2728a7ad2a3 to 6f4fd97d2f7e (2 revisions) (flutter/engine#45278)
https://skia.googlesource.com/skia.git/+log/a2728a7ad2a3..6f4fd97d2f7e

2023-08-30 kjlubick@google.com Add external_client workspace for testing consuming Skia rules
2023-08-30 lovisolo@google.com [bazel] //gm/BazelGMRunner.cpp: Improve structure of output JSON 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 aaclarke@google.com,brianosman@google.com,jlavrova@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-30 13:17:58 +00:00
skia-flutter-autoroll
6dae4050bc Roll Skia from fde9fe141863 to 03289b20b5d3 (1 revision) (flutter/engine#45268)
https://skia.googlesource.com/skia.git/+log/fde9fe141863..03289b20b5d3

2023-08-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from d779093a7a96 to 3bbc85ea8f37 (8 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC aaclarke@google.com,brianosman@google.com,jlavrova@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-30 05:32:14 +00:00