Chinmay Garde
6a151f5c40
[Impeller] Make masks type safe. ( flutter/engine#51369 )
...
Uses the utility added in https://github.com/flutter/engine/pull/51361
I counted the removal of 58 static casts. There was one addition made to the original utility however. Vulkan HPP was promoting all enums to its own mask type. This in itself is problematic but we got away with it because there was no one else doing this kind of promotion. Till we added our own utility. To avoid polluting the namespace with methods that may cause ambiguity, enums that are masks must explicitly be marked as maskable with `IMPELLER_ENUM_IS_MASK` in the `impeller` namespace.
No change in functionality.
2024-03-13 00:12:21 +00:00
Loïc Sharma
b2f119de6b
[dart:ui] Add view ID to PointerData.toString ( flutter/engine#51352 )
...
The `view_id` is useful information as the pointer's `x` and `y` coordinates are relative to the view's origin.
Part of https://github.com/flutter/flutter/issues/112205
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-12 21:53:41 +00:00
utzcoz
30ce58dc55
Bump Robolectric to 4.11.1 ( flutter/engine#51310 )
...
Bump Robolectric to the latest stable 4.11.1.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-11 07:47:21 +00:00
Zachary Anderson
0b18c484ac
Explicitly list Android embedding dependency jars in GN ( flutter/engine#51303 )
...
Part of https://github.com/flutter/flutter/issues/144430 .
From `gn help inputs`: "It may be tempting to write a script that
enumerates all files in a directory
as inputs. Don't do this!"
2024-03-09 12:02:46 -08:00
Chinmay Garde
dfb7d84ab8
[Impeller] Use the AHB prefix for utils that work with Android Hardware Buffers. ( flutter/engine#51298 )
...
Also doesn't compile the TU on non-Android platforms.
Part of https://github.com/flutter/engine/pull/51213 being chopped up.
No change in functionality. Just renames and moves stuff around.
2024-03-09 00:52:25 +00:00
Justin McCandless
3a07dc741a
iPad keyboard cut/copy/paste buttons ( flutter/engine#50923 )
...
The cut/copy/paste buttons above the keyboard on iPad were previously always greyed out, but now they work.
2024-03-08 13:30:50 -08:00
Dan Field
a4c787e072
Use io.flutter.Build.API_LEVELS rather than android.os.Build.VERSION_CODES ( flutter/engine#51171 )
...
Updates the linting script to ban the use of `VERSION_CODES`.
We currently have a mish-mash of using the integers, using `VERSION_CODES`, and even how we import the version codes. This makes it more confusing when doing things like #51070 - I think it is clearer to see `22` than `LOLLIPOP_MR1`.
I'd like to get LGTM (or at least no opinion) from all the requested reviewers here.
2024-03-08 19:04:20 +00:00
Chris Bracken
0575633c34
Move ANGLE to flutter/third_party ( flutter/engine#51270 )
...
This moves Flutter out of the buildroot's third_party directory and into
//flutter/third_party and updates all BUILD and gni files.
Issue: https://github.com/flutter/flutter/issues/144786
Part of: https://github.com/flutter/flutter/issues/67373
## 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] The odds of this passing on its first CI run is 0%, because
there's no way the licence script isn't going to have a fit over it, at
which point I promise on my honour that I will dutifully fix all the
things it complains about and re-run, probably more than once.
- [X] This PR fulfils the minimum [Canadian
Content](https://www.youtube.com/watch?v=h9NMnPm5kXc&list=PLJ7QPuvv91JuoPWrLhqX0zDFUoLdynMEk&index=3 )
regulations mandated by the CRTC.
- [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-07 16:23:14 -08:00
Tong Mu
67603e5e32
Reland 5: Multiview pipeline ( flutter/engine#51186 )
...
This relands https://github.com/flutter/engine/pull/50931 .
The crash that caused the 4th revert has been fixed by https://github.com/flutter/flutter/pull/144212 .
[There has been discussion](https://github.com/flutter/engine/pull/51019 ) on why the benchmark in previous attempts show significant drop in build time. This PR addresses it using option a as described in [this comment](https://github.com/flutter/engine/pull/51186#issuecomment-1977820525 ).
This PR also addresses https://github.com/flutter/flutter/issues/144584 with option 1. A test is added.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-07 01:54:14 +00:00
Chris Bracken
0e6d56bc1c
Move Abseil from src to flutter third_party dir ( flutter/engine#51245 )
...
In combination with:
* https://flutter-review.googlesource.com/c/third_party/abseil-cpp/+/55848
* https://github.com/flutter/buildroot/pull/831
this updates Flutter's references to Abseil from
//third_party/abseil-cpp to //flutter/third_party/abseil-cpp.
Issue: https://github.com/flutter/flutter/issues/144201
Part of: https://github.com/flutter/flutter/issues/67373
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-07 01:19:17 +00:00
Loïc Sharma
ece178965b
[Windows] Allow plugins to get views ( flutter/engine#51096 )
...
Allow Flutter Windows plugins to get views by their ID.
Design doc: https://flutter.dev/go/desktop-multi-view-runner-apis
Part of https://github.com/flutter/flutter/issues/143767
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-06 21:19:19 +00:00
Zachary Anderson
2fdc3293eb
Disable flaky linux desktop test ( flutter/engine#51231 )
...
For https://github.com/flutter/flutter/issues/138197
2024-03-06 20:27:00 +00:00
Chinmay Garde
db4a60e675
[Impeller] Implement YUV texture import and sampling for video player frames. ( flutter/engine#50730 )
...
This patch rounds out support for importing Android Hardware Buffers as Vulkan
images and sampling from them.
Not all Android Hardware Buffers are in formats that Vulkan (let alone Impeller)
understands. Some YUV textures have formats with no equivalent `vk::Format` enum
and need extra information on how to sample from them.
This patch adds support for correctly importing and sampling from such formats.
There are severe restrictions on how sampling from such external formats works.
For one, it isn’t possible to assign a combined image sampler in the render
pass. The pipeline itself needs to be rebuilt to reference a specially created
immutable sampler. This immutable sampler is a combination of the usual
information present in an Impeller SamplerDescriptor as well as a custom
“conversion” object obtained while importing the Android Hardware Buffer.
There is no way to predict what conversion object will be necessary ahead of
time as this will depend on the source of the Android Hardware Buffers and is
likely different for different video feeds, camera sources, and other Android
Hardware Buffer texture sources.
To handle this uncertainty, a new pipeline variant with a JIT determined
immutable sampler will be hashed and cached before being used in a render pass.
The number of pipeline variants created just-in-time will depend on the number
of sampler variants used in the render pass to sample from wrapped Image. For
instance, specifying a sampler with a different address mode will likely result
in a new pipeline variant being created.
In most cases however, there will just be one or two additional pipeline
variants per application. Impellers sampler diversity is very low with most
samplers being the usual NN samplers. It may be possible to preload even this
pipeline by trying known conversions. As said previously, there can only be a
handful of these conversions.
More restrictions on sampling from such images includes being limited to
`VK_FILTER_LINEAR` without additional format and extension wrangling and
performance penalties.
Fixes https://github.com/flutter/flutter/issues/142082 .
2024-03-05 12:42:51 -08:00
auto-submit[bot]
f29d809efb
Reverts "Reland: [macOS] Use CVDisplayLink to drive repaint ( #51126 )" ( flutter/engine#51192 )
...
Reverts flutter/engine#51126
Initiated by: cbracken
Reason for reverting: looks like this regressed Skia benchmarks: https://flutter-flutter-perf.skia.org/e/?keys=Xbf8dce9c233bce34d20e2280e3f1d8db&selected=commit%3D39653%26name%3D%2Carch%3Dintel%2Cbranch%3Dmaster%2Cconfig%3Ddefault%2Cdevice_type%3Dnone%2Cdevice_version%3Dnone%2Chost_type%3Dmac%2Csub_result%3DtimeToFirstFrameRasterizedMicros%2Ctest%3Dflutter_gallery_macos__start_up%2C&xbaroffset=39569
The regression s
Original PR Author: knopp
Reviewed By: {cbracken}
This change reverts the following previous change:
Original Description:
This relands the PR reverted in https://github.com/flutter/engine/pull/51095
Changes since the original PR:
- The macOS embedder does not assume particular clock when calling the embedder API, but converts CAMediaTime to engine time and back (`FlutterTimeConverter`)
- `FlutterVSyncWaiter` does not wait for displaylink callback during warmup frame. This should prevent `timeToFirstFrameRasterizedMicros` regressions.
- When enforcing frame pacing the raster thread is not blocked. This should prevent `average_frame_rasterizer_time_millis` regressions.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-05 03:25:18 +00:00
Zachary Anderson
1d7737e0a0
Shift git version fetching to tools/gn ( flutter/engine#51175 )
...
Avoids GN invoking python scripts that run git commands to determine git
hashes.
Part of https://github.com/flutter/flutter/issues/144430
2024-03-04 18:14:04 -08:00
Miguel
1b88c55bc7
[fuchsia] Remove now unnecessary diagnostics directory ( flutter/engine#51180 )
...
Inspect is now published using InspectSink and we can get rid of this
directory.
I'm unsure what "debug" and "ctrl" are for so I left them untouched.
Bug: https://g-issues.fuchsia.dev/issues/320785253
## 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-03-05 03:03:50 +01:00
Gray Mackall
879a9147d9
[Re-land] Remove WindowManager reflection in SingleViewPresentation.java ( flutter/engine#50890 )
...
relands https://github.com/flutter/engine/pull/49996
Context b/326363243
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-04 23:49:38 +00:00
Ian McKellar
0ae34f2e93
[fuchsia] Prepare for @transitional removal ( flutter/engine#51185 )
...
Bug: https://fxbug.dev/42078310
2024-03-04 15:44:24 -08:00
Matej Knopp
ac9586994e
Reland: [macOS] Use CVDisplayLink to drive repaint ( flutter/engine#51126 )
...
This relands the PR reverted in
https://github.com/flutter/engine/pull/51095
Changes since the original PR:
- The macOS embedder does not assume particular clock when calling the
embedder API, but converts CAMediaTime to engine time and back
(`FlutterTimeConverter`)
- `FlutterVSyncWaiter` does not wait for displaylink callback during
warmup frame. This should prevent `timeToFirstFrameRasterizedMicros`
regressions.
- When enforcing frame pacing the raster thread is not blocked. This
should prevent `average_frame_rasterizer_time_millis` regressions.
## 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-03-04 21:57:45 +01:00
Dan Field
19296c0ffd
Guard against API 22 ( flutter/engine#51167 )
...
This was introduced in #51070 - my grepping for `LOLLIPOP` was too aggressive, and apparently the linter didn't catch this. I think it's just a bug in the linter.
Fixes b/327717572, because Google internal tests caught this.
2024-03-04 18:40:19 +00:00
Liam Appelbe
27ca389132
Experimental platform isolates API ( flutter/engine#48551 )
...
This is a prototype of the [PlatformIsolate
API](https://github.com/flutter/flutter/issues/136314 ).
**UPDATE (Jan 25):** The PR is ready for review. PTAL.
The `PlatformIsolate` creation flow is:
1. `PlatformIsolate.spawn` running on parent isolate
(platform_isolate.dart)
a. Create `isolateReadyPort`
b. `PlatformIsolateNativeApi::Spawn` (platform_isolate.cc)
c. `DartIsolate::CreatePlatformIsolate` (dart_isolate.cc)
d. Isolate created. Entry point invocation task dispatched to platform
thread
e. `PlatformIsolate.spawn` returns a `Future<Isolate>`
2. On the platform thread, `_platformIsolateMain` is invoked in the
platform isolate
a. Create `entryPointPort`
b. Send `Isolate.current` metadata and `entryPointPort` back to the
parent isolate via `isolateReadyPort`
3. Back in the parent isolate, `isolateReadyPort.handler` is invoked
a. Send the user's `entryPoint` and `message` to the platform isolate
via `entryPointPort`
b. Use received isolate metadata to create a new `Isolate` representing
the platform isolate and complete the `Future<Isolate>`
4. In the platform isolate, `entryPointPort.handler` is invoked
a. Run the user's `entryPoint(message)`
The engine shutdown flow is handled by `PlatformIsolateManager`, which
maintains a set of running platform isolates.
2024-03-04 16:47:41 +13:00
Robert Ancell
614df9461d
Fix custom FlValue API not being exported ( flutter/engine#51154 )
...
Would fail to link when using it in a Flutter app.
2024-03-04 15:05:41 +13:00
Gray Mackall
dde1849f04
Add instructions for getting code coverage in Android Studio ( flutter/engine#51105 )
...
small readme change, because for whatever reason we need to apply the comment from this hero https://github.com/robolectric/robolectric/issues/3023#issuecomment-1326870713 to make code coverage work
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-01 00:02:29 +00:00
Robert Ancell
fc560d4bc2
Refactor GL rendering to prepare for GTK4 ( flutter/engine#50754 )
...
Refactor GL rendering to prepare for GTK4
- Remove FlGLArea - we can just use GtkGLArea directly
- Stop using gdk_cairo_draw_from_gl, it's not available in GTK4.
- Rename FlRendererGL to FlRendererGdk, this was implying that
FlRenderer could be something other than OpenGL which is not the case
currently.
- Remove unnecessary virtual methods in FlRenderer, just implement them
as standard methods.
Related: https://github.com/flutter/flutter/issues/143408
2024-03-01 10:24:11 +13:00
Matej Knopp
0d3941630d
Revert "[macOS] Use CVDisplayLink to drive repaint ( #49159 )" ( flutter/engine#51095 )
...
The original PR assumed that `fml::TimePoint` has same base as
`CACurrentMediaTime()`. However due to recent change in Dart SDK that's
no longer true. Dart SDK
[replaced](https://dart-review.googlesource.com/c/sdk/+/348044?tab=comments )
call to `mach_absolute_time` with
`clock_gettime_nsec_np(CLOCK_MONOTONIC_RAW)`, while
`CACurrentMediaTime()` corresponds to `CLOCK_UPTIME_RAW`.
This needs to be fixed either in Dart SDK
https://github.com/dart-lang/sdk/issues/55071 or the original PR needs
to be relanded with appropriate conversions.
This reverts commit 8ff01af723be83ab019b0ddf7d64d8586d280186.
*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].*
## 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-02-29 12:39:33 -08:00
Dan Field
2e9e6107eb
Reapply "Bump everything to Android 21" ( #51056 ) ( flutter/engine#51070 )
...
This reverts commit 98485b3f82fec45a6a0ac932c3c20285a9a14e02.
Reverted in https://github.com/flutter/engine/pull/51056 because it
caused failures in the framework. No changes, but framework test has
been updated to use an actual robolectric implementation to avoid those
failures.
This should not land until
https://github.com/flutter/flutter/pull/144348 has landed in the
framework.
@gaaclarke @johnmccutchan fyi
2024-02-29 09:00:01 -08:00
Loïc Sharma
461cf83c58
[Windows] Add view ID runner APIs ( flutter/engine#51020 )
...
Allow Flutter Windows apps and plugins to get the view's ID.
Design doc: https://flutter.dev/go/desktop-multi-view-runner-apis
Part of https://github.com/flutter/flutter/issues/143767
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-02-29 16:22:39 +00:00
Robert Ancell
da5550db7f
Update Linux embedder to latest semantics API ( flutter/engine#51030 )
...
Change to the latest semantics API and remove an unused class.
2024-02-29 15:18:19 +13:00
Jonah Williams
65f3a2348b
[Impeller] switch fallback default from ImpellerVulkan to SkiaOpenGLES ( flutter/engine#51071 )
...
Unblocks shipping Impeller on Android before GLES is ready.
2024-02-29 01:47:19 +00:00
Matan Lurey
bc4d5caa20
Test the SurfaceTextureSurfaceProducer-branch in the Android scenario_app ( flutter/engine#51061 )
...
This PR does the following:
- Relands https://github.com/flutter/engine/pull/50993 .
- Fixes a bug in `SurfaceTextureSurfaceProducer` where it would crash on
release (now tested, yay!)
Closes https://github.com/flutter/flutter/issues/143539 .
Closes https://github.com/flutter/flutter/issues/143483 .
/cc @gaaclarke @chinmaygarde, this PR should (after landed) test/verify
https://github.com/flutter/engine/pull/50730 .
2024-02-28 14:17:21 -08:00
Dan Field
98485b3f82
Revert "Bump everything to Android 21" ( flutter/engine#51056 )
...
Reverts flutter/engine#51032
Probably causing some of the failures in https://github.com/flutter/flutter/pull/144326
@johnmccutchan fyi
2024-02-28 19:15:04 +00:00
Jonah Williams
919af4322a
[Android] update fallback and rendering state to combine impeller + android backend. ( flutter/engine#51008 )
...
1. Makes it possible to implement Impeller Vulkan -> Skia fallback.
2. Fixes https://github.com/flutter/flutter/issues/143871
3. Fixes https://github.com/flutter/flutter/issues/143873
4. Work towards https://github.com/flutter/flutter/issues/137798
Combines AndroidRenderingAPI + enable_impeller into a 4 values enum that describes all combinations of rendering behavior: ImpellerVulkan, ImpellerOpenGLES, SkiaOpenGLES, Software.
Updates the fallback behavior to happen in flutter_main. This allows us to change the value of Settings.enable_impeller to support an Impeller -> Skia fallback.
2024-02-28 18:47:04 +00:00
Dan Field
6efee79357
Bump everything to Android 21 ( flutter/engine#51032 )
...
Followed the linter, got rid of a bunch of version check/guards we don't need anymore.
2024-02-28 15:56:40 +00:00
Jia Hao
b9ebc96690
Add flutter prefix to import ( flutter/engine#51042 )
...
Internally, the source transformations need the flutter prefix here to
replace the import with an absolute path for the depot.
b/327318241
2024-02-28 07:55:06 -08:00
Loïc Sharma
9da5ed5312
[Windows] Reduce log level of unsupported accessibility event message ( flutter/engine#51024 )
...
https://github.com/flutter/engine/pull/50975 made the Windows embedder a bit more defensive on accessibility event messages and introduced an error if it received an event it does not support. This change reduces that error to a warning as it can be triggered by hovering over the counter app's `+` button.
Fixes https://github.com/flutter/flutter/issues/144274
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-28 00:45:30 +00:00
Loïc Sharma
12228ffd98
[Windows] Make the engine own a map of views ( flutter/engine#51017 )
...
Updates Windows engine's data structures to use a map of views.
This is a refactoring with no semantic changes. Flutter Windows's APIs restrict users to 0 or 1 view only - it is not possible to create multiple views yet.
_One small step for Windows. One giant leap for multi-view._
Part of https://github.com/flutter/flutter/issues/143765
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-02-27 23:28:00 +00:00
Jason Simmons
e017114099
Move vulkan-deps to //flutter/third_party/vulkan-deps ( flutter/engine#51013 )
...
See https://github.com/flutter/flutter/issues/144205
2024-02-27 21:59:00 +00:00
Loïc Sharma
becf9fb52f
[Windows] Remove TODONE ( flutter/engine#51005 )
...
This TODO is TODONE!
Part of https://github.com/flutter/flutter/issues/131616
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-27 21:15:06 +00:00
Loïc Sharma
218151583f
[Windows] Introduce an accessibility plugin ( flutter/engine#50975 )
...
_This is the same pull request as https://github.com/flutter/engine/pull/50898 . GitHub broke on the previous pull request so I re-created it_
This moves the logic to handle `flutter/accessibility` messages to a new type, `AccessibilityPlugin`.
Notable changes:
1. Windows app no longer crashes if it receives accessibility events it does not support
2. Windows app no longer crashes if it receives accessibility events while in headless mode
@yaakovschectman After playing around with this, I ended up using a different pattern than what what I suggested on https://github.com/flutter/engine/pull/50598#discussion_r1488728089 . This message handler is simple enough that splitting into a child/base types felt like unnecessary boilerplate. The key thing is separating messaging and implementation logic, which was achieved through the `SetUp` method. Let me know what you think, and sorry for all my flip-flopping on this topic! ð
This is preparation for: https://github.com/flutter/flutter/issues/143765
Sample app for manual testing: https://github.com/flutter/flutter/issues/113059
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-27 20:59:24 +00:00
Robert Ancell
1aa5dbf113
Code consistency fixes in FlScrollingManager ( flutter/engine#50959 )
2024-02-28 09:06:20 +13:00
Matej Knopp
8ff01af723
[macOS] Use CVDisplayLink to drive repaint ( flutter/engine#49159 )
...
Fixes https://github.com/flutter/flutter/issues/49757
This PR synchronises updates with display refresh allowing for true
120hz repaint. It also enforces frame pacing resulting in smoother
experience at both 60hz and 120hz.
*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*
## 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-02-27 20:48:26 +01:00
zijiehe@
c274921fa6
[Fuchsia] Use shared gn-sdk from chromium ( flutter/engine#50855 )
...
Fuchsia team is working on getting rid of non-versioned libraries and sysroot (see b/40935282), but flutter is using a fairly old version of in-house gn-sdk. It's hard to maintain it anymore.
So this change removes the in-house gn-sdk and replaces it with the gn-sdk from chromium.
This is a prerequisite to select the idk / sdk lib version according to the api-level.
This change contains three parts:
1) Replacing gn-sdk/ with gn-sdk/src/ since the chromium needs a README.chromium in gn-sdk/ folder.
2) Making the existing build rules work with the newer gn-sdk.
3) Drive-by replacing "gtest_runner.shard.cml" with "sys/testing/gtest_runner.shard.cml", it's in fuchsia sdk already.
Bug: [b/40935282](https://issues.chromium.org/issues/40935282?pli=1&authuser=0 )
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-27 17:30:05 +00:00
Tong Mu
c139338825
Revert "Reland 4: Multiview pipeline ( #50931 )" ( flutter/engine#50985 )
...
This reverts commit cb110ebc948c362cec5ac921cf8ef5e9ca530102.
Reason: Internal test failure blocking roll
OCL:610420483:BASE:610486571:1708978396098:f2c3c31
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-27 00:58:22 +00:00
Zachary Anderson
cae1c8dc3a
Run engine unit tests on mac host_debug_unopt_arm64 ( flutter/engine#50327 )
...
Related https://github.com/flutter/flutter/issues/142868
2024-02-26 13:39:05 -08:00
John McCutchan
a0e82bb991
Update Surface reference after resizing render target in VirtualDisplay based platform views ( flutter/engine#50971 )
...
Fixes https://github.com/flutter/flutter/issues/142952
2024-02-26 13:00:49 -08:00
yaakovschectman
ac3cb8cd7b
Add Platform View Manager to Windows shell ( flutter/engine#50598 )
...
Create a manager for platform views accessible to the compositor, handle
the methods that the framework will send.
Addresses https://github.com/flutter/flutter/issues/143375
## 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 `///`).
- [ ] 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
---------
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2024-02-26 10:13:46 -05:00
Dan Field
f235a65897
Avoid reloading font collection for spawned engines with compatible asset managers ( flutter/engine#50897 )
...
@jason-simmons @jiahaog fyi
I need to figure out a test for this still but it seems to work. Hot restart is kind of a mess though, because `Engine::Restart` nulls out the asset manager it ends up reloading the font collection for every engine after a restart. But we separately need to fix hot restart, it's not very usable on the example app
Fixes https://github.com/flutter/flutter/issues/143701
2024-02-24 14:58:37 +00:00
Tong Mu
cb110ebc94
Reland 4: Multiview pipeline ( flutter/engine#50931 )
...
This relands https://github.com/flutter/engine/pull/49950 .
Nothing is changed. The error turns out a flake (it passes once),
although this PR might have made the flake more flaky.
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[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-02-23 20:52:53 -08:00
Loïc Sharma
788179d383
[Windows] Refactor the a11y announcement test ( flutter/engine#50888 )
...
This refactors the Windows accessibility announcement test. This will make it easier to add a headless variant of this test as part of https://github.com/flutter/flutter/issues/143765 .
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-24 00:26:02 +00:00
Loïc Sharma
b73e827969
[Windows] Add helper for headless integration tests ( flutter/engine#50885 )
...
We'll add more headless mode tests as part of https://github.com/flutter/flutter/issues/143765 .
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-23 23:23:29 +00:00