29484 Commits

Author SHA1 Message Date
skia-flutter-autoroll
de48b04e35 Roll Dart SDK from b36e4d731d67 to c1106f7e4cde (12 revisions) (flutter/engine#56742)
https://dart.googlesource.com/sdk.git/+log/b36e4d731d67..c1106f7e4cde

2024-11-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-177.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-176.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-175.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-174.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-173.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-172.0.dev
2024-11-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-171.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-170.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-169.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-168.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-167.0.dev
2024-11-20 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-166.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://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-11-22 02:52:08 +00:00
Chinmay Garde
13e15ab91b [Impeller] libImpeller: A C++ wrapper to the Impeller API. (flutter/engine#56682)
_`impeller.hpp` is to `impeller.h` what `vulkan.hpp` is to `vulkan.h`_

* A single header C++ 17 library that only depends on impeller.h and standard libc++ utilities.
* The C++ library proc. table is setup at runtime (via dlsym and related methods). Impeller users don't need to link against libimpeller.so as long as they can discover it at runtime.
* RAII wrappers for all opaque objects.
* Namespaces are configurable depending on target.
* Included in the distributed SDK next to impeller.h.
2024-11-22 00:56:32 +00:00
Chinmay Garde
daa09b9a64 [Impeller] Run simulator tests with Impeller enabled. (flutter/engine#56740)
The Info.plist override was missed earlier.

The main changes to the tests are due to the UI thread merge with the platform thread. The amendment to the "spawn" API are due to the fact that the assertions checked for the presence of GrDirectContext which will never exist with Impeller.

Unblocks https://github.com/flutter/engine/pull/56706
2024-11-21 23:48:59 +00:00
auto-submit[bot]
8958ff46da Reverts "[Impeller] support GLES 3.0 MSAA without extension. (#56705)" (flutter/engine#56741)
Reverts: flutter/engine#56705
Initiated by: jonahwilliams
Reason for reverting: goldens occassionally fail to render anything.
Original PR Author: jonahwilliams

Reviewed By: {gaaclarke}

This change reverts the following previous change:
Adds multisampling support for GLES devices without GL_EXT_multisampled_render_to_texture provided they are at least GLES 3.0 to support mutlisampled render buffers.

Fixes https://github.com/flutter/flutter/issues/158360
Fixes https://github.com/flutter/flutter/issues/157951

TBD: should we prefer renderbuffer 3.0 approach over multisample_render_to_texture?
2024-11-21 23:18:48 +00:00
skia-flutter-autoroll
0e426efd96 Roll Dart SDK from dde57dc75c15 to b36e4d731d67 (1 revision) (flutter/engine#56723)
https://dart.googlesource.com/sdk.git/+log/dde57dc75c15..b36e4d731d67

2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-165.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://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-11-21 22:30:33 +00:00
Daco Harkes
09e3b52bdf [native assets] Consume NativeAssetsManifest.json (flutter/engine#56727)
This PR introduces a `NativeAssetsManifest.json` next to the `AssetManifest.json` and `FontManifest.json`. This removes the need for embedding the native assets mapping inside the kernel file and will enable decoupling native assets building and bundling from the kernel compilation in flutter tools. This will then allow us to remove dry-run from the build hook protocol.

(It also means all isolate groups will have the same native assets. However, since Flutter does not support `Isolate.spawnUri` from kernel files anyways, this is not a regression.)

This manifest is parsed eagerly on startup by the engine in a manner similar to how the font manifest is parsed. The manifest contents need to be available in the callback for resolving assets, which does not have access to the engine. Therefore the parsed manifest is `NativeAssetsManager` stored in the `IsolateGroupData`. The engine passes it in on isolate group creation, and the FFI callbacks access it from the isolate group data.

Issue:

* https://github.com/flutter/flutter/issues/154425

Related PRs:

* https://dart-review.googlesource.com/c/sdk/+/388161

Follow up work:

* This PR does not yet remove the engine callbacks registered via the dart_api that rely on kernel embedding. If we were to do that in this PR, it would require a manual roll of the engine into flutter/flutter with the PR that switches flutter_tools to emit the native assets manifest instead of embedding in kernel, and a manual roll into g3 to switch emitting a manifest instead of embedding in kernel. A TODO is left in the code for those callbacks to be removed.

## Testing

Most of this PR cannot be tested in isolation. The code in this PR is heavily exercised in the follow up flutter_tools PR which creates the `NativeAssetsManifest.json` and removes the embedding of native assets in kernel files.

* This PR adds a unit test for parsing the JSON manifest.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-21 18:01:46 +00:00
Jonah Williams
47ba585ccf [Impeller] support GLES 3.0 MSAA without extension. (flutter/engine#56705)
Adds multisampling support for GLES devices without GL_EXT_multisampled_render_to_texture provided they are at least GLES 3.0 to support mutlisampled render buffers.

Fixes https://github.com/flutter/flutter/issues/158360
Fixes https://github.com/flutter/flutter/issues/157951

TBD: should we prefer renderbuffer 3.0 approach over multisample_render_to_texture?
2024-11-21 18:01:44 +00:00
gaaclarke
60378be0f6 Updated some impeller benchmark urls (flutter/engine#56721)
The urls that use keys seem to atrophy quickly

## 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 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-11-21 09:39:58 -08:00
skia-flutter-autoroll
eea27fa310 Roll Fuchsia Linux SDK from oq6Ztlu1b1mgdDSPH... to zhFzwYCH-N_wasTnM... (flutter/engine#56736)
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 aaclarke@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-11-21 15:42:09 +00:00
Mouad Debbar
b56fac41f9 [web] Make sure to include all split fonts (flutter/engine#56733)
The `csslib` parser was not reliably parsing all URLs in the CSS response. I'm switching to using a RegExp to extract all URLs reliably.

Fixes https://github.com/flutter/flutter/issues/159215
2024-11-21 14:35:18 +00:00
Mouad Debbar
3e281cda44 [web] Work around wrong pointerId in coalesced events in iOS Safari 18.2 (flutter/engine#56719)
In iOS 18.2, Safari [added support](https://developer.apple.com/documentation/safari-release-notes/safari-18_2-release-notes#Web-API) for the [`getCoalescedEvents`](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/getCoalescedEvents) API.

That being said, the API seems to be incomplete (or at least doesn't match other browsers' behavior). The coalesced events lack a [`pointerId`](https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId) and [`target`](https://developer.mozilla.org/en-US/docs/Web/API/Event/target) properties.

I'm not sure if this issue will be fixed in the stable release of iOS 18.2, so in the meantime, this PR implements a workaround to avoid this issue.

Fixes https://github.com/flutter/flutter/issues/158299
Fixes https://github.com/flutter/flutter/issues/155987
2024-11-21 14:33:28 +00:00
AthulJoseph
4705535548 [Flutter GPU] Added support to set Scissor. (flutter/engine#56302)
Added support to set scissors. This resolves issue #157199
2024-11-21 05:52:54 +00:00
Juanjo Tugores
69da421d98 Enable view focus (flutter/engine#54966)
Enable view focus

https://github.com/flutter/flutter/issues/153022

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-21 05:49:05 +00:00
Robert Ancell
504bff9b26 Allow GTK style enum naming (flutter/engine#56731)
Remove the linting overrides for enum names and set this in the
clang-format file.
2024-11-21 15:16:43 +13:00
Tong Mu
de98354d8e Fix: Impeller playground's shapes should react to controllers (flutter/engine#56734)
Fixes https://github.com/flutter/flutter/issues/159213

I've went through all `static` in the file and removed the ones that I think are incorrect.

<img width="1136" alt="image" src="https://github.com/user-attachments/assets/29fe63ed-d077-4384-88ec-2f80dcc8c719">

I've experimented with all entity playgrounds to make sure their controllers work, except for `BlendingModeOptions`, which doesn't change whatsoever and I can't figure out.

This PR should not need tests, as it fixes the tests.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-20 21:58:22 +00:00
Jim Graham
e3d616ca84 [DisplayList] migrate DlImageFilter code to Impeller geometry classes (flutter/engine#56720)
The DlImageFilter code uses Skia geometry classes for its internal computations. This PR switches those implementations to use the Impeller geometry classes for consistency and 3rd party header file independence.
2024-11-20 20:47:37 +00:00
Robert Ancell
56686525b2 Split channel messaging out of handlers (flutter/engine#56667)
Split the channel messaging out of the system channels to make them
simpler to understand and refactor.

The new channel classes could be automatically generated in a second
phase, e.g. using Pigeon to reduce code usage.

The new classes don't have tests as they will already be covered by the
existing code.
2024-11-21 09:32:20 +13:00
Jason Simmons
b8e58bbb0b Revert "Added assert for opengles thread safety (#56585)" (flutter/engine#56730)
This reverts commit 11123f1bbf8833d029f0800ca5830085347bcf95.

The implementation of the assert assumes that there is a single raster thread ID that will remain constant throughout the lifetime of the process.  That is not true for scenarios like recreating the engine after suspending and resuming an Android app, or instantiating multiple engines within one process.
2024-11-20 20:26:04 +00:00
Daco Harkes
a599b5e31f [et] Add Android x64 configurations (flutter/engine#56703)
Closes: https://github.com/flutter/flutter/issues/156598
2024-11-20 19:03:25 +00:00
Jonah Williams
c9bb068cfa [Impeller] flush all GLES cmd buffers together. (flutter/engine#56724)
Locally this gives much better performance, about doubling frame time on the Pixel 4. This avoids multiple glbuffersubdata calls that seems to perform particularly bad on mobile devices.

Thinking about it more, I'm not sure that having a separate EncodeCommands API is useful for RenderPass/BlitPass. instead they should probably just use submit. but that is a refactor for another day.

https://github.com/flutter/flutter/issues/159177
2024-11-20 17:41:14 +00:00
skia-flutter-autoroll
957a442547 Roll Fuchsia Linux SDK from dJ0gh-z1KVnSzvfjW... to oq6Ztlu1b1mgdDSPH... (flutter/engine#56728)
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 aaclarke@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-11-20 14:13:37 +00:00
Chris Bracken
1a60defc96 TestMetalContext: Use ARC-managed Metal types (flutter/engine#56717)
Previously, we could not include any Objective-C types in test_metal_context.h, since that file was transitively included in pure C++ translation units. All users have been refactored into backend-specific files, and all Metal-related files are Objective-C++ files.

We now use Metal types directly in the header, without the workarounds.

Issue: https://github.com/flutter/flutter/issues/158998
Issue: https://github.com/flutter/flutter/issues/137801

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 22:50:10 +00:00
skia-flutter-autoroll
e41ee7a54a Roll Dart SDK from b01654fa26c7 to dde57dc75c15 (3 revisions) (flutter/engine#56714)
https://dart.googlesource.com/sdk.git/+log/b01654fa26c7..dde57dc75c15

2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-164.0.dev
2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-163.0.dev
2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-162.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://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-11-19 21:17:01 +00:00
Chris Bracken
ddb5df9483 EmbedderTest: templatise GetEmbedderContext (flutter/engine#56709)
In many embedder tests, we want to get at the appropriate backend-specific `EmbedderTestContext` subclass (`EmbedderTestContextGL`, etc.) in order to make backend-specific setup calls such as `SetGLFBOCallback()` or others. Formerly, this required casting the returned `EmbedderTestContext&` to the appropriate subclass in each test.

This templatises the `GetEmbedderContext()` method to return the appropriate backend-specific subclass directly.

Issue: https://github.com/flutter/flutter/issues/158998

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 20:20:08 +00:00
Chris Bracken
055f3d8edd display_list: Extract backend-specific surface providers (flutter/engine#56711)
Extracts backend-specific code in DlSurfaceProvider to separate translation units. In particular, this allows for less conditional header includes, and more specifically, allows code relating to the Metal backend to include headers that include ARC-managed Objective-C types. Today we cast these all to void* (and manage refcounting manually) since these headers are included in dl_surface_provider.cc, which is a pure C++ translation unit.

No test changes since this patch includes no semantic changes.

Issue: https://github.com/flutter/flutter/issues/137801

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 20:20:05 +00:00
skia-flutter-autoroll
d3434485d9 Roll Skia from 78ef6b7a574f to a694b9e85a49 (5 revisions) (flutter/engine#56713)
https://skia.googlesource.com/skia.git/+log/78ef6b7a574f..a694b9e85a49

2024-11-19 robertphillips@google.com [graphite] Fix up Context's recorder tracking thread safety
2024-11-19 vigneshv@google.com SkCrabbyAvifCodec: Set mediacodec color format
2024-11-19 vigneshv@google.com SkCrabbyAvifCodec: Make a copy of the image before scaling
2024-11-19 jlavrova@google.com Refactoring proxy for FontConfig out of FontMgr
2024-11-19 jvanverth@google.com [ganesh] Fix artifacts from looping colorizer.

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,michaelludwig@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-11-19 20:06:40 +00:00
chunhtai
0a461c4230 Update Engine-Clang-Tidy-Linter.md (flutter/engine#56708)
*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*

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

*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
2024-11-19 19:16:51 +00:00
skia-flutter-autoroll
8630a2ff20 Roll Skia from 0b74a1bb1b55 to 78ef6b7a574f (6 revisions) (flutter/engine#56707)
https://skia.googlesource.com/skia.git/+log/0b74a1bb1b55..78ef6b7a574f

2024-11-19 jvanverth@google.com Remove promotions of gradient eval from half to float.
2024-11-19 briansalomon@gmail.com Ganesh supports getting GPU time spent on a flush
2024-11-19 kjlubick@google.com Remove extra spaces from MeshGradientSlide
2024-11-19 kjlubick@google.com Minor cleanups to SkBitmapDevice
2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 15492c9bc44d to 987cc0de1d4c (13 revisions)
2024-11-19 robertphillips@google.com Revert "add triangulated gradient effect"

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,michaelludwig@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-11-19 17:37:31 +00:00
Chris Bracken
4e8108b3d2 Move renderer config to EmbedderTestContext (flutter/engine#56699)
Moves all backend-specific renderer configuration out of `EmbedderConfigBuilder` and into the backend-specific subclasses of `EmbedderTestContext`. `EmbedderTestContext` is already backend-specific and as of recent patches, also houses compositor configuration, making it the natural home of this code.

As a result, we no longer need backend-specific methods such as `SetSoftwareRendererConfig`, `SetMetalRendererConfig`, `SetOpenGLRendererConfig`, `SetVulkanRendererConfig`. Nor do we need manual backend initialisation in `EmbedderConfigBuilder`. Nor does that initialisation any longer require relying on internal backend-specific code within `EmbedderTestContext`, since we now do that initialisation in the `EmbedderTestContext` constructor.

Since the bulk of the work previously done by this method now occurs in the `EmbedderTestContext` constructor, the only work remaining in these methods is surface creation. Further, since this is all now implemented in backend-specific `EmbedderTestContext` subclasses, they have all been renamed to a single method: `SetSurface`.

Previously, all of these methods took a surface_size parameter, with two exceptions:
* `SetVulkanRendererConfig` also took an optional `FlutterVulkanInstanceProcAddressCallback` parameter. This has been extracted to a separate method `SetVulkanInstanceProcAddressCallback` on `EmbedderTestContextVulkan`.
* `SetSoftwareRendererConfig` defaulted the parameter to a size of (1, 1). For consistency, this is no longer defaulted, and all call sites have been updated, consistent with other backends.

Lastly, one nice benefit is that because the render config is initialised in the `EmbedderTestContext` constructor, there's no longer a requirement to call `Set*RendererConfig` prior modifying any specific properties on the config, nor is it problematic to call the (replacement) `SetSurface` method after modifying the config. Where the renderer config was being customised in embedder unit tests, I've pushed that customisation up to the top of the test where the rest of the test context is configured.

This eliminates nearly all remaining `#ifdef SHELL_ENABLE_$BACKEND` blocks in the EmbedderTest infrastructure.

Issue: https://github.com/flutter/flutter/issues/158998

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 16:33:22 +00:00
skia-flutter-autoroll
e530ea1099 Roll Dart SDK from 05d58364e92f to b01654fa26c7 (1 revision) (flutter/engine#56694)
https://dart.googlesource.com/sdk.git/+log/05d58364e92f..b01654fa26c7

2024-11-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-161.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jimgraham@google.com 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-11-19 16:14:54 +00:00
Chris Bracken
97c9f4a08b EmbedderTest: Eliminate unused include (flutter/engine#56698)
Eliminates an unused ifdef'ed include in embedder_test_backingstore_producer.h and adds it to embedder_test_context_gl.h, where it's needed. The need for this include was eliminated in https://github.com/flutter/engine/pull/56638.

No test changes since the patch introduces no semantic changes.

Issue: https://github.com/flutter/flutter/issues/158998

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 15:20:22 +00:00
skia-flutter-autoroll
f07b24515f Roll Fuchsia Linux SDK from io00npG_eDCYC7bac... to dJ0gh-z1KVnSzvfjW... (flutter/engine#56701)
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 aaclarke@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-11-19 12:49:37 +00:00
skia-flutter-autoroll
e3dd84e51b Roll Skia from 17601e471acf to 8a1a84509501 (4 revisions) (flutter/engine#56700)
https://skia.googlesource.com/skia.git/+log/17601e471acf..8a1a84509501

2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4d3a7b64279f to 4074d9674b3e (1 revision)
2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 523dc313e7a2 to b51256461a37 (5 revisions)
2024-11-19 lukasza@chromium.org [rust png] Fix -Wprivate-header warning for raster pipeline headers.
2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 3fc6432bcc2f to 6898ea1d553e (11 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jimgraham@google.com,michaelludwig@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-11-19 07:00:06 +00:00
Robert Ancell
3852b13841 Add missing cancellable to text input handler (flutter/engine#56666)
Without this if a channel method call was in progress and then the
handler was destroyed the call could attempt to access the destroyed
handler. This is possible as the handler is recreated on engine restart.

However, in this case the result is not used so no invalid memory access
would occur. Adding the cancellable fixes any future change where this
would no longer be the case.
2024-11-19 16:20:53 +13:00
Michael Ludwig
c0e6c19e09 Remove SK_USE_LEGACY_BLUR_RASTER staging flag (flutter/engine#56618)
Also updates the image_filter_test.dart expected color values for a blur unit test. The legacy blur algorithm would a) treat very small blur sigmas as the identity even though the effect was still perceptible and b) was very inaccurate for sigmas < 2.  The unit test used a sigma of 1.0 so fell within the inaccurate range but the expected values appear to have been taken directly from the original Skia output.  This updates them to match the output of the new algorithm (which is also more consistent between CPU and GPU).

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-19 02:28:26 +00:00
Jonah Williams
9029dc6bc9 [Impeller] use sync fence for image uploads. (flutter/engine#56609)
Fixes https://github.com/flutter/flutter/issues/158963

If the GLES version is at least 3, then we can attach a sync fence to the texture gles object. If this operation succeeds, then we can use gl.Flush instad of gl.Finish. Then, when binding the texture - if a sync fence is present we wait and then remove the fence.
2024-11-19 00:12:54 +00:00
Reid Baker
ce204dc926 Update emulator definitions version to latest available from chrome infra (flutter/engine#56313)
Update to the latest definitions of emulator configurations.  (except x86/api28 see b/379736755)
Specifically to past  https://crrev.com/c/5908894 which added `gpu_mode: "swangle_indirect"` to the api 35 proto. This should help with emulator stability on versions past android 13. 
Related to  b/371020223
Research notes / my findings for how this system works at go/flutter-android-ci-emulator
2024-11-18 23:23:27 +00:00
skia-flutter-autoroll
4b79a1146d Roll Dart SDK from 625e0a9cb67a to 05d58364e92f (1 revision) (flutter/engine#56688)
https://dart.googlesource.com/sdk.git/+log/625e0a9cb67a..05d58364e92f

2024-11-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-160.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jimgraham@google.com 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-11-18 22:31:49 +00:00
Chris Bracken
1671d8c112 iOS: Eliminate unguarded-availability opt-out (flutter/engine#56689)
Eliminates the opt-out of `-Wunguarded-availability-new` in the `ios_test_flutter` target.

Xcode 15 beta XCTest framework headers contained unguarded usage of iOS 17 API. This bug resulted in engine build failures.

This was fixed in a later XCTest framework release.

```
/Applications/Xcode_15-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h:19:30: error: 'XCUIAccessibilityAuditType' is only available on iOS 17.0 or newer [-Werror,-Wunguarded-availability-new]
   19 | typedef NS_OPTIONS(uint64_t, XCUIAccessibilityAuditType) {
      |                              ^
/Applications/Xcode_15-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h:19:30: note: 'XCUIAccessibilityAuditType' has been marked as being introduced in iOS 17.0 here, but the deployment target is iOS 13.0.0
/Applications/Xcode_15-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h:19:9: note: annotate anonymous enum with an availability attribute to silence this warning
   19 | typedef NS_OPTIONS(uint64_t, XCUIAccessibilityAuditType) {
      |         ^
/Applications/Xcode_15-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:383:34: note: expanded from macro 'NS_OPTIONS'
  383 | #define NS_OPTIONS(_type, _name) CF_OPTIONS(_type, _name)
      |                                  ^
/Applications/Xcode_15-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFAvailability.h:155:96: note: expanded from macro 'CF_OPTIONS'
  155 | #define CF_OPTIONS(_type, _name) __attribute__((availability(swift,unavailable))) _type _name; enum __CF_OPTIONS_ATTRIBUTES : _name
      |
```

Issue: https://github.com/flutter/flutter/issues/128958

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 22:26:10 +00:00
Jackson Gardner
d9dce77156 [skwasm] Use displayWidth/displayHeight instead of codedWidth/codedHeight (flutter/engine#56686)
This addresses https://github.com/flutter/flutter/issues/159088

If the image is rotated in its exif data, the coded width/height may differ from the display width/height. It's important to use the display width/height so that `texImage2D` does the right thing with the `VideoFrame`.
2024-11-18 22:05:58 +00:00
Chris Bracken
6226520c45 Extract TestGLContext to separate translation unit (flutter/engine#56647)
For consistency with the Test.*Context classes for other backends, which live in their own implementation file with their own header, extract TestEGLContext to its own header and TU so that in cases where only a TestEGLContext is required (e.g. EmbedderTestBackingStoreProducerGL), we don't need to include all the various test GL surface classes as well.

GetEGLError is used by both TestEGLContext and the TestGLSurface classes, so moves to its own utils file.

No tests because this is a refactoring with no semantic changes, and the code itself is test code.

Issue: https://github.com/flutter/flutter/issues/158998

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 21:56:05 +00:00
skia-flutter-autoroll
15007b963a Roll Skia from b79e71223284 to 492e8347d7a4 (2 revisions) (flutter/engine#56687)
https://skia.googlesource.com/skia.git/+log/b79e71223284..492e8347d7a4

2024-11-18 maxhudnell@google.com add triangulated gradient effect
2024-11-18 vigneshv@google.com SkCrabbyAvifCodec: Add RGB565 support

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jimgraham@google.com,michaelludwig@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-11-18 21:53:56 +00:00
Jason Simmons
b00882774a Update the Skia build scripts for a refactoring of the Fontconfig font manager (flutter/engine#56684)
Skia is reorganizing some font managers, and the Flutter engine's build scripts need to match the changes made to Skia.

See https://skia-review.googlesource.com/c/skia/+/915316
2024-11-18 21:38:59 +00:00
Chris Bracken
bcbcb6631e iOS,macOS: Enable ARC in flutter_cflags_objc[c] (flutter/engine#56685)
Enables the `-fobjc-arc` compiler flag for Objective-C and Objective-C++
translation units.

Eliminates the flutter_cflags_objc[c]_arc settings, since they're now
redundant.

All Obj-C/Obj-C++ code in our codebase has now been migrated to ARC.

Issue: https://github.com/flutter/flutter/issues/137801
2024-11-18 13:37:40 -08:00
Matan Lurey
d2d49cabe7 Re-land "Remove android_jit_release_x86." (flutter/engine#56681)
Reverts flutter/engine#56634 (https://github.com/flutter/flutter/pull/159011 has merged).
2024-11-18 21:00:06 +00:00
skia-flutter-autoroll
6d156b221e Roll Skia from 0d24bd3268ef to b79e71223284 (1 revision) (flutter/engine#56683)
https://skia.googlesource.com/skia.git/+log/0d24bd3268ef..b79e71223284

2024-11-18 vigneshv@google.com SkCrabbyAvifCodec: Compute fGainmapMathColorSpace

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jimgraham@google.com,michaelludwig@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-11-18 20:34:22 +00:00
Juanjo Tugores
04f26f4377 Flutter views can gain focus (flutter/engine#54985)
I am unsure why the `tabindex` was removed when semantics were enabled. It seems this change was made without a clear explanation (by me). This PR shouldn't cause any issues as Flutter Views already have a tabindex, we're not adding a new one. This change is necessary because the semantics text strategy refocuses the view on deactivation, requiring the Flutter view to be focusable.

ThIs PR is a requirement to enable https://github.com/flutter/engine/pull/54966. 

https://github.com/flutter/flutter/issues/153022

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 20:26:13 +00:00
Chris Bracken
6760858896 EmbedderTest: Extract backend-specific user_data (flutter/engine#56642)
Replace the top-level public EmbedderBackingStoreProducer::UserData struct with backend-specific UserData classes, and make them internal to those backends. UserData internals shouldn't be visible to/manipulated by unit tests and compositors, but instead constrained to the backing store producer itself.

Issue: https://github.com/flutter/flutter/issues/158998

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 18:38:27 +00:00
skia-flutter-autoroll
2840d4941f Roll Dart SDK from ae5111067032 to 625e0a9cb67a (1 revision) (flutter/engine#56679)
https://dart.googlesource.com/sdk.git/+log/ae5111067032..625e0a9cb67a

2024-11-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-159.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jimgraham@google.com 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-11-18 18:18:19 +00:00
gaaclarke
daa1bbbed7 Started only loading gles3 functions if we have a gles3 context (flutter/engine#56636)
test: exists in https://github.com/flutter/engine/pull/56596
fixes: https://github.com/flutter/flutter/issues/158995

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 18:08:02 +00:00