38396 Commits

Author SHA1 Message Date
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
skia-flutter-autoroll
b605c31267 Roll Skia from d776efdac21b to 2614590b4f32 (1 revision) (flutter/engine#56718)
https://skia.googlesource.com/skia.git/+log/d776efdac21b..2614590b4f32

2024-11-19 briansalomon@gmail.com Show timer queries for Ganesh/GL in Viewer stats

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 22:54:18 +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
ccef3ff9c3 Roll Skia from a694b9e85a49 to d776efdac21b (3 revisions) (flutter/engine#56716)
https://skia.googlesource.com/skia.git/+log/a694b9e85a49..d776efdac21b

2024-11-19 kjlubick@google.com Fix invalid cross-device link error in deps_parser
2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 824ef0f736ed to 867065ecbb6a (2 revisions)
2024-11-19 kjlubick@google.com Reland "Remove TODOs in GNI exporter tool"

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 21:32:58 +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
235cf5e17f Roll Skia from 8a1a84509501 to 0b74a1bb1b55 (1 revision) (flutter/engine#56702)
https://skia.googlesource.com/skia.git/+log/8a1a84509501..0b74a1bb1b55

2024-11-19 robertphillips@google.com Revert "Remove TODOs in GNI exporter tool"

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 16:17:23 +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
skia-flutter-autoroll
df099ecf3d Roll Skia from 8d652f142911 to 17601e471acf (1 revision) (flutter/engine#56696)
https://skia.googlesource.com/skia.git/+log/8d652f142911..17601e471acf

2024-11-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 59ce475cae66 to 824ef0f736ed (4 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,jimgraham@google.com,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 05:08:19 +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
skia-flutter-autoroll
98a631d40a Roll Skia from 492e8347d7a4 to 8d652f142911 (1 revision) (flutter/engine#56693)
https://skia.googlesource.com/skia.git/+log/492e8347d7a4..8d652f142911

2024-11-18 kjlubick@google.com Remove TODOs in GNI exporter tool

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 02:14:19 +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
skia-flutter-autoroll
f20a08ea1f Roll Skia from 0b74d5c3eb4f to 0d24bd3268ef (1 revision) (flutter/engine#56680)
https://skia.googlesource.com/skia.git/+log/0b74d5c3eb4f..0d24bd3268ef

2024-11-18 borenet@google.com Revert "[infra] Remove P400 jobs from CQ"

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 19:08:02 +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
gaaclarke
9f1adb8ff4 [impeller] enable framebuffer blit when available (flutter/engine#56596)
depends on https://github.com/flutter/engine/pull/56573
fixes https://github.com/flutter/flutter/issues/158523

## 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-18 09:54:06 -08:00
skia-flutter-autoroll
e60c112ad0 Roll Skia from 7594233ff914 to 0b74d5c3eb4f (4 revisions) (flutter/engine#56678)
https://skia.googlesource.com/skia.git/+log/7594233ff914..0b74d5c3eb4f

2024-11-18 borenet@google.com [infra] Remove P400 jobs from CQ
2024-11-18 robertphillips@google.com [graphite] Add PrecompileContext object
2024-11-18 paulsemel@chromium.org Add buganizer ID to DIR_METADATA
2024-11-18 michaelludwig@google.com [viewer] QOL improvements to perspective and zoom

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 16:58:15 +00:00
skia-flutter-autoroll
9b013e6e9a Roll Skia from 78fd0dfa6cf8 to 7594233ff914 (1 revision) (flutter/engine#56677)
https://skia.googlesource.com/skia.git/+log/78fd0dfa6cf8..7594233ff914

2024-11-18 aredulla@google.com [auth-service] Update CRIA link to project-skia-committers

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 15:39:05 +00:00
skia-flutter-autoroll
1cd9489598 Roll Dart SDK from 8795a3eaa87b to ae5111067032 (1 revision) (flutter/engine#56675)
https://dart.googlesource.com/sdk.git/+log/8795a3eaa87b..ae5111067032

2024-11-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-158.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 14:10:24 +00:00
skia-flutter-autoroll
857a2474f4 Roll Skia from 5968000526fe to 78fd0dfa6cf8 (1 revision) (flutter/engine#56674)
https://skia.googlesource.com/skia.git/+log/5968000526fe..78fd0dfa6cf8

2024-11-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 69a1fde4ef82 to 59ce475cae66 (1 revision)

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 14:04:25 +00:00
Kaylee Lubick
65ac39d742 Use updated gni source list (flutter/engine#56627)
In https://skia-review.googlesource.com/c/skia/+/884096, Skia broke up
this gni file list into Ganesh and Graphite specific code. Since Flutter
only needs Ganesh sources, this can be made more precise.

## 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-11-18 07:55:55 -05:00
skia-flutter-autoroll
b6078f3688 Roll Fuchsia Linux SDK from K-3yXpPmmu1f0idCa... to io00npG_eDCYC7bac... (flutter/engine#56673)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jimgraham@google.com,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-18 11:39:23 +00:00
skia-flutter-autoroll
43d1faf0dc Roll Skia from 452208ce96aa to 5968000526fe (3 revisions) (flutter/engine#56671)
https://skia.googlesource.com/skia.git/+log/452208ce96aa..5968000526fe

2024-11-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 33dc1606ee3b to 15492c9bc44d (1 revision)
2024-11-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 43b18d23f1be to 3fc6432bcc2f (1 revision)
2024-11-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 8b12c3aa2ef9 to 523dc313e7a2 (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,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 09:14:27 +00:00
Chris Bracken
ab0a04d3a7 iOS: Clean up @synthesize directives / ivars (flutter/engine#56665)
In modern Objective-C, `@property` directives automatically generate a backing ivar (property name prefixed with an underscore), the getter, and (for readwrite properties) the setter. `@synthesize` directives are generally only required if the backing ivar has a different name from the property.

Also updates the FlutterMetalLayer API to match CAMetalLayer:
* Adds API_AVAILABLE declaration to match that on CAMetalLayer.
* Eliminates wantsExtendedDynamicRangeContent property as it's also part of CALayer's interface and unused in our implementation.

Also eliminates unnecessary ivars where they're being synthesized by `@property` declarations.

Previously, we were overriding the behaviour of
UIViewController.prefersStatusBarHidden by synthesizing _flutterPrefersStatusBarHidden as a backing ivar. Since we're explicitly overriding the behaviour of a superclass, it's more idiomatic to synthesize a private property or explicitly declare an ivar then explicitly override the getter instead.

Further, this adds documentation to cases where `@synthesize` directives are required, such as:
* Creating a backing ivar for a readonly property.
* Creating a backing ivar for a property with a custom getter/setter.
* Synthesising the ivar, getter, and setter for a property declared in a protocol being implemented.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-18 00:29:24 +00:00
skia-flutter-autoroll
7be64cf1be Roll Skia from 4708534db2e7 to 452208ce96aa (1 revision) (flutter/engine#56664)
https://skia.googlesource.com/skia.git/+log/4708534db2e7..452208ce96aa

2024-11-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a662c37da32d to 69a1fde4ef82 (1 revision)

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-17 23:21:13 +00:00
Chris Bracken
d82d8cf3cd iOS: Extract constant for CADisableMinimumFrameDurationOnPhone (flutter/engine#56659)
In our vsync waiter and related tests, we hardcode the "CADisableMinimumFrameDurationOnPhone" key in several places. This pulls those into a constant kCADisableMinimumFrameDurationOnPhoneKey declared in the vsync waiter header, which is non-public, and uses that instead.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-17 23:21:10 +00:00
Chris Bracken
c9f8ebef70 iOS: Eliminate unnecessary use of NSClassFromString (flutter/engine#56660)
When performing `isKindOfClass` checks, we were occasionally looking up the class in question using `NSClassFromString()`, instead we now check against the class directly, which has the added benefit of being type-safe, and not succeptible to string typos.

Moves the declaration of ForwardingGestureRecognizer and FlutterDelayingGestureRecognizer to the FlutterPlatfomViews_Internal.h header, which is non-public.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-17 22:53:05 +00:00
Chris Bracken
33b5f9dc00 iOS: Eliminate unnecessary bridged retain casts (flutter/engine#56662)
This replaces a few ARC bridged retain casts to regular bridge casts to CoreFoundation types, which are then CFRetained via `sk_cfp::retain` calls.

This eliminates the last remaining unnecessary __bridge_retained casts in the codebase. The remaining casts have been manually vetted and are reasonable.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-11-17 22:41:43 +00:00
Chris Bracken
89ce6055a6 iOS,macOS: Fix string constant declarations (flutter/engine#56661)
A couple string constants had been incorrectly declared `const NSString*` rather than `NSString* const`. The former is a pointer to an immutable string, but (a) the pointer can be reassigned and (b) the default NSString implementation is immutable. The latter is an immutable pointer to a string, which is what we want, since we don't want developers reassinging our constants to other values.

Also updates an identifier name to pass lint rules.

No changes to tests since this is "tested" by the compiler.

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