Commit Graph

28452 Commits

Author SHA1 Message Date
Brandon DeRosier
c7eefdf7f0 [Impeller] Fix transform regressions for chained filters (flutter/engine#41332)
Resolves https://github.com/flutter/flutter/issues/124956.

Fixes some recent transform issues that mainly apply to chained filters
(like when both a color + image filter has been set).

- For all filters, the returned entity should just be an identity matrix
because the snapshot transform gets fully absorbed.
- For all filters, given entity's transform should be applied in the
coverage proc (although this currently makes no difference because of
the way coverage is queried when snapshotting).
- For filters drawing with coverage + transforming UVs, the transform
handed to the contents of the deferred entity needs to be applied.
Otherwise the entity won't get repositioned correctly while
snapshotting.
2023-04-19 11:55:42 -07:00
Chinmay Garde
4117cb927e [Impeller] Make //impeller/display_list TU naming consistent. (flutter/engine#41174)
No change in functionality. I've just renamed the TU's to replace `display_list_` to `dl_`. I am sure there are chances to make the naming better. For instance, the op receiver still being named a dispatcher.
2023-04-19 17:32:53 +00:00
Mouad Debbar
2bc352f431 [web] Remove non-ShadowDom mode (flutter/engine#39915)
If we still want to do this, here's a quick PR :)

Fixes https://github.com/flutter/flutter/issues/116204
2023-04-19 16:15:21 +00:00
gaaclarke
166895773e [impeller] added moltenvk notice (flutter/engine#41317)
fixes https://github.com/flutter/flutter/issues/125076

## 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.
- [ ] 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-04-19 09:11:10 -07:00
skia-flutter-autoroll
7d93772a65 Roll Skia from 8af1dd9659f0 to ad90b6bd4760 (3 revisions) (flutter/engine#41337)
https://skia.googlesource.com/skia.git/+log/8af1dd9659f0..ad90b6bd4760

2023-04-19 johnstiles@google.com Disable SkSL traces when optimize-for-size is on.
2023-04-19 johnstiles@google.com Implement onFilterColor4f in SkRP.
2023-04-19 johnstiles@google.com Add no-child limitation to SupportsConstantOutputForConstantInput.

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,chinmaygarde@google.com,jmbetancourt@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-04-19 16:07:47 +00:00
skia-flutter-autoroll
1e1b8cdc42 Roll Dart SDK from 27e71f19c144 to fe8bb0565a30 (2 revisions) (flutter/engine#41336)
https://dart.googlesource.com/sdk.git/+log/27e71f19c144..fe8bb0565a30

2023-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-20.0.dev
2023-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-19.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 aam@google.com,chinmaygarde@google.com,dart-vm-team@google.com,rmistry@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-04-19 12:44:05 +00:00
skia-flutter-autoroll
1393c013a1 Roll Fuchsia Mac SDK from yD5a3QBJHUFM4nVou... to suSuT9F8zuP-pBg-E... (flutter/engine#41334)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-mac-sdk-flutter-engine
Please CC chinmaygarde@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-04-19 12:01:49 +00:00
skia-flutter-autoroll
2334d5b752 Roll Fuchsia Linux SDK from Cy5LG4U2InaFLkJGz... to Tun7i4VLz6ncx8JJJ... (flutter/engine#41331)
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 chinmaygarde@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-04-19 09:36:03 +00:00
skia-flutter-autoroll
151283e5c4 Roll Skia from 85d9e67653b1 to 8af1dd9659f0 (1 revision) (flutter/engine#41333)
https://skia.googlesource.com/skia.git/+log/85d9e67653b1..8af1dd9659f0

2023-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9263fd4841e9 to 4fbe7556fc02 (7 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,jmbetancourt@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-04-19 09:30:00 +00:00
skia-flutter-autoroll
3ef37ef0d5 Roll Skia from 5a718d9e9c06 to 85d9e67653b1 (4 revisions) (flutter/engine#41330)
https://skia.googlesource.com/skia.git/+log/5a718d9e9c06..85d9e67653b1

2023-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2f19bb746c6c to 25f843f89e20 (12 revisions)
2023-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 2b944a5cb38c to 08883892b342
2023-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e81a1152c10c to dd55e592406d (1 revision)
2023-04-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from d0db0611a16d to 2b944a5cb38c (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,chinmaygarde@google.com,jmbetancourt@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-04-19 08:45:48 +00:00
skia-flutter-autoroll
aa6897c9d9 Roll Dart SDK from 1f224df52bee to 27e71f19c144 (3 revisions) (flutter/engine#41329)
https://dart.googlesource.com/sdk.git/+log/1f224df52bee..27e71f19c144

2023-04-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-18.0.dev
2023-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-17.0.dev
2023-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-16.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 aam@google.com,chinmaygarde@google.com,dart-vm-team@google.com,rmistry@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-04-19 07:54:18 +00:00
Brandon DeRosier
addeb03c02 [Impeller] Add buffer-to-texture blit capability check; fix GL+VK playgrounds on macOS (flutter/engine#41320)
GL/VK playgrounds that load image fixtures are currently broken on
macOS.
2023-04-18 21:38:35 -07:00
Alexander Aprelev
ee5279217a Roll dart, zlib, emscripten, tweak license script for rolled zlib (flutter/engine#41299)
Changes since last dart roll
```
1f224df52be Version 3.1.0-15.0.dev
3c284a0c95c Revert "Reland "[VM] Begin supporting Perfetto file recorder""
754aca00499 Bump github/codeql-action from 2.2.11 to 2.2.12
7c8e61104f6 Bump actions/checkout from 3.5.0 to 3.5.2
f9f1030959d (origin/base) [infra] DEPS and test dart-lang/native packages
b04b0844067 [vm/win7] Dynamically load functions for unwinding instructions.
a6ebd6fa8e9 Bump tools to 545d7e1c73ce21b8c91f638021f9d487d324a501
c4795a75508 [vm, compiler] Don't do safepoint transitions in generated code under TSAN.
2fcf9754032 Version 3.1.0-14.0.dev
393b1016292 Version 3.1.0-13.0.dev
39fc15a0b4c (origin/lkgr) [analysis_server] Add missing declaration semantic token modifier on classes/constructors
609db33dc7a Issue 51985. Quick fix to add missing pattern case to switch expression/pattern.
8fa08ae80b6 Add 'Convert to if-case statement' quick assist.
17d92f90d0b offer wildcard suggestions for destructured record fields
3149f813bbf [dartdev] Update --enable-analytics to re-enable unified analytics
eee509140dd Add dependency overrides for pkg/analyzer
3069c4f3e2b [analysis_server] Add missing "constructor" semantic token modifiers on constructor declarations
9834f87c542 [dart2js] Fix noSuchMethod override handling.
639a6f06ef9 Simplify several non-terminals to use regex-like grammar operators
f88e3bd77c5 Issue 51903. Test fixes for ParserErrorCode.VAR_AND_TYPE
f4d42303ad2 [analysis_server] Handle completion in whitespace after string values
70762f0de0e [ANTLR] Transform recursive definition of onParts to use iteration ...
453647022f6 [analysis_server] Don't fail on invalid/complex setters in LSP code completion
a565638b910 Issue 51689. Report when 'super' is used as a standalone expression, not as a receiver of an invocation.
b78d89ce0c7 Fix DynamicTypeImpl to InterfaceTypeImpl cast exception in AddTypeAnnotation, when ambiguous SetOrMapLiteral.
bd9c7a46e2b Roll zlib to 14dd4c4455602c9b71a1a89b5cafd1f4030d2e3f
18b5ecdfc99 [vm] Cleanup dead code around TypeArgumentClassFinder
9d4d48949c0 Add a top-level variable strict-inference test case
8df1b888771 [VM/Service] Create JSONBase64String class
b4aa83b0b7f [VM/Service] Rename JSONStream::AppendSerializedObject to JSONStream::AppendBytes
4cd9c9c6666 Reland "[VM] Begin supporting Perfetto file recorder"
fa3a72fa7e5 [cfe/ffi] Error on compound constructors
```
2023-04-19 04:12:20 +00:00
skia-flutter-autoroll
2ce3ad07f1 Roll Skia from 84630c3c18b2 to 5a718d9e9c06 (3 revisions) (flutter/engine#41318)
https://skia.googlesource.com/skia.git/+log/84630c3c18b2..5a718d9e9c06

2023-04-18 johnstiles@google.com Reject structs containing any unsized arrays.
2023-04-18 jmbetancourt@google.com [skottie] pass slotID to property observer text callback
2023-04-18 johnstiles@google.com Implement GrSkSLFP::constantOutputForConstantInput in SkRP.

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,chinmaygarde@google.com,jmbetancourt@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-04-19 02:01:20 +00:00
Brandon DeRosier
447024ed0f [Impeller] Provide an opaque interface for color sources in Aiks (flutter/engine#41315)
Part of https://github.com/flutter/flutter/issues/125017.

Pulls ColorSource construction out of the dispatcher and into Aiks.

Cleans up a few design warts we've accumulated over time:
- Removes special exceptions for solid colors in `Paint`.
- Makes `SolidColorContents` a `ColorSourceContents`.
- Removes paint ref capture for kImage.
2023-04-18 17:14:53 -07:00
Yegor
d5474b17ac [web:canvaskit] remove unnecessary instrumentation from picture (flutter/engine#41313)
Remove unnecessary instrumentation from picture. `UniqueRef`
automatically instruments all allocations, disposals, and garbage
collections, which covers `CkPicture`.
2023-04-18 16:49:00 -07:00
skia-flutter-autoroll
7909cdcbbe Roll Skia from 476ee3fd54cc to 84630c3c18b2 (5 revisions) (flutter/engine#41316)
https://skia.googlesource.com/skia.git/+log/476ee3fd54cc..84630c3c18b2

2023-04-18 jmbetancourt@google.com [skottie] pass slot id to opacity callback
2023-04-18 robertphillips@google.com [graphite] Have ResourceCache call ProxyCache::freeUniquelyHeld
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6a521002def5 to 9263fd4841e9 (1 revision)
2023-04-18 armansito@google.com [graphite] Declare UniformManager tests with DEF_GRAPHITE_TEST
2023-04-18 briansalomon@gmail.com [bazel] git_repos_from_deps takes optional workspace parameter

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,chinmaygarde@google.com,jmbetancourt@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-04-18 23:44:46 +00:00
godofredoc
1a7e90d177 Double zip FlutterMacOS.framework.zip. (flutter/engine#41306)
This is required to make the artifact consistent with the legacy artifacts while the tool is modified to remove the need of double zipping.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-18 23:40:55 +00:00
skia-flutter-autoroll
da530ea898 Roll Fuchsia Mac SDK from qZHSvkpAU1-YYGvYc... to yD5a3QBJHUFM4nVou... (flutter/engine#41314)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-mac-sdk-flutter-engine
Please CC chinmaygarde@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-04-18 22:39:23 +00:00
Yegor
1289bfa247 [web:canvaskit] clean up the rest of skia_object_cache usages (flutter/engine#41259)
This should go after https://github.com/flutter/engine/pull/41230.

Removes the remaining usages of `skia_object_cache.dart` and deletes it.

Also fixes https://github.com/flutter/flutter/issues/86632
2023-04-18 14:34:01 -07:00
skia-flutter-autoroll
60494f6f45 Roll Skia from f80ee1088861 to 476ee3fd54cc (2 revisions) (flutter/engine#41309)
https://skia.googlesource.com/skia.git/+log/f80ee1088861..476ee3fd54cc

2023-04-18 armansito@google.com [graphite] Enforce std140 layout rule 4 for 2x2 matrices
2023-04-18 robertphillips@google.com [graphite] trim down PaintParamsKeyTest

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,chinmaygarde@google.com,jmbetancourt@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-04-18 21:07:55 +00:00
Dan Field
842e8cea52 [Impeller] Gpu model information to Skia gold (flutter/engine#41216)
Does two things:

- Exposes a string about the GPU model on `impeller::Context`
- passes that string on to Skia gold when we add a test image.

This should help reduce noise/flakiness in golden images.
2023-04-18 20:11:05 +00:00
gaaclarke
d7752e30c5 [Impeller] faster glyph atlas generation by removing data copies (flutter/engine#41290)
fixes https://github.com/flutter/flutter/issues/124996

This is the best I could come up with easily.  It doesn't give as good of a result as I'd hoped.  I measured it with a simple microbenchmark derived from one of the unit tests and it gave a 6% decrease in time ( 241.314us vs 257.626us) on macos release builds (run with rosetta).

Improvements:
1) Removed the copying of the std::set to an std::vector
1) Uses references instead of copying FontGlyphPairs out of collections in a few places
1) Holds new glyphs as a vector of references to the set instead of copying all the FontGlyphPairs
1) Deletes more lines of code than it adds

## the benchmark

```diff
diff --git a/impeller/typographer/typographer_unittests.cc b/impeller/typographer/typographer_unittests.cc
index 01a11d494c..1b99afa699 100644
--- a/impeller/typographer/typographer_unittests.cc
+++ b/impeller/typographer/typographer_unittests.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <chrono>
 #include "flutter/testing/testing.h"
 #include "impeller/playground/playground_test.h"
 #include "impeller/typographer/backends/skia/text_frame_skia.h"
@@ -149,23 +150,29 @@ TEST_P(TypographerTest, GlyphAtlasWithLotsOfdUniqueGlyphSize) {
       sk_font);
   ASSERT_TRUE(blob);
 
-  TextFrame frame;
-  size_t count = 0;
-  TextRenderContext::FrameIterator iterator = [&]() -> const TextFrame* {
-    if (count < 8) {
-      count++;
-      frame = TextFrameFromTextBlob(blob, 0.6 * count);
-      return &frame;
-    }
-    return nullptr;
-  };
-  auto atlas = context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap,
-                                         atlas_context, iterator);
-  ASSERT_NE(atlas, nullptr);
-  ASSERT_NE(atlas->GetTexture(), nullptr);
-
-  ASSERT_EQ(atlas->GetTexture()->GetSize().width * 2,
-            atlas->GetTexture()->GetSize().height);
+  auto beg = std::chrono::high_resolution_clock::now();
+  int count = 10000;
+  for (int i = 0; i < count; ++i) {
+    TextFrame frame;
+    size_t count = 0;
+    TextRenderContext::FrameIterator iterator = [&]() -> const TextFrame* {
+      if (count < 8) {
+        count++;
+        frame = TextFrameFromTextBlob(blob, 0.6 * count);
+        return &frame;
+      }
+      return nullptr;
+    };
+    auto atlas = context->CreateGlyphAtlas(GlyphAtlas::Type::kAlphaBitmap,
+                                           atlas_context, iterator);
+    ASSERT_NE(atlas, nullptr);
+    ASSERT_NE(atlas->GetTexture(), nullptr);
+    ASSERT_EQ(atlas->GetTexture()->GetSize().width * 2,
+              atlas->GetTexture()->GetSize().height);
+  }
+  auto end = std::chrono::high_resolution_clock::now();
+  auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - beg);
+  FML_LOG(ERROR) << "Elapsed Time: " << static_cast<double>(duration.count())/count << "us";
 }

```

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-18 20:07:58 +00:00
godofredoc
3b0e23c9c6 Migrate android AOT to engine_v2. (flutter/engine#41229)
The artifacts have been used in prod for a few weeks already and this change is just migrating the generation of the artifacts to engine_v2 builds and moving the legacy recipe to staging.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-18 19:53:15 +00:00
skia-flutter-autoroll
3dfade7147 Roll Skia from 5bd4bdc0d8e2 to f80ee1088861 (8 revisions) (flutter/engine#41302)
https://skia.googlesource.com/skia.git/+log/5bd4bdc0d8e2..f80ee1088861

2023-04-18 johnstiles@google.com Disable an untested/unreachable GrSkSLFP optimization.
2023-04-18 robertphillips@google.com [graphite] centralize gradient shader key generation
2023-04-18 jvanverth@google.com [graphite] Rename SDF variable to avoid collision with intrinsic
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f81e1056ccbc to 6a521002def5 (3 revisions)
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d0148f12bc12 to 2f19bb746c6c (5 revisions)
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from d0db0611a16d to 93d445650f3a
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 174e65e85901 to e81a1152c10c (1 revision)
2023-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 258b5715fe30 to d0db0611a16d (9 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,chinmaygarde@google.com,jmbetancourt@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-04-18 18:48:07 +00:00
Greg Spencer
70e9ea9a3c Some minor doc typo and diagnostic fixes. (flutter/engine#40982) 2023-04-18 10:39:06 -07:00
gaaclarke
dc938db866 [Impeller] Turned on wide gamut support by default. (flutter/engine#39801)
After having run a memory audit on Flutter Gallery I believe we can turn
on wide gamut support by default for impeller. Here are the
ramifications of this change:
1) If an opaque surface is used and no transparent wide gamut images are
used, there should be no change in performance or memory usage.
1) If a transparent surface is used; the surface will take up 2x memory
(ex 4MB on iPhone 7) and will have a runtime performance cost.
1) If wide gamut **transparent** images are used, they will take up 2x
memory. Opaque wide-gamut images will take up the same amount of memory.

## Flutter gallery test results

### Test 1

Steps:
* Tap "Material"
* Scroll down and back to "Cards"
* Tap "Cards"
* Scroll to bottom of "Cards" example

Notice that the card images are wide gamut, AdobeRGB.

**Memory increase:** 10.401 MB (+8.7%)

### Test 2

Steps:
* Just launch the gallery

Notice that there shouldn't be any wide gamut images.

**Memory Increase:** 1.22 MB (+1%, this is probably a fluke of
measurement)

## 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].
- [ ] 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.
- [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-04-18 10:28:40 -07:00
skia-flutter-autoroll
3bd9d3aa2d Manual roll Skia from d9e216e62223 to 5bd4bdc0d8e2 (12 revisions) (flutter/engine#41286)
Manual roll requested by jacksongardner@google.com

https://skia.googlesource.com/skia.git/+log/d9e216e62223..5bd4bdc0d8e2

2023-04-17 johnstiles@google.com Fix assertion when compiling oversized interface blocks.
2023-04-17 johnstiles@google.com Return a span from SkSL::Type::fields().
2023-04-17 brianosman@google.com Fix SkJpegMetadataDecoder for Windows shared build
2023-04-17 jvanverth@google.com [Graphite] Enable shader derivatives in Dawn backend.
2023-04-17 jmbetancourt@google.com [skottie] pass sid if present to PropertyObserver
2023-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a6e68d7ed2e8 to f81e1056ccbc (1 revision)
2023-04-17 ccameron@chromium.org Add SkJpegMetadataDecoder interface
2023-04-17 robertphillips@google.com [graphite] Add ProxyCache::purgeProxiesNotUsedSince
2023-04-17 egdaniel@google.com [Graphite] As purgeAsNeeded to ResourceCache.
2023-04-17 egdaniel@google.com [Graphite] Have zero sized resources always have max timestamp value.
2023-04-17 jamesgk@google.com [graphite] Refactor blend shader generation
2023-04-17 nicolettep@google.com Revert "Manual roll Dawn from 27c772262048 to a20c1ee82d29 (13 revisions)"

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jacksongardner@google.com,jmbetancourt@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-04-18 16:30:29 +00:00
Caroline Liu
f415c255c7 [fuchsia] migrate touch-input integration tests to gfx scene manager test ui stack (flutter/engine#41118)
This change migrates `touch-input` integration tests from the
`gfx-root-presenter-test-ui-stack` UI test realm variant to run
parameterized tests of two types: `gfx-scene-manager-test-ui-stack` and
`flatland-scene-manager-test-ui-stack`. Both are exercised for the
generic tap test, and only GFX is exercised for embedded view cases.
This will enable fuchsia.git to remove the
`gfx-root-presenter-test-ui-stack` variant, which will no longer be
supported.

This change also:
- removes or updates all remaining references of root presenter, which
manifested in the form of inline code comments
- adds a TODO to update the child view app for the embedded touch input
test cases

Note that this change does _not_ modify the `embedder` integration
tests, which use a generic `test-ui-stack` variant as defined by the
fuchsia pkg url:
`fuchsia-pkg://fuchsia.com/test-ui-stack#meta/test-ui-stack.cm`. Since
the contents of this package is defined in fuchsia.git, the realm under
test can adapt to changes in fuchsia.git so long as they update the
test-ui-stack build target (which they do in https://fxrev.dev/831359,
the change that relies on the touch changes in this repo described
above.)

Fixes https://fxbug.dev/125304

## 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.
2023-04-18 10:57:58 -04:00
Bruno Leroux
6e1e93c7fb [macOS] Fix Ctrl+Tab is broken (flutter/engine#40706)
## Description

This PR fixes Ctrl+Tab shortcut on macOS.

From https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingKeyEvents/HandlingKeyEvents.html#//apple_ref/doc/uid/10000060i-CH7-SW11, some key events, such as Ctrl+Tab, are notified by calling `performKeyEvent`: instead of `keyDown:`.

The text input plugin already implement this method, this is why the shortcut works only when there is a TextField (TextInputPlugin is then activated), see 'Step 6' of https://github.com/flutter/flutter/issues/122084 description.

## Implementation

I had to implement `performKeyEvent:` on `FlutterViewWrapper` because when adding it to `FlutterView` it was not called (see this similar comment related to setBackgroundColor: https://github.com/flutter/engine/pull/36906#discussion_r1006253709).

I also duplicated some code from FlutterTextInputPlugin.mm (the `KeyEquivalentMarker` definition) because `FlutterViewWrapper.performKeyEvent:` takes precedence over `FlutterTextInputPlugin.performKeyEvent:` so setting the marker is important to not break `FlutterTextInputPlugin.handleKeyEvent:`.

## Related Issue

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

## Tests

Adds 1 test.
2023-04-18 08:44:33 +00:00
skia-flutter-autoroll
ab30a4cf1c Roll Fuchsia Mac SDK from K1LGtKXyxRlW3Q9O1... to qZHSvkpAU1-YYGvYc... (flutter/engine#41293)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-mac-sdk-flutter-engine
Please CC jacksongardner@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-04-18 08:33:22 +00:00
Alexander Aprelev
ad0615b4ef Roll buildroot to 059d155b4d452efd9c4427c45cddfd9445144869 (flutter/engine#41288)
Changes since last roll:
```
059d155 [dart] Add identifier needed for zlib roll (#718)
459d3e5 Bump github/codeql-action from 2.2.11 to 2.2.12 (#716)
91f1ba5 Bump actions/checkout from 3.5.1 to 3.5.2 (#715)
2e5c483 Bump actions/checkout from 3.5.0 to 3.5.1 (#714)
a5af13d Remove codeql. (#713)
```
2023-04-18 05:00:23 +00:00
Brandon DeRosier
9541138082 [Impeller] Remove glyph pixel rounding during text frame conversion (flutter/engine#41285) 2023-04-17 20:56:33 -07:00
godofredoc
8b46857ae8 Revert "Reland "Migrate mac_host_engine to engine v2 builds."" (flutter/engine#41284)
Reverts flutter/engine#41279
2023-04-18 01:17:13 +00:00
Jim Graham
d4a56c721b focus SkiaGPUObject wrappers on only those objects that need the protection (flutter/engine#41237)
With this PR we no longer need to hold DisplayLists in GPUObject wrappers and they can be disposed instantly instead of queueing on the Unref thread.

This will definitely be a win for Impeller as none of the objects used in a frame now require queueing, but the performance impact on apps running on top of skia is less clear if they depend on a lot of images inside their DisplayLists that still need to be queued to be freed. After getting further in the work, it looks like only decoded images need to use the protected DlImage wrappers and most of those should survive many frames before they are disposed. That should hopefully leave very few unrefs happening per frame.

~There are 3 unit tests in `shell_unittests.cc` and `embedder_metal_unittests.mm` that are now GSKIP'd as they now invoke code that needs a fully initialized UIDartState in order to protect their images. I will look into fixing the tests and/or making the code they invoke provide protection without relying on UIDartState.~ (This looks to be fixed in the latest commit by simply not creating DlImageGPUs all over the source base and simply catching only those that end up in UI data structures. There is actually existing code in one of the modules that feeds ui.Image with an answer to wrap the image in a DlImageGPU if it has a skia image anyway, so most of these additional uses of DlImageGPU that were having trouble getting the Skia unref queue just didn't need it anyway.)
2023-04-17 23:47:20 +00:00
Zachary Anderson
1cdb28e0d8 Roll impeller-cmake-example to 58042bb24833a3cbd615ad082b1d17daef42d097 (flutter/engine#41280) 2023-04-17 15:46:19 -07:00
Jackson Gardner
c2719b8e06 Reland ui_web files in sky_engine (flutter/engine#41169)
Previous attempt was here: https://github.com/flutter/engine/pull/40846

I was including un-rewritten source files, which caused breakage. Now we run out `ui_web` files through the sdk_rewriter script before putting them into sky_engine
2023-04-17 22:31:25 +00:00
Jenn Magder
c373874de9 Remove 'Mac mac_unopt' in favor of Linux (flutter/engine#41226)
`Linux mac_unopt`: https://ci.chromium.org/p/flutter/builders/try/Linux%20mac_unopt/4
Remove `bringup` and remove `Mac mac_unopt` in favor of the Linux orchestrator https://github.com/flutter/engine/pull/41184

Add the `xcode` version to the mac_unopt json file since it's no longer being inherited from `Mac mac_unopt`.

Fixes https://github.com/flutter/flutter/issues/124912
2023-04-17 22:09:19 +00:00
Chinmay Garde
ea8977d178 [Impeller] Add debug ToString methods to render targets. (flutter/engine#41221)
Also fixes and issue where SPrintF would only consider strings 64 bytes or smaller.
2023-04-17 21:57:18 +00:00
godofredoc
b8b3e21214 Reland "Migrate mac_host_engine to engine v2 builds." (flutter/engine#41279)
Reverts flutter/engine#41233

The issue this PR was reverted was not replicable. On top of that we added extra precautions to ensure global generators are using left over binaries from out folder. https://flutter-review.googlesource.com/c/recipes/+/41960
2023-04-17 21:47:49 +00:00
hellohuanlin
0f7f868bb5 [rotation_distortion] Use "delayed swap" solution to reduce rotation distortion (flutter/engine#40730)
The "size interpolation" solution didn't go well (more context [here](https://github.com/flutter/engine/pull/40412#issuecomment-1485938933)). Then a new solution came to my mind, and I call it **"delayed swap"**:

In the originally behavior, we swap the width/height immediately before the rotation, resulting in roughly ~4x distortion in the beginning. With "delayed swap" solution, we **swap the width/height right in the middle of the rotation** (i.e. delay the swap for half of the transition duration).

This new "delayed swap" solution gives us the same benefit as the "snapshot" solution: 
- reducing ~4x distortion to ~2x
- most distorted frames occur in the middle of rotation when it's moving the fastest, making it hard to notice

And it fixes the drawback of "snapshot" solution: 
- it works well with dynamic content like animation or video
- it doesn't have a ~0.5 second penalty when taking the snapshot

Looks pretty good on flutter gallery: 

https://user-images.githubusercontent.com/41930132/228383137-7cd09982-89a9-4c83-bf55-9431de708278.mp4

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

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

*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-04-17 21:41:51 +00:00
Akash Khunt
b2eb213ef6 null check added to avoid NPE while calling FlutterView.detachFromFlutterEngine() (flutter/engine#41082)
Issue fixed by this PR: https://github.com/flutter/flutter/issues/110138

This PR fixes an issue which is causing app crash when User tries to navigate to a new instance **FlutterFragment** (whose old instance is already present in the fragment backstack) in an Activity (which was restored to saved state after being killed in background due to memory pressure).

Detailed case to reproduce the crash and identify its' root cause:

Setup: Let's say we've an Activity1 which has a bottom nav bar with 3 tabs. Each of this 3 tabs are **FlutterFragment** i.e. Fragment1, Fragment2 & Fragment3 and all of them are using separate **FlutterEngine** but all of them will be cached. e.g. Multiple instances of **Fragment1** will be going to use same cached **FlutterEngine1**.
1. When User opens the app, Fragment1 gets added to fragment backstack
2. Then User navigates to Fragment2 (gets added to backstack as well)
3. Then User navigates to Fragment3 (gets added to backstack as well)
4. Then User puts the app in background. Due to memory pressure OS/platform kills the Activity1 and all 3 FlutterFragments while the app is in background.
5. Then after sometime User tries to bring the app to foreground from the app stack. Since Activity1 was killed by the OS/platform the app process will try to restore the Activity1 in the same state it was before it got killed. This leads to all 3 fragments present in backstack to get instantiated and then the **onAttach()** gets called for all 3, but only Fragment3 gets **onCreateView()** lifecycle event as it was the top most visible Fragment before the FragmentManager saved the state and app went into background. All 3 FlutterFragment goes through following function calls.

FlutterFragment.onAttach() -> FlutterActivityAndFragmentDelegate.onAttach(). There is a one-to-one mapping between **FlutterFragment <-> FlutterActivityAndFragmentDelegate**
<img width="977" alt="1" src="https://user-images.githubusercontent.com/8373036/231222642-1596c77c-d127-476b-9bce-8ad2e9cd3639.png">
FlutterActivityAndFragmentDelegate.onAttach() -> FlutterEngineConnectionRegistry.attachToActivity(). There is a one-to-one mapping between **FlutterEngine <-> FlutterEngineConnectionRegistry**. _**NOTE**: THIS IS VERY IMPORTANT POINT TO KEEP IN MIND TO UNDERSTAND THE ROOT CAAUSE OF THIS CRASH._
<img width="962" alt="2" src="https://user-images.githubusercontent.com/8373036/231222672-016ee708-c310-49c8-8016-070b6057af7b.png">
Since all the 3 **FlutterFragment** were just instantiated on activity restore **exclusiveActivity** will be null and exclusiveActivity will be assigned the host **FlutterActivityAndFragmentDelegate**.
<img width="880" alt="3" src="https://user-images.githubusercontent.com/8373036/231241491-c47f5aa6-96e9-4c1f-b92e-7cfed67381e2.png">
6. Then FlutterFragment.onCreateView() will be called only for Fragment3 and it will be visible without an issue as its' state gets restored properly.
7. Then if User tries to navigate to Fragment2 via instantiating new instance of it (this means that now there will be two instances of Fragment2 in the backstack), then there will be crash as it'll go through following function calls.

FlutterFragment.onAttach() -> FlutterActivityAndFragmentDelegate.onAttach().
<img width="977" alt="1" src="https://user-images.githubusercontent.com/8373036/231222642-1596c77c-d127-476b-9bce-8ad2e9cd3639.png">
FlutterActivityAndFragmentDelegate.onAttach() -> FlutterEngineConnectionRegistry.attachToActivity().
<img width="962" alt="2" src="https://user-images.githubusercontent.com/8373036/231222672-016ee708-c310-49c8-8016-070b6057af7b.png">
THIS IS WHERE THE CRASH STARTS. Since this is the second instance of Fragment2 and both instances are going to use the same cached **FlutterEngine** and hence same **FlutterEngineConnectionRegistry**, this time around **exclusiveActivity** will be non-null as it was assigned during step 5. And since exclusiveActivity will be be non null it'll try to detach from the old **ExclusiveAppComponent** via calling **exclusiveActivity.detachFromFlutterEngine()**.
<img width="878" alt="7" src="https://user-images.githubusercontent.com/8373036/231241550-09908108-1747-4ec3-bc70-145446b86eae.png">
FlutterActivityAndFragmentDelegate.detachFromFlutterEngine() -> FlutterFragment.detachFromFlutterEngine()
<img width="905" alt="4" src="https://user-images.githubusercontent.com/8373036/231222702-5ee739f2-fd71-4e20-807d-e3786e6f27fc.png">
FlutterFragment.detachFromFlutterEngine() -> FlutterActivityAndFragmentDelegate.onDestroyView(). This ideally should not be called if the hosts'  **FlutterFragments.onCreateView()** was not called in the first place. Also since the previous author has added **// Redundant calls are ok.** comment, I'm guessing that this is just a fallback cleanup.
<img width="902" alt="5" src="https://user-images.githubusercontent.com/8373036/231222719-2ea28157-bd62-45fe-89ef-dd41ee7b3cca.png">
THIS IS WHERE THE CRASH HAPPENS. FlutterActivityAndFragmentDelegate.onDestroyView() -> FlutterView.detachFromFlutterEngine(). Since the lifecycle of older instance of this FlutterFragment2 was capped at onAttach(), it's **FlutterView** property will be null and calling FlutterView.detachFromFlutterEngine() will throw NPE.
<img width="902" alt="6" src="https://user-images.githubusercontent.com/8373036/231222735-55b63911-6a2d-4967-8043-298f4d413f2a.png">

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-17 21:21:56 +00:00
fzyzcjy
6b6f725d6d [Impeller] Make DoMakeRasterSnapshot output timeline event. (flutter/engine#41197)
In Skia, there is such a timeline event in `SnapshotControllerSkia::DoMakeRasterSnapshot`. Therefore, since Impeller wants to mimic Skia and this event does take a long time sometimes, it seems reasonable to add this.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-17 20:44:19 +00:00
Brandon DeRosier
930283bd83 [Impeller] Remove ContentContextOptions declarations from AnonymousContents (flutter/engine#41256)
This is just a copy paste error...
2023-04-17 12:57:31 -07:00
skia-flutter-autoroll
a1e288d0cc Roll Dart SDK from 786a70d8ef6b to a335e6724332 (1 revision) (flutter/engine#41278)
https://dart.googlesource.com/sdk.git/+log/786a70d8ef6b..a335e6724332

2023-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.1.0-12.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 aam@google.com,dart-vm-team@google.com,jacksongardner@google.com,rmistry@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-04-17 19:06:37 +00:00
skia-flutter-autoroll
e7fe756e1b Roll Fuchsia Linux SDK from atix5Ek_OOxH-uoPA... to Cy5LG4U2InaFLkJGz... (flutter/engine#41275)
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 jacksongardner@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-04-17 18:07:01 +00:00
gaaclarke
2793115788 Adds AndroidSurfaceGLImpeller unit tests (flutter/engine#40979)
followup to https://github.com/flutter/engine/pull/40944
issue https://github.com/flutter/flutter/issues/105323

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-04-17 17:49:05 +00:00
Yegor
2fcdf5a731 [web:canvaskit] migrate Paint API to UniqueRef (flutter/engine#41230)
Migrate Paint API to `UniqueRef`. This includes `Paint`, `ImageFilter` (and all subtypes), `ColorFilter` (and all subtypes).

Also fix the following memory leaks:

* `CkPaint` is frequently used by layers where a one-off paint object is created, used, and immediately dropped. `CkPaint` now has a `dispose` method, and all one-off usages now dispose of the paint after they are done.
* `CkColorFilter.initRawImageFilter` was leaking the `SkColorFilter` created by `_initRawColorFilter` inside the expression.
* `CkManagedSkImageFilterConvertible.imageFilter` now takes a closure, which allows the implementation decide on the lifetime of the `SkImageFilter` vended to the caller. Because `CkColorFilter` is a const class it cannot store C++ instances inside its own fields, so it creates a temporary `SkImageFilter` class to be used by the caller and then it needs to delete it. Now it does.
2023-04-17 17:30:19 +00:00
Kevin Lubick
108eb0fa89 Migrate uses of deprecated SkImage->encodeToData (flutter/engine#41204)
In https://skia-review.googlesource.com/c/skia/+/667296, Skia deprecated
`SkImage->encodeToData`.

This PR fixes all uses in Flutter of that API by using SkPngEncoder
directly.

## 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].
- [ ] 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.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] 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-04-17 10:03:40 -07:00
skia-flutter-autoroll
d4704039e7 Roll Skia from 962800967591 to d9e216e62223 (1 revision) (flutter/engine#41270)
https://skia.googlesource.com/skia.git/+log/962800967591..d9e216e62223

2023-04-17 kjlubick@google.com Add debug Test.+Graphite_Dawn jobs

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,jacksongardner@google.com,jmbetancourt@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-04-17 14:59:24 +00:00