26559 Commits

Author SHA1 Message Date
Jonah Williams
f414c684e0 [Impeller] Ignore warnign about shader stages not consuming outputs. (flutter/engine#51822)
Otherwise it really complicates runtime_effect, as we'd need two vertex shaders.

Fixes https://github.com/flutter/flutter/issues/145860
2024-04-01 21:22:05 +00:00
Jackson Gardner
adfd52167c [Skwasm] Forward text height from paragraph height to default text style (flutter/engine#51819)
We need to apply the paragraph style's height to the initial default text style on the stack. I also added a `toString` method for `StrutStyle` so that things are a bit easier to debug.
2024-04-01 21:20:28 +00:00
Matan Lurey
9f1dd63dac Remove log statements that did not help. (flutter/engine#51825)
Introduced in https://github.com/flutter/engine/pull/51789, but none of the crashes/hangs on CI seem related to these events, so removing.
2024-04-01 21:19:53 +00:00
skia-flutter-autoroll
210666d858 Roll Skia from 40c436a785fa to 0b0ed6ca101b (6 revisions) (flutter/engine#51823)
https://skia.googlesource.com/skia.git/+log/40c436a785fa..0b0ed6ca101b

2024-04-01 egdaniel@google.com Revert "Add compressed texture support to graphite."
2024-04-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 778a83fe011e to 319732cc90e4 (1 revision)
2024-04-01 jamesgk@google.com [graphite] Fix off-by-one error in render step limit check
2024-04-01 kjlubick@google.com Remove Metal #ifdefs from GrBackendSurface
2024-04-01 johnstiles@google.com Remove divmod optimization trick for GCC + ARM32.
2024-04-01 kjlubick@google.com Fix defines for icu_subset

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,kjlubick@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 20:26:59 +00:00
Jason Simmons
1bfca0c056 [Impeller] Add a TextureGLES API for wrapping a framebuffer and use it to implement OpenGL FBO targets in the embedder library (flutter/engine#51269)
The Linux embedder is rendering to a FlutterOpenGLFramebuffer that specifies an OpenGL FBO.  This API allows the embedder to create a color attachment that wraps the FBO so that the render pass will bind to that FBO during encoding.
2024-04-01 20:19:14 +00:00
Matan Lurey
a16ee1a7ac Remove testing/android_background_image which does not run/exist on CI. (flutter/engine#51815)
I am guessing this just either served it's purpose (https://github.com/flutter/flutter/issues/26654, https://github.com/flutter/flutter/issues/26728) or didn't and was never followed up. I can't find any examples of it running on CI - I suspect if we want a test like this, we're better off just adding it to `scenario_app` versus creating more 1-off Android integration test environments.
2024-04-01 18:59:50 +00:00
Chinmay Garde
97dbb54cc8 [Impeller] Avoid loading redundant Vulkan extensions. (flutter/engine#51818)
All dependencies of VK_ANDROID_external_memory_android_hardware_buffer were enabled earlier. But I didn't realize that those extensions became core in Vulkan 1.1. There is no need to load them unnecessarily. It just makes the extensions requirements look more complicated than they are.

Just deletes code. No change in functionality.
2024-04-01 18:59:48 +00:00
skia-flutter-autoroll
6b0dca4000 Roll Skia from dacd62255b8d to 40c436a785fa (3 revisions) (flutter/engine#51817)
https://skia.googlesource.com/skia.git/+log/dacd62255b8d..40c436a785fa

2024-04-01 egdaniel@google.com Add compressed texture support to graphite.
2024-04-01 bungeman@google.com [paragraph] Use ICU4X for ICU4X test
2024-04-01 johnstiles@google.com Fix potential overflow in SkISize::area.

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,kjlubick@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 18:17:48 +00:00
Matan Lurey
6969c285f3 Remove unused and untested timeline data branch for scenario_app (flutter/engine#51816)
All of this appears to be completely unused and untested, and I don't see value in fixing it.
2024-04-01 18:06:52 +00:00
Jason Simmons
e6b41a1754 Use the stripped Vulkan validation library in Android engine builds by default (flutter/engine#51628)
The unstripped build will be used if GN is configured with the --no-stripped flag
2024-04-01 17:48:50 +00:00
Jason Simmons
18cfd29d00 [Impeller] Set RGBA8888 as the default Vulkan color format before the app acquires a surface (flutter/engine#51770)
An app may render offscreen images before it gets a window. The ContextVK needs to have a default color format so that render passes can be created before the ContextVK is updated to use the window's format.
2024-04-01 17:33:05 +00:00
Matan Lurey
1fd40fb2e4 Never panic in finally { ... }, check output logs on success only. (flutter/engine#51814)
Work towards https://github.com/flutter/flutter/issues/145988.

Should be a NO-OP in behavior, but hopefully make some of the false negatives less confusing (i.e. getting "missing X outputted files when the test is about to fail anyway".
2024-04-01 17:33:02 +00:00
skia-flutter-autoroll
26eea799a1 Roll Skia from da4cd3390be9 to dacd62255b8d (1 revision) (flutter/engine#51813)
https://skia.googlesource.com/skia.git/+log/da4cd3390be9..dacd62255b8d

2024-04-01 bungeman@google.com [fontations] Modernize family name

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,kjlubick@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 17:05:05 +00:00
skia-flutter-autoroll
b7b725aa6d Roll Skia from 3093d7c90fb2 to da4cd3390be9 (1 revision) (flutter/engine#51811)
https://skia.googlesource.com/skia.git/+log/3093d7c90fb2..da4cd3390be9

2024-04-01 robertphillips@google.com [graphite] Add Arithmetic SkBlender to Precompilation system

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,kjlubick@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 14:15:42 +00:00
skia-flutter-autoroll
30c49fc205 Roll Fuchsia Linux SDK from TXxMINUq7JduIRX8K... to 5W6KVvHCGwWHBjm2m... (flutter/engine#51805)
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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 07:04:19 +00:00
skia-flutter-autoroll
5bee981696 Roll Skia from c61843470d89 to b9d078716d40 (1 revision) (flutter/engine#51804)
https://skia.googlesource.com/skia.git/+log/c61843470d89..b9d078716d40

2024-04-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 33ace26e29f4 to df0949e75440 (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 brianosman@google.com,jacksongardner@google.com,kjlubick@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-04-01 06:10:21 +00:00
Zachary Anderson
2512c698ae Prefix non-local build config names with ci/ (flutter/engine#51474)
Part 1 of https://github.com/flutter/flutter/issues/145263

This PR updates the names of builds outside of `local_engine.json` to be
prefixed with the string `ci/` (or `ci\` on Windows). For better or
worse, the "name" field of a build is used to construct a path used as
the source directory of a copy operation (I think the CAS archive
step?). Because of that, changing the name of a build also requires
updating the build output directory of the ninja build.

This PR also adds tests to make sure the naming of these builds remains
consistent.
2024-03-31 12:43:02 -07:00
Matan Lurey
1bf91441fa Finish clangd testing. (flutter/engine#51786)
Closes https://github.com/flutter/flutter/issues/141641, yay we done!

---------

Co-authored-by: Zachary Anderson <zanderso@users.noreply.github.com>
2024-03-31 10:20:44 -07:00
skia-flutter-autoroll
d38575f90f Roll Fuchsia Linux SDK from wrbGDfD0BEOBXEGMK... to TXxMINUq7JduIRX8K... (flutter/engine#51801)
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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-31 05:40:22 +00:00
skia-flutter-autoroll
71d3a545cf Roll Dart SDK from 572de60e008a to b735974580e7 (2 revisions) (flutter/engine#51799)
https://dart.googlesource.com/sdk.git/+log/572de60e008a..b735974580e7

2024-03-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-5.0.dev
2024-03-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-4.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-30 07:00:30 +00:00
skia-flutter-autoroll
b74c15a651 Roll Fuchsia Linux SDK from 3vgfbp1vjXkdMZ09m... to wrbGDfD0BEOBXEGMK... (flutter/engine#51797)
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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-30 04:19:37 +00:00
skia-flutter-autoroll
9813e61ed5 Roll Dart SDK from 52b05146758e to 572de60e008a (1 revision) (flutter/engine#51794)
https://dart.googlesource.com/sdk.git/+log/52b05146758e..572de60e008a

2024-03-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-3.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-30 01:52:51 +00:00
Matan Lurey
12ad79de4f Add more Java and Dart logging to scenario_app (for now) (flutter/engine#51789)
Work towards https://github.com/flutter/flutter/issues/145988.

... as well as handle `sigTerm` (perhaps would help us actually write out logs? we'll see)
2024-03-30 01:14:23 +00:00
skia-flutter-autoroll
c5a4757193 Roll Skia from df005a80da32 to 7338f5521e05 (11 revisions) (flutter/engine#51791)
https://skia.googlesource.com/skia.git/+log/df005a80da32..7338f5521e05

2024-03-29 jvanverth@google.com [graphite] Implement missing YUV features.
2024-03-29 lovisolo@google.com [bazel] Rename //tools/sk_app:sk_app to //tools/sk_app:legacy_sk_app.
2024-03-29 lovisolo@google.com [bazel] Add //example:hello_world_gl target.
2024-03-29 egdaniel@google.com [graphite] Add query for compression type on TextureInfo.
2024-03-29 robertphillips@google.com Revert "[graphite] Use X-macro to get better UniqueKey printouts"
2024-03-29 robertphillips@google.com [graphite] Use X-macro to get better UniqueKey printouts
2024-03-29 bungeman@google.com [icc] Use namespace, remove static
2024-03-29 robertphillips@google.com [graphite] Move some ColorFilter factory functions to a private namespace
2024-03-29 egdaniel@google.com Update Viewer to allow Graphite pixel zoom to read pixels.
2024-03-29 bungeman@google.com [paragraph] Clean up ResourceFontCollection debugfs
2024-03-29 ccameron@chromium.org SkICC: Update tone mapping

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,jamesgk@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-29 23:43:16 +00:00
Loïc Sharma
5bdd57664e [Windows] Fix EGL surface destruction race (flutter/engine#51781)
This fixes the `WindowsTest.EngineCanTransitionToHeadless` flakiness reported by @matanlurey.

EGL surfaces can only be used by a single thread at a time. Concurrent operations are unsafe.

Previously, the EGL surface was destroyed on the platform thread. This was safe as this always happened after the engine was shutdown and the raster thread was stopped. However, in a multi-view world a view can be destroyed while the engine is running. There may be pending raster tasks that operate on the render surface. Thus, the EGL surfaces should be destroyed on the raster thread when it is available.

This bug was introduced by https://github.com/flutter/engine/pull/51681
Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 21:58:14 +00:00
gaaclarke
5f0ab8318f [Impeller] removed old blur detritus (flutter/engine#51779)
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 21:47:48 +00:00
Matan Lurey
61573f8d69 Implement Paint.from(other) for dart:ui. (flutter/engine#51110)
(Tenatively) Closes https://github.com/flutter/flutter/issues/142871.

I personally think this is a reasonable request, and we (framework authors) can make some users happy in a fairly simple way (https://github.com/flutter/flutter/issues/142871, https://github.com/flutter/flutter/issues/40497).

Some questions:

1. Is the web implementation good enough or would we want to "ship" with an optimized impl?
2. Can folks imagine other edge cases to test beyond correctness and deep/immutable copies?
2024-03-29 21:46:05 +00:00
skia-flutter-autoroll
a8dfac1f46 Roll Dart SDK from bb65648e20e2 to 52b05146758e (3 revisions) (flutter/engine#51783)
https://dart.googlesource.com/sdk.git/+log/bb65648e20e2..52b05146758e

2024-03-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-2.0.dev
2024-03-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-1.0.dev
2024-03-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.5.0-0.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-29 21:43:20 +00:00
Matan Lurey
248c7fa6c4 Rename Mac clangd to Linux mac_clangd (flutter/engine#51785)
Further work towards https://github.com/flutter/flutter/issues/141641.
2024-03-29 14:19:21 -07:00
Matan Lurey
d8482e6c45 Fix the clangd builders, and make Linux non-bringup. (flutter/engine#51765)
Further work towards https://github.com/flutter/flutter/issues/141641.

I could imagine making things `presubmit: false` if we think it's not
worth the presubmit capacity.

Removed `:copy_dart_sdk` which seems (a) not to work and (b) not needed
to use the pre-builts.
2024-03-29 13:28:53 -07:00
Jenn Magder
be4448448d Remove _dartobservatory._tcp legacy DNS registration type (flutter/engine#51635)
As of https://github.com/flutter/flutter/pull/121606 the flutter tool no longer registers for the legacy `_dartobservatory._tcp` DNS type.  Remove the fallback and just register for the preferred  `_dartVmService._tcp`.

See also https://github.com/dart-lang/sdk/issues/50233
2024-03-29 20:20:05 +00:00
Matan Lurey
e1a5c99a2a Remove the tests for rotate and crop from the Android scenario_app. (flutter/engine#51769)
Closes https://github.com/flutter/flutter/issues/145957.

As @jonahwilliams and @johnmccutchan and I discussed (https://github.com/flutter/flutter/issues/144407), the functionality that was being tested was actually _Android's_ ability to rotate and crop `SurfaceTexture`-backed textures. This same functionality doesn't even exist in the `ImageReader`-based textures (read: modern Android devices):

> Due to an oversight by Android, ImageReader backed surfaces do not respect metadata applied to the surface (rotation & crop). Rotation information is not available at all and crop information is corrupted by the ImageReader (only the width/height is propagated the origin offset is not).

We might decide to re-add this functionality in the Dart `Texture` widget, but given we'll be migrating our plugins to `SurfaceProducer` (again, read: using `ImageTexture` for most Android phones), it's pointless to test this (and isn't even testing Flutter's code).

This reduces our test suite significantly (8 tests down to 2), which should also help with runtime and flakiness.

/cc @zanderso who I'm sure will be stoked.
2024-03-29 20:10:09 +00:00
gaaclarke
c55bcae0f1 [Impeller] split out aiks blend tests (flutter/engine#51780)
## 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 the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-03-29 13:00:40 -07:00
Tong Mu
b4580a4a88 [macOS] Move to new present callback (flutter/engine#51436)
Migrates the macOS embedder to the new present callback which includes a `view_id` value.

Not much can be tested, since this doesn't change any features, nor add any features without the ability to add a view. But I added a test to verify that rendering to an unknown view is a graceful no-op.

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

Part of https://github.com/flutter/flutter/issues/144810
Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 20:00:05 +00:00
LongCatIsLooong
cddc8f5910 Turn struct half leading in canvaskit kitchensink test back on (flutter/engine#50707)
Undo https://github.com/flutter/engine/pull/50617

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 18:50:35 +00:00
Matan Lurey
42daa3bb56 Add a minimal example of using package:test. (flutter/engine#51726)
Work towards https://github.com/flutter/flutter/issues/133569.

This PR is a proof of concept that shows we're able to use `package:test` in `flutter/engine` instead of `package:litetest`.

I think it also shows that, if we're going to continue to vend dependencies this way, we might want to re-think our strategy in terms of using `pub` as a management tool - it's quite unwieldy already. For example, here is every `pubspec.yaml` file in the repo:

```sh
$ find . -name 'pubspec.yaml' -exec sh -c 'echo "$0 $(wc -l < "$0")"' {} \;

# Some files omitted in third_party or similar.
./impeller/tessellator/dart/pubspec.yaml       11
./tools/const_finder/pubspec.yaml       35
./tools/api_check/pubspec.yaml       90
./tools/build_bucket_golden_scraper/pubspec.yaml       47
./tools/licenses/pubspec.yaml       53
./tools/path_ops/dart/pubspec.yaml       26
./tools/engine_tool/pubspec.yaml       76
./tools/dir_contents_diff/pubspec.yaml       19
./tools/compare_goldens/pubspec.yaml        3
./tools/golden_tests_harvester/pubspec.yaml       55
./tools/gen_web_locale_keymap/pubspec.yaml       37
./tools/githooks/pubspec.yaml       63
./tools/android_lint/pubspec.yaml       35
./tools/clang_tidy/pubspec.yaml       76
./tools/pkg/engine_repo_tools/pubspec.yaml       41
./tools/pkg/process_fakes/pubspec.yaml       36
./tools/pkg/engine_build_configs/pubspec.yaml       73
./tools/pkg/git_repo_tools/pubspec.yaml       60
./tools/header_guard_check/pubspec.yaml       70
./sky/packages/sky_engine/pubspec.yaml        8
./shell/vmservice/pubspec.yaml        8
./ci/pubspec.yaml       57
./testing/benchmark/pubspec.yaml       77
./testing/skia_gold_client/pubspec.yaml       66
./testing/pkg_test_demo/pubspec.yaml      116
./testing/smoke_test_failure/pubspec.yaml       31
./testing/dart/pubspec.yaml       71
./testing/android_background_image/pubspec.yaml       22
./testing/litetest/pubspec.yaml       33
./testing/symbols/pubspec.yaml       24
./testing/scenario_app/pubspec.yaml       67
./web_sdk/web_engine_tester/pubspec.yaml       14
./web_sdk/web_test_utils/pubspec.yaml       22
./web_sdk/pubspec.yaml       60
./lib/snapshot/pubspec.yaml        8
./lib/gpu/pubspec.yaml       14
./lib/web_ui/pubspec.yaml       60
./flutter_frontend_server/pubspec.yaml       39
```

I'll file a follow-up issue to discuss pub-package management in the engine.
2024-03-29 18:44:04 +00:00
Matan Lurey
55c4543094 Implement .engine-release.version files for engine Skia Gold tests (flutter/engine#51739)
Work towards https://github.com/flutter/flutter/issues/144835.

Doc (_sorry, internal only_): [go/flutter-engine-goldens-workflow](http://goto.google.com/flutter-engine-goldens-workflow).

This implements the majority of the proposed workflow, that is, optionally having a plain-text version at the root of the directory, and using it to apply a unique suffix we can review in release branches. As it stands, this is a NO-OP outside of tests (it will have no impact, and can be ignored).

What's missing before using this feature in release branches:

- Optimization work with the infra team (not sure if blocking or not):
  https://github.com/flutter/flutter/issues/145842
- A dry-run of this with the release team to make sure it works as intended

@gaaclarke As implemented, I _think_ we don't need anything special for [`dir_contents_diff`](286169bb52/tools/dir_contents_diff), but maybe I'm wrong - I think only the _test_ names are being changed, not the names on disk.

/cc @zanderso as well.
2024-03-29 17:36:08 +00:00
Mouad Debbar
01ea911472 [web] Use viewId for text editing (flutter/engine#51099)
Handle `viewId` for text fields.

Part of https://github.com/flutter/flutter/issues/137344
2024-03-29 16:50:01 +00:00
Jonah Williams
2b1bbfe870 [Impeller] generate mip level N from N-1 in Vulkan backend. (flutter/engine#51749)
Uses the mipmap implementation from https://vulkan-tutorial.com/Generating_Mipmaps .

Today we generate all mip levels from mip level 0, which results in lost data. Instead we need to use the previous mip level
2024-03-29 16:11:42 +00:00
skia-flutter-autoroll
1cb98980dc Roll Skia from 94c0af1297ae to a12e40efacea (3 revisions) (flutter/engine#51776)
https://skia.googlesource.com/skia.git/+log/94c0af1297ae..a12e40efacea

2024-03-29 double1kai@gmail.com fix indentation in SkBlitMask_opts.h
2024-03-29 kjlubick@google.com Remove deprecated hasMipMaps from GrBackendSurface
2024-03-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 33ace26e29f4 to dc19502e745f

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,jamesgk@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-29 14:48:14 +00:00
skia-flutter-autoroll
60c49a50c4 Roll Skia from 6042ad386bcf to b2a01ae03cdf (4 revisions) (flutter/engine#51772)
https://skia.googlesource.com/skia.git/+log/6042ad386bcf..b2a01ae03cdf

2024-03-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from d9a2f3150285 to 33ace26e29f4 (9 revisions)
2024-03-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 8220ee868483 to 2126889e45aa (11 revisions)
2024-03-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from f0178b3c40e7 to ff61926fcedb (2 revisions)
2024-03-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 61c7aa9a8478 to f91c2fe47c47 (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 brianosman@google.com,jacksongardner@google.com,jamesgk@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-29 06:28:19 +00:00
skia-flutter-autoroll
f9ff74ce1f Roll Fuchsia Linux SDK from uzI3wnbEGlZ_dtO0Z... to 3vgfbp1vjXkdMZ09m... (flutter/engine#51767)
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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2024-03-29 03:01:21 +00:00
Jackson Gardner
b27ae53b79 [skwasm] Fix toString methods on Paint and ImageFilter/ColorFilter (flutter/engine#51766)
This fixes https://github.com/flutter/flutter/issues/141639

Most of this was previously unimplemented. It turns out the reason for the hang described in the github issue was that there was a typo in the name of the `getMiterLimit` C function, so if the client actually called that method the Wasm module failed to compile, as it couldn't find an import with the misspelled name.
2024-03-29 02:06:18 +00:00
John McCutchan
e5289fdce1 Reland https://github.com/flutter/engine/pull/51391 (flutter/engine#51764) 2024-03-29 01:45:16 +00:00
Loïc Sharma
a01206ad39 Add completion callback to Shell::AddView (flutter/engine#51659)
In the future, `FlutterEngineAddView` will be added to the embedder API to allow embedders to add views. `FlutterEngineAddView` will accept a callback that notifies the embedder once the view has been added.

This embedder API will be powered by `Shell::AddView`. This change adds a completion callback to `Shell::AddView` to prepare for the embedder API.

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

Part of https://github.com/flutter/flutter/issues/144806
Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 00:39:10 +00:00
Loïc Sharma
ab5a29979c [Windows] Move keyboard initialization (flutter/engine#51758)
Previously the keyboard was initialized after the view is created. This used to be necessary as the keyboard & text input plugins were strongly tied to a view (and would crash in headless modes). This is no longer necessary, and the keyboard can now be initialized normally as part of the engine initialization.

Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 00:14:12 +00:00
Loïc Sharma
675df6539b [Windows] Don't always stop engine on view destruction (flutter/engine#51681)
Currently destroying a view also shuts down the engine. This makes sense as in single-view world where the view also always owns the engine. However, in a multi-view world the views will share the engine. Destroying one view shouldn't necessarily shut down the engine unless that view owns the engine.

Part of https://github.com/flutter/flutter/issues/142845

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-29 00:14:10 +00:00
Tong Mu
115ff71db2 [macOS] Group per-view information in FlutterCompositor into a class (flutter/engine#51738)
This PR groups per-view information in `FlutterCompositor` into a private class, `ViewPresenter`. This makes it easier to manage per-view data and write view operations.

Part of https://github.com/flutter/flutter/issues/145874.

Currently, view presenters are never removed once created, since the macOS runner doesn't support removing views. This will be added in the future.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-28 23:57:21 +00:00
Jonah Williams
f4b9b15cf7 [Impeller] dont clamp mipmap level to 0 with Vulkan textures. (flutter/engine#51761)
Mipmaps are not working at all right now with Vulkan. Opening without fix so we see goldens changing.
2024-03-28 23:32:57 +00:00
John McCutchan
7245fef9ad Add et query tests and et test commands (flutter/engine#51605)
- `et query tests` enumerates all test binaries encoded in BUILD.gn
files.
- `et test` builds, then, runs a set of tests in parallel
- Tests
2024-03-28 16:11:24 -07:00